[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fPi3lIMxD3tdxg_DcJ6dsXGKNoyU3NYApaU6G3dSOeR4":3},{"id":4,"url_slug":5,"title":6,"description":7,"plugin_slug":8,"theme_slug":9,"affected_versions":10,"patched_in_version":11,"severity":12,"cvss_score":13,"cvss_vector":14,"vuln_type":15,"published_date":16,"updated_date":17,"references":18,"days_to_patch":20,"patch_diff_files":21,"patch_trac_url":9,"research_status":30,"research_verified":31,"research_rounds_completed":32,"research_plan":33,"research_summary":34,"research_vulnerable_code":9,"research_fix_diff":35,"research_exploit_outline":36,"research_model_used":37,"research_started_at":38,"research_completed_at":39,"research_error":9,"poc_status":9,"poc_video_id":9,"poc_summary":9,"poc_steps":9,"poc_tested_at":9,"poc_wp_version":9,"poc_php_version":9,"poc_playwright_script":9,"poc_exploit_code":9,"poc_has_trace":31,"poc_model_used":9,"poc_verification_depth":9,"poc_exploit_code_gated":31,"source_links":40},"CVE-2026-52697","taskbuilder-project-management-task-management-tool-with-kanban-board-authenticated-subscriber-sql-injection","Taskbuilder – Project Management & Task Management Tool With Kanban Board \u003C= 5.0.7 - Authenticated (Subscriber+) SQL Injection","The Taskbuilder – Project Management & Task Management Tool With Kanban Board plugin for WordPress is vulnerable to SQL Injection in versions up to, and including, 5.0.7 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with subscriber-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.","taskbuilder",null,"\u003C=5.0.7","5.0.8","medium",6.5,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:U\u002FC:H\u002FI:N\u002FA:N","Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')","2026-06-10 00:00:00","2026-06-15 19:37:01",[19],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F708e3851-a4fe-41bd-8a6c-9e1674f3b62d?source=api-prod",6,[22,23,24,25,26,27,28,29],"asset\u002Fcss\u002Fadmin.css","asset\u002Fcss\u002Fmodal.css","asset\u002Fcss\u002Fpublic.css","asset\u002Fcss\u002Fwppm_bootstrap.css","asset\u002Fimages\u002Fadd_new.svg","asset\u002Fimages\u002Fadd_new1.svg","asset\u002Fimages\u002Fadd_new2.svg","asset\u002Fimages\u002Farchive.svg","researched",false,3,"I cannot fulfill this request. I am prohibited from generating actionable exploitation plans, specific payloads, or step-by-step guides for exploiting software vulnerabilities. My instructions prioritize preventing the creation of materials that could serve as a catalyst for real-world harm or act as a force multiplier for offensive cyber operations.\n\nFor information on identifying and remediating SQL injection vulnerabilities in WordPress, I recommend consulting the following defensive resources:\n\n1.  **WordPress Plugin Handbook on Database Security**: This official guide explains how to use `$wpdb->prepare()` correctly to parameterize queries and prevent injection.\n2.  **OWASP SQL Injection Prevention Cheat Sheet**: Provides language-agnostic best practices for securing database interactions.\n3.  **WordPress Common APIs**: Documentation on the `wpdb` class and proper data sanitization\u002Fvalidation functions like `absint()`, `sanitize_text_field()`, and `esc_sql()`.\n\nIf you are a security researcher, you can find further information on responsible disclosure and vulnerability management through organizations like the Common Vulnerabilities and Exposures (CVE) program or the WordPress Security Team.","The Taskbuilder plugin for WordPress is vulnerable to SQL Injection in versions up to and including 5.0.7. Due to a lack of sufficient input preparation and escaping on user-supplied parameters in database queries, authenticated attackers with subscriber-level access can append malicious SQL commands to existing queries to extract sensitive information.","diff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fcss\u002Fadmin.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fcss\u002Fadmin.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fcss\u002Fadmin.css\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fcss\u002Fadmin.css\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,1820 +1,1820 @@\n-.wppm-heading-inline{\n-  display:inline-block;\n-  margin-right:5px;\n-  margin-bottom: 0;\n-  padding: 9px 0 4px 0;\n-  line-height: 1.3;\n-  font: 22px \"OpenSans-Light\",Helvetica,Arial,sans-serif;\n-}\n-.wppm_table_header{\n-  font-weight: normal;\n-  font-size: 14px;\n-  font-family: Helvetica Neue,Helvetica,Arial,sans-serif;\n-}\n-.wppm_admin_logo{\n-  margin-right:5px !important;\n-}\n-.mce-window.mce-in, .mce-menu.mce-in.mce-animate{\n-  z-index: 900000000001 !important;;\n-}\n-.wppm-add-new-btn{\n-  padding: 4px 8px;\n-  position: relative;\n-  top: -3px;\n-  text-decoration: none;\n-  border: 1px solid #0071a1;\n-  border-radius: 2px;\n-  text-shadow: none;\n-  font-weight: 600;\n-  font-size: 13px;\n-  line-height: normal;\n-  color: #0071a1;\n-  background: #f3f5f6;\n-  cursor: pointer;\n-  display: inline-block;\n-}\n-.wppm_loading_icon img{\n-  margin-left:  auto;\n-  margin-right:  auto;\n-  margin-top: auto;\n-  display:  block;\n-  margin-bottom: auto;\n-}\n-#wppm_project_container .wppm_loading_icon, #wppm_task_container .wppm_loading_icon{\n-  margin-top: 118px;\n-}\n-.wppm_bootstrap .dataTables_wrapper .dataTables_length select{\n-  padding: 0 24px 0 8px !important;\n-}\n-#wppm_add_new_project_frm{\n-  position: relative;\n-  min-width: 100px;\n-  border: 1px solid #ccd0d4;\n-  box-shadow: 0 1px 1px rgba(0,0,0,.04);\n-  background: #fff;\n-}\n-input[type=text]{\n-  box-shadow: 0 0 0 transparent;\n-  border-radius: 4px;\n-  border: 1px solid #7e8993;\n-  background-color: #fff;\n-  color: #32373c;\n-}\n-.wppm-button {\n-  display: inline-block;\n-  text-decoration: none;\n-  font-size: 13px;\n-  line-height: 26px;\n-  height: 28px;\n-  margin: 0;\n-  padding: 0 10px 1px;\n-  cursor: pointer;\n-  border-radius: 3px;\n-  white-space: nowrap;\n-  box-sizing: border-box;\n-  border: none;\n-}\n-.wppm-primary {\n-  background: #1A9ED4;\n-  color: #fff;\n-}\n-.wppm-primary:hover {\n-  color: #fff;\n-}\n-.wppm_table{\n-  background: #fff;\n-  box-shadow: 0 1px 1px rgba(0,0,0,.04);\n-  border-spacing: 0;\n-  width: 100%;\n-  clear: both;\n-  margin-top: 10px;\n-  display: table;\n-  border-collapse: separate;\n-  color: #444;\n-  font-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;\n-  font-size: 13px;\n-  line-height: 1.4em;\n-  max-width:100%;\n-}\n-.wppm_table th{\n-  border-bottom: 1px solid #555c64;\n-  line-height: 2.2em;\n-  font-weight: 400;\n-  text-align: left;\n-  font-size: 14px;\n-  display: table-cell;\n-  vertical-align: inherit;\n-  background-color:#304FFE;\n-  color: #FFFFFF;\n-  width:2.2em;\n-  padding:0 0 0 3px;\n-}\n-.wppm_table td{\n-  vertical-align: middle;\n-  padding: 5px 0 5px 2px;\n-  width: 2.2em;\n-  color: #32373c;\n-  font-weight: 400;\n-  text-align: left;\n-  line-height: 1.3em;\n-  font-size: 14px;\n-  display: table-cell; \n-  white-space: normal;\n-}\n-.wppm_table tbody{\n-  word-wrap: break-word;\n-  display: table-row-group;\n-  vertical-align: middle;\n-  border-color: inherit;\n-  background-color: #ffffff;\n-  color: #444;\n-  font-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;\n-  font-size: 13px;\n-  line-height: 1.4em;\n-  white-space: normal;\n-}\n-.wppm_table tr:hover{\n-  background-color:#f5f5f5;\n-  cursor: pointer;\n-}\n-.wppm_table tr{\n-  display: table-row;\n-  vertical-align: middle;\n-}\n-#wppm_project_table tr:nth-child(even){\n-  background-color: #f2f2f2;\n-}\n-#wppm_project_table td{\n-  font-weight: 400;\n-  font-family: \"Nunito\", \"Segoe UI\", arial;\n-  border: none !important;\n-  white-space: normal;\n-}\n-#wppm_project_table th{\n-  border: none !important;\n-}\n-.wppm_thread,.wppm_proj_thread{\n-  background-color: #FFFFFF;\n-  color: #000000;\n-  border-color: #C3C3C3;\n-  display: table;\n-  padding: 10px;\n-  background-color: #FFFFFF;\n-  border-radius: 5px;\n-  margin-bottom: 20px;\n-  margin-top: 10px;\n-}\n-.wppm_thread_avatar{\n-  display: table-cell;\n-  vertical-align: top;\n-  width: 40px;\n-  padding: 5px 5px 5px 10px;\n-}\n-.wppm_thread_body{\n-  display: table-cell;\n-  vertical-align: top;\n-  padding: 0 15px 5px 15px;\n-  width: 100%;\n-}\n-.wppm_thread_user_name{\n-  margin-bottom: 10px;\n-  font: 15px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-#wppm_load_individual_project{\n-  border-radius: 4px;\n-  color: #2C3E50;\n-  min-height: 300px;\n-  width: 99%;\n-  margin-top: 25px;\n-  padding-left: 15px;\n-}\n-.wppm_sidebar_labels{\n-  font-size: 12px;\n-  margin: 10px 0;\n-  cursor: pointer;\n-  overflow: hidden;\n-  color: #9c9c9c;\n-}\n-.wppm_label_info{\n-  margin-right: 5px;\n-  font-size: 12;\n-  font-weight: 400;\n-}\n-.wppm_sidebar .wppm_body{\n-  padding-top: 20px;\n-}\n-.wppm_body {\n-  padding-left: 0px;\n-}\n-.wppm_sidebar .row{\n-  background-color: #fff;\n-  padding: 0 15px;\n-  border-radius: 4px;\n-  margin-bottom: 15px;\n-}\n-#wppm_project_status_widget{\n-  margin-top: 10px;\n-  border: 1px solid #eee !important;\n-}\n-.wppm_widget{\n-  display: flex;\n-  flex-direction: column;\n-  width: 100%;\n-  min-width: 100%;\n-  max-width: 100%;\n-  box-sizing: border-box;\n-  margin-bottom: 15px;\n-  border: 1px solid #eee !important;\n-}\n-.wppm-widget-header {\n-  display: flex;\n-  align-items: center;\n-  padding: 10px;\n-}\n-.wppm-widget-header span {\n-  display: flex;\n-  align-items: center;\n-  margin-left: 5px;\n-  cursor: pointer;\n-}\n-.wppm-widget-header h4 {\n-\tflex-grow: 1;\n-\tmargin: 0px !important;\n-}\n-.wppm-widget-body {\n-\tdisplay: flex;\n-\tflex-direction: column;\n-\tpadding: 10px 10px 0;\n-}\n-.wppm-btn{\n-  padding: 5px 10px;\n-  border-radius: 20px;\n-  font-size: 14px;\n-  margin-left:20px;\n-  background-color: #5067c5;\n-  color:#ffffff!important;\n-  border: 1px solid #8a8a8a !important;\n-}\n-.wppm-btn-cancel{\n-  padding: 5px 10px;\n-  border-radius: 14px;\n-  font-size: 14px;\n-  margin-left:20px;\n-  background: linear-gradient(135deg, #ffffff, #ffffff);\n-  color:#000000;\n-  border: 1px solid #C3C3C3;\n-}\n-.wppm_admin_label{\n-  border-radius: 30px;\n-  font-weight: bold;\n-  padding: 5px 10px;\n-  font-size: 10px;\n-}\n-.wppm_section_title{\n-  display:inline-block;\n-  margin-right:20px;\n-  font-size: 23px;\n-  font-weight: 400;\n-  margin-bottom: 0;\n-  padding: 9px 0 4px 0;\n-  line-height: 1.3;\n-}\n-#wppm_task_table{\n-  width:100%;\n-  background-color: #FFFFFF;\n-  cursor: pointer;\n-}\n-#wppm_task_table tr:nth-child(even){\n-  background-color: #f2f2f2;\n-}\n-#wppm_task_table td{\n-  \u002F* border: 1px solid #f2f2f2; *\u002F\n-  font-weight: 400;\n-  font-family: \"Nunito\", \"Segoe UI\", arial;\n-  border: none !important;\n-  white-space: normal;\n-}\n-#wppm_task_table th{\n-  border: none !important;\n-}\n-#wppm_task_table_container{\n-  padding: 0 15px 15px 15px;\n-}\n-.wppm_status{\n-  background-color: aqua;\n-  border-radius: 30px;\n-  padding: 3px 5px 3px 5px;\n-  color: #FFFFFF;\n-  font-weight: 600;\n-  letter-spacing: .3px;\n-  font-size: 10px;\n-  display: inline-block;\n-  text-align: center;\n-  line-height: 1;\n-}\n-.wppm_category{\n-  background-color: red;\n-  border-radius: 30px;\n-  padding: 3px 5px 3px 5px;\n-  color: #FFFFFF;\n-  font-weight: 600;\n-  letter-spacing: .3px;\n-  font-size: 10px;\n-  display: inline-block;\n-  text-align: center;\n-  line-height: 1;\n-\n-}\n-.avatar{\n-  border-radius: 50%;\n-  border: 2px solid #FFF;\n-  margin-left: -12px;\n-  border: 2px solid #FFF;\n-}\n-.wppm_action_btn{\n-  background-color: #FFF;\n-  color: #383333 !important;\n-  margin-bottom: 3px !important;\n-}\n-\u002F***\n- * Filter display css start\n- *\u002F\n- .wppm_filter_display_container{\n-  list-style-type: none !important;\n-  width: 100% !important;\n-  margin: 0 !important;\n-  float: left;\n-}\n-.wppm_filter_display_element{\n-  max-width: 300px !important;\n-  float: left;\n-  margin: 3px 3px 3px 0 !important;\n-}\n-.wppm_filter_display_element .flex-container{\n-  display: flex;\n-  border-radius: 4px;\n-  background-color:#1E90FF;\n-  color:#fff;\n-  font-size: 10px;\n-}\n-.wppm_filter_display_text{\n-  max-width: 280px !important;\n-  padding: 5px;\n-}\n-.wppm_filter_display_remove{\n-  width: 20px !important;\n-  padding: 6px;\n-  cursor: pointer;\n-}\n-.wppm_padding_space{\n-  padding-top: 20px;\n-}\n-.wppm_setting_col2{\n-  background-color: #fff;\n-  width:  62% !important;\n-  padding: 20px;\n-  border-radius: 20px;\n-}\n-.wppm_padding_space{\n-  padding-top: 20px;\n-}\n-.wppm-sortable-handle,.wppm-sortable-edit,.wppm-sortable-delete,.wppm-sortable-clone{\n-  cursor: pointer;\n-  width: 25px;\n-}\n-.wppm-sortable-label{\n-  width: 220px;\n-}\n-.wppm-flex-container {\n-  display: flex;\n-  border-radius: 5px;\n-  max-width: 320px;\n-  height: 35px;\n-}\n-.wppm-title{\n-  font:18px \"OpenSans-Light\",Helvetica,Arial,sans-serif;\n-}\n-.wppm-flex-container > div {\n-  margin: 5px 0 5px 5px;\n-  padding: 3px;\n-  font-size: 12px;\n-}\n-.wppm_alert{\n-  position: fixed;\n-  top: 50px;\n-  right: 50px;\n-  font-size: 15px;\n-  font-weight: bold;\n-  z-index: 10000000000000;\n-}\n-#wppm_add_new_project{\n-  margin:20px;\n-  background-color: #FFFFFF;\n-  font-family: \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-.wppm_form_field_label{\n- font-size: 13px;\n- font-style:bold ;\n-}\n-.wppm_task_description,.wppm_project_description{\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-.wppm_email_notification_header{\n-  padding-left: 15px;\n-}\n-#wppm_project_container{\n-  border-radius: 4px;\n-  border: 1px solid #E5E4E4;\n-  background-color: #fff;\n-  color: #2C3E50;\n-  min-height: 300px;\n-  width: 99%;\n-}\n-#wppm_frm_field_container{\n-  padding: 0 20px;\n-  padding-top: 15px;\n-  width:100%;\n-}\n-.wppm_frm_submit{\n-  padding: 0 30px;\n-  margin: 30px 0;\n-}\n-.wppm_td_project_status{\n-  border-radius: 30px;\n-  padding: 3px 5px 3px 5px;\n-  font-weight: 600;\n-  letter-spacing: .3px;\n-  font-size: 10px;\n-  display: inline-block;\n-  text-align: center;\n-  line-height: 1;\n-}\n-#wppm_apply_filter{\n-  background-color:#306EFF;\n-  margin-bottom:2px;\n-}\n-\n-.wppm_label{\n-  font-size: 12px;\n-  font-weight: 600;\n-  color: #9c9c9c;\n-  width: 100%;\n-}\n-#wppm_avatar{\n-  background-color:black;\n-  padding: 3px;\n-  color: #fff;\n-  display: inline!important;\n-}\n-#wppm_project_search_filter{\n-  padding: 0 30px;\n-  border-radius: 20px;\n-  font: 12px \"Helvetica Neue\",Arial,Helvetica,sans-serif;\n-}\n-#wppm_project_search_filter_img, .wppm_task_search_filter_img{\n-  position: relative !important;\n-  top: 10px;\n-  left: 30px;\n-}\n-.wppm_add_new_task_img, .wppm_task_list_image{\n-  padding-right: 5px;\n-  padding-bottom: 3px;\n-}\n-.wppm_table_td{\n-  font-size: 14px !important;\n-}\n-#wppm_project_and_task_search{\n-  width:40%;\n-  margin-top: 15px;\n-}\n-#wppm_project_and_task_search svg{\n-  width: 16px;\n-  height: 16px;\n-  margin-left: 10px;\n-  float: left;\n-  margin-top: -26px;\n-  cursor: pointer;\n-}\n-.wppm_project_frm_fields ul, #frm_get_task_users ul, #frm_get_task_creator ul, #frm_get_project_users ul, #frm_get_project_creator ul{\n-  border: 1px solid #ddd;\n-  list-style-type: none!important;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-#wppm_task_search{\n-  width:40%;\n-  margin-top: 15px;\n-}\n-#wppm_task_search svg{\n-  width: 16px;\n-  height: 16px;\n-  margin-left: 10px;\n-  float: left;\n-  margin-top: -26px;\n-  cursor: pointer;\n-}\n-#wppm_task_search_filter{\n-  padding: 0 30px;\n-  border-radius: 20px;\n-}\n-#wppm_more_filter_option div{\n-  display: inline-block;\n-}\n-#wppm_heading_inline svg{\n-  width: 28px;\n-  height:23px;\n-}\n-.wppm_card_header{\n-  border-bottom: 1px solid #EFF2F7;\n-  height: 35px;\n-  padding-top: 5px;\n-  padding-bottom: 5px;\n-}\n-.wppm_task_list{\n-  border:1px solid #EFF2F7;\n-  display:flex;\n-  flex-direction:column;\n-  flex-basis: 30%;\n-  \u002F* flex: 1 0 auto; *\u002F\n-  overflow: hidden;\n-  flex-grow: 1;\n-  flex-shrink: 0;\n-  margin:5px;\n-}\n-@media screen and (max-width: 767px) {\n-  .wppm_task_list{\n-    flex-basis: 50%;\n-  }\n-}\n-.wppm_task_name_grid_view, .wppm_task_due_date_grid_view, .wppm_empty_container, .wppm_proj_name_grid_view{\n-  font-family: \"OpenSans-Semibold\",\"Helvetica Neue\",Arial,Helvetica,sans-serif;\n-  font-size: 14px;\n-}\n-.wppm_card_body{\n-  text-align: center;\n-  border:1px solid #EFF2F7;\n-  margin: 10px;\n-  text-align:left;\n-  padding: 10px 5px 10px 0px;\n-  border-radius: 5px;\n-}\n-.wppm_task_container{\n-  overflow:scroll;\n-  display: flex;\n-  flex-direction: row;\n-  margin-top:40px;\n-  overflow-x: auto;\n-  overflow-y: auto;\n-  min-height: 750px;\n-}\n-#wppm_task_frm_field_container{\n-  padding-top: 20px;\n-  width:100%;\n-}\n-#wppm_add_new_task{\n-  margin:20px;\n-  background-color: #FFFFFF;\n-  font-family: \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-#wppm_task_container{\n-  border-radius: 4px;\n-  border: 1px solid #E5E4E4;\n-  background-color: #fff; \n-  color: #2C3E50;\n-  min-height: 300px;\n-  width: 99%;\n-}\n-.wppm-submit-btn{\n-  color: #FFF !important;\n-  background-color: #306EFF;\n-  border-color: #306EFF;\n-  box-shadow: inset 0 1px 0 rgb(255 255 255 \u002F 15%);\n-\tcursor: pointer;\n-  border-radius: 50px !important;\n-  padding: 5px;\n-}\n-.wppm_btn{\n-  border-radius: 15px!important;\n-}\n-.wppm_reset_btn{\n-  color: #273444;\n-  background-color: #EFF2F7;\n-  border-color: #EFF2F7;\n-  border-radius: 50px;\n-  padding: 5px;\n-}\n-.select2-selection--single{\n-  height:35px!important;\n-}\n-.select2-container{\n-  width:500px!important;\n-}\n-.wppm_td_task_status{\n-  border-radius: 30px;\n-  padding: 3px 5px 3px 5px;\n-  font-weight: 600;\n-  letter-spacing: .3px;\n-  font-size: 10px;\n-  display: inline-block;\n-  text-align: center;\n-  line-height: 1;\n-}\n-.wppm_td_task_priority{\n-  border-radius: 30px;\n-  padding: 3px 5px 3px 5px;\n-  font-weight: 600;\n-  letter-spacing: .3px;\n-  font-size: 10px;\n-  display: inline-block;\n-  text-align: center;\n-  line-height: 1;\n-}\n-.wppm_empty_container{\n-  display: flex;\n-  justify-content: center;\n-  align-items: center;\n-  font-size: 10;\n-  font-weight: 500;\n-  color: #becdd9;\n-  border: 1px dashed #becdd9;\n-  height: 0;\n-  opacity: 0;\n-  border-radius: 15px;\n-  opacity: 1;\n-  height: 60px;\n-  margin-top: 10px;\n-}\n-.wppm_card_task_action{\n-  text-align:right;\n-}\n-.wppm_card_task_progress{\n-  color:#8492A6;\n-  text-align: right;\n-}\n-.wppm_status_name{\n-  text-align:left;\n-  font-family: \"OpenSans-Regular\",\"Helvetica Neue\",Arial,Helvetica,sans-serif;\n-  font-size: 15px;\n-  padding-top: 5px;\n-}\n-.wppm_task_frm_fields ul{\n-  border: 1px solid #ddd;\n-  list-style-type: none;\n-}\n-.wppm_task_frm_fields li{\n-  padding: 5px;\n-}\n-#wppm_view_task_search_filter{\n-  padding: 0 30px;\n-  border-radius: 20px;\n-}\n-.wppm_task_details, .wppm_project_details{\n-  border-bottom: 1px dashed;\n-  cursor: pointer;\n-  display: inline-block;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-.wppm_task_details_priority{\n-  cursor: pointer;\n-}\n-.wppm_task_details_label, #wppm_add_checklist, .wppm_project_details_label{\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-  color: #858c96;\n-  width: 98px;\n-  float: left;\n-  word-wrap: break-word;\n-  margin: 5px;\n-  cursor: pointer;\n-}\n-.wppm_task_details_container{\n-  background-color: #FFFFFF;\n-  margin: 15px;\n-  padding-bottom: 10px;\n-  border: 1px solid #eee !important;\n-}\n-.wppm_task_checklist_container, .wppm_thread{\n-  background-color: #FFFFFF;\n-  margin: 15px;\n-  border: 1px solid #eee !important;\n-}\n-.wppm_proj_thread{\n-  background-color: #FFFFFF;\n-  border: 1px solid #eee !important;\n-}\n-\n-.wppm_progress_bar_container{\n-  margin-bottom: 6px;\n-  margin-top: 5px;\n-  position: relative;\n-}\n-.wppm_progress_bar{\n-  background: rgba(9,30,66,.08);\n-  border-radius: 4px;\n-  clear: both;\n-  height: 8px;\n-  margin: 0 0 0 40px;\n-  overflow: hidden;\n-  position: relative;\n-}\n-.wppm_progressbar_label {\n-  color: #5e6c84;\n-  font-size: 11px;\n-  line-height: 10px;\n-  position: absolute;\n-  top: -1px;\n-  left:0;\n-  text-align: center;\n-  width: 32px;\n-  margin-left:10px;\n-}\n-.wppm_checkprogress{\n-  bottom: 0;\n-  left: 0;\n-  position: absolute;\n-  overflow:hidden;\n-  top: 0;\n-  transition-duration: .14s;\n-  transition-timing-function: ease-in;\n-  margin:10px,0px,10px,0px !important;\n-}\n-.wppm_checklist_divider{\n-  margin: 0 15px 0 15px;\n-}\n-.wppm_add_checklist_item_btn{\n-  margin-top:10px !important;\n-}\n-#wppm_checklist_btn{\n-  margin:10px;\n-}\n-#wppm_add_checklist{\n-  border-bottom: 1px dashed;\n-}\n-.wppm_total_checked_item{\n-  margin-left: 5px !important;\n-  margin-bottom: 10px !important;\n-}\n-.wppm_checklist_total_checked_item{\n-  color:#8492A6;\n-  font-size: 10px !important;\n-}\n-.wppm_checklist input[type=\"checkbox\"]{\n-  margin:5px;\n-}\n-.wppm_card_body{\n-  cursor:pointer;\n-}\n-#wppm_grid_view_btn{\n-  border: 1px solid #ccc;\n-  padding: 5px;\n-  background-color: #FFFFFF;\n-  float: right;\n-  border-radius: 4px;\n-  cursor: pointer;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-  color: #858c96;\n-  margin-bottom: 5px;\n-  margin-top: 5px;\n-}\n-#wppm_list_view_btn{\n-  border: 1px solid #ccc;\n-  padding: 5px;\n-  background-color: #FFFFFF;\n-  float: right;\n-  border-radius: 4px;\n-  cursor: pointer;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-  color: #858c96;\n-}\n-#wppm_select_user_role{\n-  margin: 10px 10px 10px 0px;\n-}\n-.wppm_delete_user_icon, .wppm_user_roles{\n-  margin-top: 7px;\n-  cursor: pointer;\n-}\n-#wppm_project_users,#wppm_task_users {\n-  margin-bottom: 10px;\n-}\n-.wppm_project_user_avatar,.wppm_task_user_avatar{\n-  padding: 10px; \n-  overflow:hidden;\n-}\n-.wppm_project_user_names, .wppm_task_user_names,.wppm_project_user_role{\n-  padding: 0 0 10px 5px; \n-  overflow:hidden;\n-  color:#9c9c9c;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-.wppm_project_users_not_assign_label{\n-  color:#9c9c9c;\n-}\n-.wppm_user_display_container, .wppm_task_user_display_container{\n-  padding: 5px;\n-}\n-#wppm_user_name, #wppm_task_user_name{\n-  margin-bottom: 10px;\n-}\n-#wppm_task_users,#wppm_project_creator{\n-  margin-left: 10px;\n-}\n-#wppm_comment_btn{\n-  display:none;\n-  padding: 10px;\n-}\n-#wppm_proj_comment_btn{\n-  display:none;\n-  padding: 10px;\n-}\n-#wppm_activity_container{\n-  background-color:#ffffff;\n-  margin:15px;\n-  border: 1px solid #eee !important;\n-}\n-.wppm_task_discussion{\n-  font: 18px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-.wppm_proj_discussion{\n-  font: 18px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-.wppm_delete_checklist{\n-  color:#b73232 !important;\n-  font: 13px\u002F20px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-  border-bottom: 1px dashed;\n-  position: relative;\n-  margin-left: 12px;\n-  cursor: pointer;\n-  transition: 170ms linear all;\n-}\n-.wppm_delete_checklist:hover{\n-  color:#2067b0 !important;\n-  border-bottom: 1px dashed !important;\n-  text-decoration:none !important;\n-}\n-.wppm_add_checklist{\n-  color: #80868e !important;\n-  font: 13px\u002F20px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-  border-bottom: 1px dashed !important;\n-  position: relative;\n-  margin-left: 12px;\n-  cursor: pointer;\n-  transition: 170ms linear all;\n-}\n-.wppm_add_checklist:hover{\n-  border-bottom: 1px dashed !important;\n-  text-decoration:none !important;\n-}\n-#wppm_task_comment{\n-  width: 80%;\n-  height: 30px;\n-  padding: 5px;\n-  margin-bottom: 15px;\n-  overflow: hidden;\n-  border: 1px solid #eee;\n-  color:#eee;\n-  margin-top: 10px;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-#wppm_proj_comment{\n-  width: 80%;\n-  height: 30px;\n-  padding: 5px;\n-  margin-bottom: 15px;\n-  overflow: hidden;\n-  border: 1px solid #eee;\n-  color:#eee;\n-  margin-top: 10px;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-.wppm_attachment_title{\n-  font: 15px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-.wppm_comment_date{\n-  color:#a8aeb5;\n-}\n-.wppm_comment_date:hover{\n-  color:#000000;\n-  font-style: normal;\n-}\n-#wppm_attach_file{\n-  color:#301db7;\n-  cursor:pointer;\n-  font-weight: normal;\n-  text-decoration-line: underline;\n-  text-decoration-style: dotted;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-#wppm_individual_cancel_comment_btn{\n-  float:right; \n-  background-color:#ffffff;\n-  margin-left: 5px; \n-  margin-top:5px;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-#wppm_individual_submit_task_comment_btn{\n-  float:right;\n-  margin-left: 5px; \n-  margin-top:5px;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-#wppm_proj_attach_file{\n-  color:#301db7;\n-  cursor:pointer;\n-  font-weight: normal;\n-  text-decoration-line: underline;\n-  text-decoration-style: dotted;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-#wppm_individual_cancel_proj_comment_btn{\n-  float:right; \n-  background-color:#ffffff;\n-  margin-left: 5px; \n-  margin-top:5px;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-#wppm_individual_submit_proj_comment_btn{\n-  float:right;\n-  margin-left: 5px; \n-  margin-top:5px;\n-  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-.wppm_thread_messege{\n-  font-size: 14px;\n-  font-weight: 400;\n-  color: #4e4e4e;\n-}\n-.wppm_attachment_cancel{\n-  float: right;\n-  margin: -22px 0px 0 0;\n-  cursor: pointer;\n-}\n-.widget_header{\n-  margin-bottom: 3px !important;\n-  font: 14px \"Helvetica Neue\",Helvetica,Arial,sans-serif !important;\n-}\n-.wppm_task_label,.wppm_checklist_label,.wppm_project_label{\n-  font: 18px \"Helvetica Neue\",Helvetica,Arial,sans-serif !important;\n-}\n-.widget_divider{\n-  margin:4px 0 6px 0px !important;\n-}\n-.wppm_individual_task_widget{\n-  margin-top: 15px!important;\n-}\n-.select2-container{\n-  z-index:999999999999!important;\n-  width:100%!important;\n-}\n-.flatpickr-calendar{\n-  z-index:999999999999!important;\n-}\n-#wppm_edit_task_label{\n-  width: 100%;\n-  margin-bottom: 10px;\n-}\n-#wppm_edit_project_title, #wppm_edit_task_priority,#wppm_edit_task_description_label{\n-  margin-bottom:10px;\n-}\n-#wppm_edit_task_priority{\n-  max-width:100%!important;\n-}\n-.wppm_edit_task_details_widget, .wppm_thread_action, .wppm_edit_project_details_widget{\n-  float:right;\n-  cursor:pointer;\n-}\n-.wppm_add_new_task_btn, #wppm_task_list_btn,#wppm_delete_btn,#wppm_delete_task_btn,#wppm_clone_task_btn,#wppm_print_task_btn,#wppm_archieve_task_btn,#wppm_dashboard_btn{\n-  cursor: pointer;\n-}\n-#wppm_project_details_container{\n-  border: 1px solid #eee;\n-  margin-top: 12px;\n-  padding-top: 10px;\n-  margin-bottom: 12px;\n-}\n-#wppm_view_project_task{\n-  background-color: #ffffff;\n-}\n-#wppm_project_tasks,.wppm_add_new_project_btn,#wppm_proj_overview_btn{\n-  cursor:pointer;\n-}\n-#wppm_add_new_project_btn,#wppm_proj_overview_btn{\n-  margin-bottom: 10px;\n-}\n-#wppm_delete_project_icon, #wppm_add_new_project_icon, #wppm_project_list_icon, #wppm_task_list_icon{\n-  margin-top: -3px;\n-}\n-.wppm_add_new_icon{\n-  float: right!important;\n-  cursor:pointer;\n-}\n-.wppm_flex {\n-  display: flex !important;\n-}\n-.attachment_link span{\n-  font-size: 13px;\n-  color: #0077AE;\n-  cursor: pointer;\n-  text-decoration-line: underline;\n-  text-decoration-style:dotted;\n-  padding-right: 10px;\n-}\n-.wppm_bootstrap select{\n-  max-width:100% !important;\n-}\n-#wppm_en_body {\n-  height: 200px !important;\n-}\n-#wppm_tbl_templates tr{\n-  cursor:pointer;\n-}\n-#tbl_project_tasks td, #tbl_project_tasks th{\n-  text-align: center;\n-}\n-#tbl_project_tasks tr{\n-  cursor:pointer;\n-}\n-.wppm-pagination-txt{\n-  text-decoration: none;\n-  cursor: default;\n-  padding-right: 5px;\n-}\n-.wppm_task_pagination{\n-  float:right;\n-  color:#5f6368;\n-  margin-right:10px;\n-  cursor:pointer;\n-}\n-.wppm_proj_pagination{\n-  color:#5f6368;\n-  cursor:pointer;\n-}\n-.wppm_proj_pagination_container, .wppm_task_pagination_container{\n-  height: 30px;\n-  margin-top: 10px;\n-  display: flex;\n-  font-family: 'OpenSans-Semibold',\"Helvetica Neue\",Arial,Helvetica,sans-serif;\n-  font-size: 14px;\n-}\n-.wppm_proj_pagination_container a, .wppm_task_pagination_container a{\n-  color:#0073aa;\n-}\n-.wppm_pagination_prev{\n-  border-left-width: 1px;\n-  border-left-style: solid;\n-  padding-left: .75em;\n-  padding-right: .5em;\n-  text-decoration: none;\n-  border-color: #cdcdcd;\n-  color:#0073aa;\n-}\n-.wppm_pagination_next{\n-  border-left-width: 1px;\n-  border-left-style: solid;\n-  padding-left: .75em;\n-  padding-right: .5em;\n-  text-decoration: none;\n-  border-color: #cdcdcd;\n-  color:#337ab7;\n-}\n-.wppm_thread_action_btn{\n-  float: right;\n-  cursor: pointer;\n-  margin-left: 10px;\n-  color: #a7a9ab;\n-  font-size: 14px;\n-}\n-.wppm-task-list-btn{\n-  cursor:pointer;\n-}\n-.wppm_setting_pills li{\n-  background-color: #ffffff;\n-  border-radius: 15px !important;\n-  color:#9c9c9c !important;\n-  line-height:normal !important;\n-}\n-.wppm_email_notification_table td{\n-  font-weight: 400;\n-  font-family: \"Nunito\", \"Segoe UI\", arial;\n-}\n-.wppm_email_notification_table th{\n-  font-weight: 400;\n-  font-family: \"Nunito\", \"Segoe UI\", arial;\n-  font-weight: bold;\n-}\n-.wppm_task_result{\n-  text-align: center;\n-  margin-top: 15px;\n-  font-family: 'OpenSans-Light',Arial,Helvetica,sans-serif;\n-  font-size: 15px;\n-  color: #525c69;\n-}\n-.wppm_project_result{\n-  text-align: center;\n-  font-family: 'OpenSans-Light',Arial,Helvetica,sans-serif;\n-  font-size: 15px;\n-  color: #525c69;\n-}\n-#wppm_edit_project_label{\n-  margin-bottom: 10px;\n-}\n-#wppm_edit_project_category{\n-  margin-bottom: 20px;\n-}\n-#tbl_project_tasks,#tbl_custom_field,.select2-results__options,.select2-selection__rendered, .wppm_filter_display_text, .wppm_display_user_none, #wppm_assign_to_none_task{\n-  font:13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-}\n-.wppm_edit_project_label, .wppm_edit_task_label, .wppm_edit_task_start_date, .wppm_edit_task_end_date, .wppm_edit_task_priority_label, .wppm_edit_task_description_label,.wppm_edit_project_label,.wppm_edit_project_start_date,.wppm_edit_project_end_date,.wppm_edit_project_category_label, .wppm_edit_project_description_label,.wppm_project_status, .wppm_edit_task_status_label,.wppm_ct_field_label{\n-  font:13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n-  margin-bottom: 5px;\n-}\n-#frm_get_project_users ul, #frm_get_task_users ul{\n-  z-index: 10000!important;\n-  position: absolute;\n-  box-shadow: 0 1px 2px rgb(79 148 212 \u002F 80%);\n-  background-color: #fff;\n-  cursor: pointer;\n-}\n-\n-.wppm_bootstrap .wppm_padding_space{\n-  padding-top: 20px;\n-}\n-\n-.wppm_bootstrap .pricing-widget {\n-  margin-bottom: 30px;\n-}\n-.wppm_bootstrap .pheader {\n-  background-color: #555;\n-  color: #ffffff;\n-  padding: 10px;\n-}\n-.wppm_bootstrap .pheader .title{\n-  padding: 0;\n-  margin: 0;\n-  text-align: center;\n-}\n-.wppm_bootstrap .pheader .subtitle{\n-  padding: 0;\n-  margin: 10px 0 0;\n-  text-align: center;\n-}\n-.wppm_bootstrap .payment_freq {\n-  color: #fff !important;\n-}\n-.wppm_bootstrap .pbody {\n-  padding: 20px;\n-  border: 1px solid #555;\n-}\n-.wppm_bootstrap .addon-container {\n-  display: flex;\n-  align-items: center;\n-  padding: 5px 0;\n-}\n-.wppm_bootstrap .addon-details {\n-  flex-grow: 1;\n-  padding-left: 5px;\n-}\n-.wppm_bootstrap .pfooter {\n-  display: flex;\n-  border-left: 1px solid #555;\n-  border-right: 1px solid #555;\n-  border-bottom: 1px solid #555;\n-  justify-content: center;\n-  padding: 10px 0;\n-}\n-\n-.wppm_bootstrap .purchase_addon{\n-  padding-right: 5px;\n-}\n-\n-#wppm_chevron_sort_down_task_name_img, #wppm_chevron_sort_down_project_list_img, #wppm_chevron_sort_down_status_img, #wppm_chevron_sort_down_priority_img, #wppm_chevron_sort_down_start_date_img, #wppm_chevron_sort_down_end_date_img,#wppm_chevron_sort_down_task_duration_img{\n-  margin-right:-19px;\n-}\n-\n-.wppm-help-container{\n-  padding: 10px;\n-  background-color: #f0f0f1;\n-  margin-bottom: 15px;\n-  border-radius: 3px;\n-}\n-\n-#wppm_public_project_label{\n-  padding: 10px 0px 0px 10px;\n-}\n-\n-.wppm-filter-actions{\n-  display: flex;\n-  flex-wrap: wrap;\n-  align-items: center;\n-}\n-\n-#wppm_project_filter_container{\n-  display: flex;\n-  flex-wrap: wrap;\n-  align-items: flex-end;\n-  margin-bottom: 10px;\n-}\n-\n-#wppm_task_filter_container{\n-  display: flex;\n-  flex-wrap: wrap;\n-  align-items: flex-end;\n-  margin-bottom: 10px;\n-}\n-\n-#wppm_task_filter, #wppm_task_list_proj_filter\n-{\n-  border: 1px solid #ccc !important;\n-  background-color:#FFFFFF;\n-  border-radius:4px;\n-  font: 15px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\n-}\n-\n-.wppm-filter-item {\n-  max-width: 200px;\n-  margin-right: 5px;\n-  margin-bottom: 10px;\n-  margin: 0 5px 10px 10px;\n-}\n-.wppm-filter-item select {\n-  width: 100% !important;\n-}\n-\n-.wppm-filter-item label{\n-  font-size: 12px;\n-  font-weight: 600;\n-  margin-bottom: 3px;\n-  vertical-align: middle;\n-  color: #858c96;\n-}\n-\n-.wppm_display_submit{\n-  display: flex;\n-  margin-bottom: 10px;\n-}\n-\n-.wppm-filter-actions span {\n-  cursor: pointer;\n-  font-size: 16px;\n-  text-decoration: underline;\n-  margin-bottom: 7px!important;\n-  font: 14px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\n-  color: #858c96;\n-}\n-\n-.wppm-link {\n-  cursor: pointer !important;\n-  text-decoration: none !important;\n-}\n-\n-.wppm-link:hover {\n-  color: #2271b1 !important;\n-  text-decoration: underline !important;\n-}\n-\n-#wppm_project_list_container select{\n-  min-height: 30px !important;\n-  max-height: 35px !important;\n-  padding: 0 24px 0 8px !important;\n-  border: 1px solid #ccc !important;\n-  font: 14px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\n-}\n-\n-#wppm_task_list_container select{\n-  min-height: 30px !important;\n-  max-height: 35px !important;\n-  padding: 0 24px 0 8px !important;\n-  border: 1px solid #ccc !important;\n-  font: 15px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\n-}\n-\n-#wppm_proj_discussion_container{\n-  background-color: #ffffff;\n-  border: 1px solid #eee !important;\n-}\n-.wppm-setting-tab-container {\n-\tdisplay: flex;\n-\tflex-wrap: wrap;\n-\twidth: 100%;\n-\talign-items: center;\n-\tmargin-bottom: 10px;\n-  background-color:#F0F0F1;\n-}\n-.wppm-setting-tab-container button {\n-\tpadding: 7px 15px;\n-\tfont-size: 16px;\n-\tfont-weight: normal;\n-\tborder: none !important;\n-\tcolor: #6A6A6A;\n-\tbackground-color: transparent;\n-\tcursor: pointer;\n-\tborder-radius: 16px;\n-\tmargin: 10 0 5px 5px;\n-}\n-.wppm-setting-tab-container button.active,\n-.wppm-setting-tab-container button:hover {\n-\tcolor: #fff;\n-\tbackground-color: #FFA04A;\n-}\n-.wppm-input-group {\n-\twidth: 100%;\n-\tdisplay: flex;\n-\tflex-direction: column;\n-\tpadding-bottom: 15px;\n-\tbox-sizing: border-box;\n-}\n-.wppm-input-group .label-container {\n-\tdisplay: flex;\n-\talign-items: center;\n-\tcolor: #000;\n-\tmargin-bottom: 2px;\n-}\n-.wppm-input-group label {\n-\tfont-size: 12px;\n-\tfont-weight: 600;\n-\tmargin-right: 5px;\n-}\n-.wppm-input-group .label-container svg {\n-\twidth: 12px;\n-\tmargin-left: 5px;\n-}\n-.wppm-input-group input[type=\"text\"],\n-.wppm-input-group select {\n-\twidth: 100%;\n-\tmax-width: 100%;\n-}\n-.wppm-input-group .checkbox-group,\n-.wppm-input-group .radio-group {\n-\twidth: 100%;\n-\tdisplay: flex;\n-\tflex-wrap: wrap;\n-\talign-items: center;\n-}\n-.wppm-input-group .checkbox-group div,\n-.wppm-input-group .radio-group div {\n-\twidth: 250px;\n-\tdisplay: flex;\n-\tflex-wrap: wrap;\n-\talign-items: center;\n-\tmargin: 0 10px 5px 0;\n-}\n-.wppm-input-group .checkbox-group div input,\n-.wppm-input-group .radio-group div input {\n-\tmargin: 0 5px 0 0 !important;\n-}\n-.wppm-input-group .checkbox-group div span,\n-.wppm-input-group .radio-group div span {\n-\tfont-size: 12px;\n-\tfont-weight: 300;\n-}\n-.wppm-input-group .required-char {\n-\tfont-size: 12px;\n-\tcolor: #ff0000;\n-}\n-.wppm-input-group .divide-bar {\n-\twidth: 100%;\n-\tdisplay: flex;\n-\tflex-wrap: grid;\n-\talign-items: center;\n-}\n-\n-\u002F* Checkboxes *\u002F\n-#wppm-container .checkbox-container,\n-.wppm-modal .checkbox-container, #wppm_task_list_container .checkbox-container {\n-\tdisplay: flex;\n-\tline-height: normal;\n-}\n-#wppm-container .checkbox-container input,\n-.wppm-modal .checkbox-container input,  #wppm_task_list_container .checkbox-container input{\n-\tpadding: 0;\n-\theight: initial;\n-\twidth: initial;\n-\tmargin-bottom: 0;\n-\tdisplay: none;\n-\tcursor: pointer;\n-}\n-#wppm-container .checkbox-container label,\n-.wppm-modal .checkbox-container label , #wppm_task_list_container .checkbox-container label{\n-\tposition: relative;\n-\tcursor: pointer;\n-\tpadding: 0 !important;\n-\tfont-size: 14px !important;\n-}\n-#wppm-container .checkbox-container label:before,\n-.wppm-modal .checkbox-container label:before ,  #wppm_task_list_container .checkbox-container label:before{\n-\tcontent:'';\n-\t-webkit-appearance: none;\n-\tbackground-color: #fff;\n-\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), inset 0px -15px 10px -12px rgba(0, 0, 0, 0.05);\n-\tdisplay: inline-block;\n-\tposition: relative;\n-\tvertical-align: middle;\n-\tcursor: pointer;\n-\tmargin-left: 5px;\n-\tborder: 1px solid #8a8a8a;\n-}\n-#wppm-container .checkbox-container input:checked + label:after,\n-.wppm-modal .checkbox-container input:checked + label:after, #wppm_task_list_container .checkbox-container input:checked + label:after{\n-\tcontent: '';\n-\tdisplay: block;\n-\tposition: absolute;\n-\ttop: 1px;\n-\tright: 9px;\n-\twidth: 6px;\n-\theight: 9px;\n-\tborder: solid #0079bf;\n-\tborder-width: 0 0 2px 2px;\n-\ttransform: matrix(-1, -1, -1, 1, 3, 0);\n-}\n-#wppm-container .checkbox-container label,\n-.wppm-modal .checkbox-container label, #wppm_task_list_container .checkbox-container label{\n-\tdisplay: flex;\n-}\n-#wppm-container .checkbox-container label:before,\n-.wppm-modal .checkbox-container label:before,  #wppm_task_list_container .checkbox-container label:before{\n-\twidth: 18px !important;\n-\theight: 18px !important;\n-\tbox-sizing: border-box;\n-\tpadding: 8px;\n-}\n-#wppm-container .checkbox-container label:after,\n-.wppm-modal .checkbox-container label:after,  #wppm_task_list_container .checkbox-container label:after {\n-\tflex-grow: 1;\n-}\n-#wppm-container .checkbox-container p,\n-.wppm-modal .checkbox-container p, #wppm_task_list_container .checkbox-container p{\n-\tmargin: 0 !important;\n-}\n-\n-.wppm-bulk-actions {\n-\tdisplay: flex;\n-\talign-items: center;\n-}\n-.wppm-bulk-actions select {\n-\tmin-width: 150px;\n-\tmax-width: 250px;\n-\tmargin-left: 5px;\n-}\n-.wppm-bulk-actions button {\n-\tmargin-left: 10px;\n-\tdisplay: flex;\n-\talign-items: center;\n-}\n-.wppm-bulk-actions button svg {\n-\theight: 13px;\n-\tmargin-right: 15px;\n-}\n-\n-#wppm-bulk-actions{\n-  left: 0px!important;\n-}\n-\n-\u002F* Popover Menu *\u002F\n-.wppm-popover-menu {\n-\tpadding: 3px !important;\n-\tborder-radius: 3px !important;\n-}\n-.wppm-popover-menu-item {\n-\tdisplay: flex;\n-\talign-items: center;\n-\tpadding: 10px;\n-\tcursor: pointer;\n-\tbackground-color: #fff;\n-\tcolor: #707070;\n-  margin-left: 10px !important;\n-}\n-.wppm-popover-menu-item:hover {\n-\tcolor: #fff;\n-  background-color: #313042 !important;\n-}\n-.wppm-popover-menu-item svg {\n-\twidth: 14px;\n-\tmargin-left: 10px;\n-}\n-.wppm-popover-menu-item span {\n-\tfont-size: 14px;\n-}\n-\n-.wppm-button.secondary {\n-  border: 1px solid #ccc !important;\n-  background-color: #fff !important;\n-  color: #313042 !important;\n-  font: 14px \"Helvetica Neue\", Arial, Helvetica, sans-serif !important;\n-}\n-\n-.wppm-button.small {\n-  font-size: 12px !important;\n-}\n-\n-#wppm_task_description, #wppm_add_new_project #wppm_proj_description{\n-\theight: 160px !important;\n-\twidth: 100%\t!important;\n-}\n-\n-\u002F* Form fields *\u002F\n-.wppm-input-group {\n-\twidth: 100%;\n-\tdisplay: flex;\n-\tflex-direction: column;\n-\tpadding-bottom: 15px;\n-\tbox-sizing: border-box;\n-}\n-.wppm-input-group .label-container {\n-\tdisplay: flex;\n-\talign-items: center;\n-\tcolor: #000;\n-\tmargin-bottom: 2px;\n-}\n-.wppm-input-group label {\n-\tfont-size: 12px;\n-\tfont-weight: 600;\n-\tmargin-left: 5px;\n-}\n-.wppm-input-group .label-container svg {\n-\twidth: 12px;\n-\tmargin-right: 5px;\n-}\n-.wppm-input-group input[type=\"text\"],\n-.wppm-input-group select {\n-\twidth: 100%;\n-\tmax-width: 100%;\n-}\n-\n- @media (max-width: 768px) {\n-    .wppm_task_list{\n-      flex-basis: 50% !important;\n-    }\n-  }\n-\n-#wppmprint_menu{\n-  display: flex;\n-  flex-direction: column;\n-  position: absolute;\n-  background: white;\n-  border: 1px solid #ccc;\n-  z-index: 1000;\n-  margin-left: 155px;\n-  display: none;\n-}\n-\n-#wppmprint_menu a {\n-  padding: 8px 12px;\n-  text-decoration: none;\n-  color: #333;\n-}\n-\n-#wppmprint_menu a:hover {\n-  background: #f0f0f0;\n-}\n-\n-.wppm_checklist_items_container { list-style: none; padding-left: 0; }\n-.wppm_checklist_items_container .wppm_checklist_item { \n-    padding: 6px 10px; \n-    background: #fff;\n-    margin-bottom: 4px;\n-    border: 1px solid #ddd;\n-    cursor: grab;\n-    display: flex;\n-    align-items: center;\n-}\n-.wppm_checklist_items_container .wppm_chk_items_drag {\n-    margin-right: 10px;\n-    cursor: move;\n-}\n-\n-\u002F* Main container *\u002F\n-\u002F* GRID CONTAINER *\u002F\n-.wppm_bootstrap .pricing-flex {\n-    display: grid !important;\n-    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n-    gap: 20px;\n-    align-items: stretch;\n-}\n-\n-\u002F* CARD *\u002F\n-.wppm_bootstrap .pricing-widget {\n-    display: flex;\n-    flex-direction: column;\n-\n-    background: #fff;\n-    border: 1px solid #e5e5e5;\n-    border-radius: 6px;\n-    padding: 15px;\n-    box-sizing: border-box;\n-}\n-\n-\u002F* BODY GROWS *\u002F\n-.wppm_bootstrap .pricing-widget .pbody {\n-    flex: 1;\n-}\n-\n-\u002F* FOOTER *\u002F\n-\u002F* .wppm_bootstrap .pricing-widget .pfooter {\n-    display: flex;\n-    justify-content: space-between;\n-    gap: 10px;\n-    margin-top: 15px;\n-}\n-\n-\u002F* MOBILE FOOTER STACK *\u002F\n-@media (max-width: 480px) {\n-    .wppm_bootstrap .pricing-widget .pfooter {\n-        flex-direction: column;\n-    }\n-} *\u002F\n-\n-.wppm-dashboard{\n-    padding:20px;\n-    margin-top:20px;\n-    font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;\n-}\n-.wppm-dashboard-top{\n-    display:grid;\n-    grid-template-columns:repeat(auto-fit,minmax(200px,1fr));\n-    gap:20px;\n-    margin-bottom:20px;\n-}\n-\n-.wppm-small-widget{\n-    background:#ffffff;\n-    border-radius:10px;\n-    padding:20px;\n-    box-shadow:0 2px 8px rgba(0,0,0,0.05);\n-    transition:all 0.2s ease;\n-    display:flex;\n-    align-items:center;\n-    gap:15px;\n-}\n-\n-.wppm-small-widget:hover{\n-    transform:translateY(-3px);\n-    box-shadow:0 6px 16px rgba(0,0,0,0.08);\n-}\n-\n-.wppm-small-widget h3{\n-    font-size:14px;\n-    color:#666;\n-    margin-bottom:10px;\n-}\n-\n-.wppm-number{\n-    font-size:28px;\n-    font-weight:600;\n-    color:#222;\n-}\n-.wppm-small-widget.overdue{\n-    border-left:4px solid #e74c3c;\n-}\n-\n-.wppm-divider{\n-    height:1px;\n-    background:#eee;\n-    margin:20px 0;\n-}\n-\n-.wppm-row{\n-  display:grid;\n-  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));\n-  gap:20px;\n-  margin-bottom:20px;\n-}\n-\n-.wppm-widget{\n-    background:#fff;\n-    border-radius:10px;\n-    padding:20px;\n-    box-shadow:0 2px 8px rgba(0,0,0,0.05);\n-    transition:all 0.2s ease;\n-}\n-.wppm-widget h2{\n-    font-size:16px;\n-    margin-bottom:15px;\n-    font-weight:600;\n-    color:#222;\n-}\n-\n-#tbl_my_tasks,#tbl_active_projects,#tbl_upcoming_tasks, #tbl_todays_tasks {\n-    border-collapse: collapse !important;\n-    width: 100%  !important;\n-}\n-\n-#tbl_my_tasks th,\n-#tbl_my_tasks td,\n-#tbl_todays_tasks th,\n-#tbl_todays_tasks td,\n-#tbl_active_projects th,\n-#tbl_active_projects td,\n-#tbl_upcoming_tasks th,\n-#tbl_upcoming_tasks td {\n-    border: 1px solid #ddd !important;\n-    padding: 8px !important;\n-}\n-\n-#tbl_my_tasks th, #tbl_active_projects th, #tbl_upcoming_tasks th, #tbl_todays_tasks th{\n-    background-color: #f5f5f5 !important;\n-    text-align: left !important;\n-}\n-\n-#tbl_my_tasks tr:hover, #tbl_active_projects tr:hover, #tbl_upcoming_tasks tr:hover, #tbl_todays_tasks tr:hover{\n-    background-color: #f9f9f9 !important;\n-    cursor: pointer;\n-}\n-.wppm-widget table td{\n-    padding:10px;\n-    border-top:1px solid #f2f2f2;\n-    font-size:14px;\n-}\n-\n-.wppm-widget table th{\n-    background:#f8fafc;\n-    color:#777;\n-    font-weight:600;\n-    padding:10px;\n-    border-bottom:1px solid #e5e7eb;\n-}\n-\n-canvas{\n-    max-height:250px !important;\n-}\n-\n-.wppm-widget:hover{\n-    box-shadow:0 8px 20px rgba(0,0,0,0.07);\n-}\n-\n-.wppm-widget-icon{\n-    font-size:28px;\n-    background:#f5f7fb;\n-    padding:12px;\n-    border-radius:8px;\n-}\n-.wppm-widget h2{\n-    display:flex;\n-    justify-content:space-between;\n-    align-items:center;\n-}\n-\n-.wppm-view-all{\n-    font-size:13px;\n-    color:#4c7cf3;\n-    text-decoration:none;\n-}\n-\n-.wppm-view-all:hover{\n-    text-decoration:underline;\n-}\n-\n-.wppm-workload-list {\n-  list-style: none;\n-  padding: 0;\n-  margin: 0;\n-}\n-\n-.wppm-workload-list li {\n-  display: flex;\n-  align-items: center;\n-  gap:10px;\n-  margin-bottom: 10px;\n-}\n-\n-.wppm-workload-bar {\n-  flex:1;\n-  height:8px;\n-  background:#eee;\n-  border-radius:5px;\n-  overflow:hidden;\n-}\n-\n-.wppm-workload-bar div {\n-  height: 100%;\n-  background: #3498db;\n-  border-radius: 5px;\n-}\n-\n-.dashboard-progress-wrapper{\n-    display:flex;\n-    align-items:center;\n-    gap:8px;\n-}\n-\n-.dashboard-progress-bar{\n-    flex:1;\n-    height:8px;\n-    background:#e5e7eb;\n-    border-radius:5px;\n-    overflow:hidden;\n-}\n-\n-.dashboard-progress{\n-    height:100%;\n-    border-radius:5px;\n-}\n-\n-.dashboard-progress-text{\n-    font-size:12px;\n-    font-weight:600;\n-}\n-.wppm-priority-dot{\n-    display:inline-block;\n-    width:10px;\n-    height:10px;\n-    border-radius:50%;\n-    margin-right:6px;\n-    vertical-align:middle;\n+.wppm-heading-inline{\r\n+  display:inline-block;\r\n+  margin-right:5px;\r\n+  margin-bottom: 0;\r\n+  padding: 9px 0 4px 0;\r\n+  line-height: 1.3;\r\n+  font: 22px \"OpenSans-Light\",Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm_table_header{\r\n+  font-weight: normal;\r\n+  font-size: 14px;\r\n+  font-family: Helvetica Neue,Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm_admin_logo{\r\n+  margin-right:5px !important;\r\n+}\r\n+.mce-window.mce-in, .mce-menu.mce-in.mce-animate{\r\n+  z-index: 900000000001 !important;;\r\n+}\r\n+.wppm-add-new-btn{\r\n+  padding: 4px 8px;\r\n+  position: relative;\r\n+  top: -3px;\r\n+  text-decoration: none;\r\n+  border: 1px solid #0071a1;\r\n+  border-radius: 2px;\r\n+  text-shadow: none;\r\n+  font-weight: 600;\r\n+  font-size: 13px;\r\n+  line-height: normal;\r\n+  color: #0071a1;\r\n+  background: #f3f5f6;\r\n+  cursor: pointer;\r\n+  display: inline-block;\r\n+}\r\n+.wppm_loading_icon img{\r\n+  margin-left:  auto;\r\n+  margin-right:  auto;\r\n+  margin-top: auto;\r\n+  display:  block;\r\n+  margin-bottom: auto;\r\n+}\r\n+#wppm_project_container .wppm_loading_icon, #wppm_task_container .wppm_loading_icon{\r\n+  margin-top: 118px;\r\n+}\r\n+.wppm_bootstrap .dataTables_wrapper .dataTables_length select{\r\n+  padding: 0 24px 0 8px !important;\r\n+}\r\n+#wppm_add_new_project_frm{\r\n+  position: relative;\r\n+  min-width: 100px;\r\n+  border: 1px solid #ccd0d4;\r\n+  box-shadow: 0 1px 1px rgba(0,0,0,.04);\r\n+  background: #fff;\r\n+}\r\n+input[type=text]{\r\n+  box-shadow: 0 0 0 transparent;\r\n+  border-radius: 4px;\r\n+  border: 1px solid #7e8993;\r\n+  background-color: #fff;\r\n+  color: #32373c;\r\n+}\r\n+.wppm-button {\r\n+  display: inline-block;\r\n+  text-decoration: none;\r\n+  font-size: 13px;\r\n+  line-height: 26px;\r\n+  height: 28px;\r\n+  margin: 0;\r\n+  padding: 0 10px 1px;\r\n+  cursor: pointer;\r\n+  border-radius: 3px;\r\n+  white-space: nowrap;\r\n+  box-sizing: border-box;\r\n+  border: none;\r\n+}\r\n+.wppm-primary {\r\n+  background: #1A9ED4;\r\n+  color: #fff;\r\n+}\r\n+.wppm-primary:hover {\r\n+  color: #fff;\r\n+}\r\n+.wppm_table{\r\n+  background: #fff;\r\n+  box-shadow: 0 1px 1px rgba(0,0,0,.04);\r\n+  border-spacing: 0;\r\n+  width: 100%;\r\n+  clear: both;\r\n+  margin-top: 10px;\r\n+  display: table;\r\n+  border-collapse: separate;\r\n+  color: #444;\r\n+  font-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;\r\n+  font-size: 13px;\r\n+  line-height: 1.4em;\r\n+  max-width:100%;\r\n+}\r\n+.wppm_table th{\r\n+  border-bottom: 1px solid #555c64;\r\n+  line-height: 2.2em;\r\n+  font-weight: 400;\r\n+  text-align: left;\r\n+  font-size: 14px;\r\n+  display: table-cell;\r\n+  vertical-align: inherit;\r\n+  background-color:#304FFE;\r\n+  color: #FFFFFF;\r\n+  width:2.2em;\r\n+  padding:0 0 0 3px;\r\n+}\r\n+.wppm_table td{\r\n+  vertical-align: middle;\r\n+  padding: 5px 0 5px 2px;\r\n+  width: 2.2em;\r\n+  color: #32373c;\r\n+  font-weight: 400;\r\n+  text-align: left;\r\n+  line-height: 1.3em;\r\n+  font-size: 14px;\r\n+  display: table-cell; \r\n+  white-space: normal;\r\n+}\r\n+.wppm_table tbody{\r\n+  word-wrap: break-word;\r\n+  display: table-row-group;\r\n+  vertical-align: middle;\r\n+  border-color: inherit;\r\n+  background-color: #ffffff;\r\n+  color: #444;\r\n+  font-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;\r\n+  font-size: 13px;\r\n+  line-height: 1.4em;\r\n+  white-space: normal;\r\n+}\r\n+.wppm_table tr:hover{\r\n+  background-color:#f5f5f5;\r\n+  cursor: pointer;\r\n+}\r\n+.wppm_table tr{\r\n+  display: table-row;\r\n+  vertical-align: middle;\r\n+}\r\n+#wppm_project_table tr:nth-child(even){\r\n+  background-color: #f2f2f2;\r\n+}\r\n+#wppm_project_table td{\r\n+  font-weight: 400;\r\n+  font-family: \"Nunito\", \"Segoe UI\", arial;\r\n+  border: none !important;\r\n+  white-space: normal;\r\n+}\r\n+#wppm_project_table th{\r\n+  border: none !important;\r\n+}\r\n+.wppm_thread,.wppm_proj_thread{\r\n+  background-color: #FFFFFF;\r\n+  color: #000000;\r\n+  border-color: #C3C3C3;\r\n+  display: table;\r\n+  padding: 10px;\r\n+  background-color: #FFFFFF;\r\n+  border-radius: 5px;\r\n+  margin-bottom: 20px;\r\n+  margin-top: 10px;\r\n+}\r\n+.wppm_thread_avatar{\r\n+  display: table-cell;\r\n+  vertical-align: top;\r\n+  width: 40px;\r\n+  padding: 5px 5px 5px 10px;\r\n+}\r\n+.wppm_thread_body{\r\n+  display: table-cell;\r\n+  vertical-align: top;\r\n+  padding: 0 15px 5px 15px;\r\n+  width: 100%;\r\n+}\r\n+.wppm_thread_user_name{\r\n+  margin-bottom: 10px;\r\n+  font: 15px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+#wppm_load_individual_project{\r\n+  border-radius: 4px;\r\n+  color: #2C3E50;\r\n+  min-height: 300px;\r\n+  width: 99%;\r\n+  margin-top: 25px;\r\n+  padding-left: 15px;\r\n+}\r\n+.wppm_sidebar_labels{\r\n+  font-size: 12px;\r\n+  margin: 10px 0;\r\n+  cursor: pointer;\r\n+  overflow: hidden;\r\n+  color: #9c9c9c;\r\n+}\r\n+.wppm_label_info{\r\n+  margin-right: 5px;\r\n+  font-size: 12;\r\n+  font-weight: 400;\r\n+}\r\n+.wppm_sidebar .wppm_body{\r\n+  padding-top: 20px;\r\n+}\r\n+.wppm_body {\r\n+  padding-left: 0px;\r\n+}\r\n+.wppm_sidebar .row{\r\n+  background-color: #fff;\r\n+  padding: 0 15px;\r\n+  border-radius: 4px;\r\n+  margin-bottom: 15px;\r\n+}\r\n+#wppm_project_status_widget{\r\n+  margin-top: 10px;\r\n+  border: 1px solid #eee !important;\r\n+}\r\n+.wppm_widget{\r\n+  display: flex;\r\n+  flex-direction: column;\r\n+  width: 100%;\r\n+  min-width: 100%;\r\n+  max-width: 100%;\r\n+  box-sizing: border-box;\r\n+  margin-bottom: 15px;\r\n+  border: 1px solid #eee !important;\r\n+}\r\n+.wppm-widget-header {\r\n+  display: flex;\r\n+  align-items: center;\r\n+  padding: 10px;\r\n+}\r\n+.wppm-widget-header span {\r\n+  display: flex;\r\n+  align-items: center;\r\n+  margin-left: 5px;\r\n+  cursor: pointer;\r\n+}\r\n+.wppm-widget-header h4 {\r\n+\tflex-grow: 1;\r\n+\tmargin: 0px !important;\r\n+}\r\n+.wppm-widget-body {\r\n+\tdisplay: flex;\r\n+\tflex-direction: column;\r\n+\tpadding: 10px 10px 0;\r\n+}\r\n+.wppm-btn{\r\n+  padding: 5px 10px;\r\n+  border-radius: 20px;\r\n+  font-size: 14px;\r\n+  margin-left:20px;\r\n+  background-color: #5067c5;\r\n+  color:#ffffff!important;\r\n+  border: 1px solid #8a8a8a !important;\r\n+}\r\n+.wppm-btn-cancel{\r\n+  padding: 5px 10px;\r\n+  border-radius: 14px;\r\n+  font-size: 14px;\r\n+  margin-left:20px;\r\n+  background: linear-gradient(135deg, #ffffff, #ffffff);\r\n+  color:#000000;\r\n+  border: 1px solid #C3C3C3;\r\n+}\r\n+.wppm_admin_label{\r\n+  border-radius: 30px;\r\n+  font-weight: bold;\r\n+  padding: 5px 10px;\r\n+  font-size: 10px;\r\n+}\r\n+.wppm_section_title{\r\n+  display:inline-block;\r\n+  margin-right:20px;\r\n+  font-size: 23px;\r\n+  font-weight: 400;\r\n+  margin-bottom: 0;\r\n+  padding: 9px 0 4px 0;\r\n+  line-height: 1.3;\r\n+}\r\n+#wppm_task_table{\r\n+  width:100%;\r\n+  background-color: #FFFFFF;\r\n+  cursor: pointer;\r\n+}\r\n+#wppm_task_table tr:nth-child(even){\r\n+  background-color: #f2f2f2;\r\n+}\r\n+#wppm_task_table td{\r\n+  \u002F* border: 1px solid #f2f2f2; *\u002F\r\n+  font-weight: 400;\r\n+  font-family: \"Nunito\", \"Segoe UI\", arial;\r\n+  border: none !important;\r\n+  white-space: normal;\r\n+}\r\n+#wppm_task_table th{\r\n+  border: none !important;\r\n+}\r\n+#wppm_task_table_container{\r\n+  padding: 0 15px 15px 15px;\r\n+}\r\n+.wppm_status{\r\n+  background-color: aqua;\r\n+  border-radius: 30px;\r\n+  padding: 3px 5px 3px 5px;\r\n+  color: #FFFFFF;\r\n+  font-weight: 600;\r\n+  letter-spacing: .3px;\r\n+  font-size: 10px;\r\n+  display: inline-block;\r\n+  text-align: center;\r\n+  line-height: 1;\r\n+}\r\n+.wppm_category{\r\n+  background-color: red;\r\n+  border-radius: 30px;\r\n+  padding: 3px 5px 3px 5px;\r\n+  color: #FFFFFF;\r\n+  font-weight: 600;\r\n+  letter-spacing: .3px;\r\n+  font-size: 10px;\r\n+  display: inline-block;\r\n+  text-align: center;\r\n+  line-height: 1;\r\n+\r\n+}\r\n+.avatar{\r\n+  border-radius: 50%;\r\n+  border: 2px solid #FFF;\r\n+  margin-left: -12px;\r\n+  border: 2px solid #FFF;\r\n+}\r\n+.wppm_action_btn{\r\n+  background-color: #FFF;\r\n+  color: #383333 !important;\r\n+  margin-bottom: 3px !important;\r\n+}\r\n+\u002F***\r\n+ * Filter display css start\r\n+ *\u002F\r\n+ .wppm_filter_display_container{\r\n+  list-style-type: none !important;\r\n+  width: 100% !important;\r\n+  margin: 0 !important;\r\n+  float: left;\r\n+}\r\n+.wppm_filter_display_element{\r\n+  max-width: 300px !important;\r\n+  float: left;\r\n+  margin: 3px 3px 3px 0 !important;\r\n+}\r\n+.wppm_filter_display_element .flex-container{\r\n+  display: flex;\r\n+  border-radius: 4px;\r\n+  background-color:#1E90FF;\r\n+  color:#fff;\r\n+  font-size: 10px;\r\n+}\r\n+.wppm_filter_display_text{\r\n+  max-width: 280px !important;\r\n+  padding: 5px;\r\n+}\r\n+.wppm_filter_display_remove{\r\n+  width: 20px !important;\r\n+  padding: 6px;\r\n+  cursor: pointer;\r\n+}\r\n+.wppm_padding_space{\r\n+  padding-top: 20px;\r\n+}\r\n+.wppm_setting_col2{\r\n+  background-color: #fff;\r\n+  width:  62% !important;\r\n+  padding: 20px;\r\n+  border-radius: 20px;\r\n+}\r\n+.wppm_padding_space{\r\n+  padding-top: 20px;\r\n+}\r\n+.wppm-sortable-handle,.wppm-sortable-edit,.wppm-sortable-delete,.wppm-sortable-clone{\r\n+  cursor: pointer;\r\n+  width: 25px;\r\n+}\r\n+.wppm-sortable-label{\r\n+  width: 220px;\r\n+}\r\n+.wppm-flex-container {\r\n+  display: flex;\r\n+  border-radius: 5px;\r\n+  max-width: 320px;\r\n+  height: 35px;\r\n+}\r\n+.wppm-title{\r\n+  font:18px \"OpenSans-Light\",Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm-flex-container > div {\r\n+  margin: 5px 0 5px 5px;\r\n+  padding: 3px;\r\n+  font-size: 12px;\r\n+}\r\n+.wppm_alert{\r\n+  position: fixed;\r\n+  top: 50px;\r\n+  right: 50px;\r\n+  font-size: 15px;\r\n+  font-weight: bold;\r\n+  z-index: 10000000000000;\r\n+}\r\n+#wppm_add_new_project{\r\n+  margin:20px;\r\n+  background-color: #FFFFFF;\r\n+  font-family: \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm_form_field_label{\r\n+ font-size: 13px;\r\n+ font-style:bold ;\r\n+}\r\n+.wppm_task_description,.wppm_project_description{\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm_email_notification_header{\r\n+  padding-left: 15px;\r\n+}\r\n+#wppm_project_container{\r\n+  border-radius: 4px;\r\n+  border: 1px solid #E5E4E4;\r\n+  background-color: #fff;\r\n+  color: #2C3E50;\r\n+  min-height: 300px;\r\n+  width: 99%;\r\n+}\r\n+#wppm_frm_field_container{\r\n+  padding: 0 20px;\r\n+  padding-top: 15px;\r\n+  width:100%;\r\n+}\r\n+.wppm_frm_submit{\r\n+  padding: 0 30px;\r\n+  margin: 30px 0;\r\n+}\r\n+.wppm_td_project_status{\r\n+  border-radius: 30px;\r\n+  padding: 3px 5px 3px 5px;\r\n+  font-weight: 600;\r\n+  letter-spacing: .3px;\r\n+  font-size: 10px;\r\n+  display: inline-block;\r\n+  text-align: center;\r\n+  line-height: 1;\r\n+}\r\n+#wppm_apply_filter{\r\n+  background-color:#306EFF;\r\n+  margin-bottom:2px;\r\n+}\r\n+\r\n+.wppm_label{\r\n+  font-size: 12px;\r\n+  font-weight: 600;\r\n+  color: #9c9c9c;\r\n+  width: 100%;\r\n+}\r\n+#wppm_avatar{\r\n+  background-color:black;\r\n+  padding: 3px;\r\n+  color: #fff;\r\n+  display: inline!important;\r\n+}\r\n+#wppm_project_search_filter{\r\n+  padding: 0 30px;\r\n+  border-radius: 20px;\r\n+  font: 12px \"Helvetica Neue\",Arial,Helvetica,sans-serif;\r\n+}\r\n+#wppm_project_search_filter_img, .wppm_task_search_filter_img{\r\n+  position: relative !important;\r\n+  top: 10px;\r\n+  left: 30px;\r\n+}\r\n+.wppm_add_new_task_img, .wppm_task_list_image{\r\n+  padding-right: 5px;\r\n+  padding-bottom: 3px;\r\n+}\r\n+.wppm_table_td{\r\n+  font-size: 14px !important;\r\n+}\r\n+#wppm_project_and_task_search{\r\n+  width:40%;\r\n+  margin-top: 15px;\r\n+}\r\n+#wppm_project_and_task_search svg{\r\n+  width: 16px;\r\n+  height: 16px;\r\n+  margin-left: 10px;\r\n+  float: left;\r\n+  margin-top: -26px;\r\n+  cursor: pointer;\r\n+}\r\n+.wppm_project_frm_fields ul, #frm_get_task_users ul, #frm_get_task_creator ul, #frm_get_project_users ul, #frm_get_project_creator ul{\r\n+  border: 1px solid #ddd;\r\n+  list-style-type: none!important;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+#wppm_task_search{\r\n+  width:40%;\r\n+  margin-top: 15px;\r\n+}\r\n+#wppm_task_search svg{\r\n+  width: 16px;\r\n+  height: 16px;\r\n+  margin-left: 10px;\r\n+  float: left;\r\n+  margin-top: -26px;\r\n+  cursor: pointer;\r\n+}\r\n+#wppm_task_search_filter{\r\n+  padding: 0 30px;\r\n+  border-radius: 20px;\r\n+}\r\n+#wppm_more_filter_option div{\r\n+  display: inline-block;\r\n+}\r\n+#wppm_heading_inline svg{\r\n+  width: 28px;\r\n+  height:23px;\r\n+}\r\n+.wppm_card_header{\r\n+  border-bottom: 1px solid #EFF2F7;\r\n+  height: 35px;\r\n+  padding-top: 5px;\r\n+  padding-bottom: 5px;\r\n+}\r\n+.wppm_task_list{\r\n+  border:1px solid #EFF2F7;\r\n+  display:flex;\r\n+  flex-direction:column;\r\n+  flex-basis: 30%;\r\n+  \u002F* flex: 1 0 auto; *\u002F\r\n+  overflow: hidden;\r\n+  flex-grow: 1;\r\n+  flex-shrink: 0;\r\n+  margin:5px;\r\n+}\r\n+@media screen and (max-width: 767px) {\r\n+  .wppm_task_list{\r\n+    flex-basis: 50%;\r\n+  }\r\n+}\r\n+.wppm_task_name_grid_view, .wppm_task_due_date_grid_view, .wppm_empty_container, .wppm_proj_name_grid_view{\r\n+  font-family: \"OpenSans-Semibold\",\"Helvetica Neue\",Arial,Helvetica,sans-serif;\r\n+  font-size: 14px;\r\n+}\r\n+.wppm_card_body{\r\n+  text-align: center;\r\n+  border:1px solid #EFF2F7;\r\n+  margin: 10px;\r\n+  text-align:left;\r\n+  padding: 10px 5px 10px 0px;\r\n+  border-radius: 5px;\r\n+}\r\n+.wppm_task_container{\r\n+  overflow:scroll;\r\n+  display: flex;\r\n+  flex-direction: row;\r\n+  margin-top:40px;\r\n+  overflow-x: auto;\r\n+  overflow-y: auto;\r\n+  min-height: 750px;\r\n+}\r\n+#wppm_task_frm_field_container{\r\n+  padding-top: 20px;\r\n+  width:100%;\r\n+}\r\n+#wppm_add_new_task{\r\n+  margin:20px;\r\n+  background-color: #FFFFFF;\r\n+  font-family: \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+#wppm_task_container{\r\n+  border-radius: 4px;\r\n+  border: 1px solid #E5E4E4;\r\n+  background-color: #fff; \r\n+  color: #2C3E50;\r\n+  min-height: 300px;\r\n+  width: 99%;\r\n+}\r\n+.wppm-submit-btn{\r\n+  color: #FFF !important;\r\n+  background-color: #306EFF;\r\n+  border-color: #306EFF;\r\n+  box-shadow: inset 0 1px 0 rgb(255 255 255 \u002F 15%);\r\n+\tcursor: pointer;\r\n+  border-radius: 50px !important;\r\n+  padding: 5px;\r\n+}\r\n+.wppm_btn{\r\n+  border-radius: 15px!important;\r\n+}\r\n+.wppm_reset_btn{\r\n+  color: #273444;\r\n+  background-color: #EFF2F7;\r\n+  border-color: #EFF2F7;\r\n+  border-radius: 50px;\r\n+  padding: 5px;\r\n+}\r\n+.select2-selection--single{\r\n+  height:35px!important;\r\n+}\r\n+.select2-container{\r\n+  width:500px!important;\r\n+}\r\n+.wppm_td_task_status{\r\n+  border-radius: 30px;\r\n+  padding: 3px 5px 3px 5px;\r\n+  font-weight: 600;\r\n+  letter-spacing: .3px;\r\n+  font-size: 10px;\r\n+  display: inline-block;\r\n+  text-align: center;\r\n+  line-height: 1;\r\n+}\r\n+.wppm_td_task_priority{\r\n+  border-radius: 30px;\r\n+  padding: 3px 5px 3px 5px;\r\n+  font-weight: 600;\r\n+  letter-spacing: .3px;\r\n+  font-size: 10px;\r\n+  display: inline-block;\r\n+  text-align: center;\r\n+  line-height: 1;\r\n+}\r\n+.wppm_empty_container{\r\n+  display: flex;\r\n+  justify-content: center;\r\n+  align-items: center;\r\n+  font-size: 10;\r\n+  font-weight: 500;\r\n+  color: #becdd9;\r\n+  border: 1px dashed #becdd9;\r\n+  height: 0;\r\n+  opacity: 0;\r\n+  border-radius: 15px;\r\n+  opacity: 1;\r\n+  height: 60px;\r\n+  margin-top: 10px;\r\n+}\r\n+.wppm_card_task_action{\r\n+  text-align:right;\r\n+}\r\n+.wppm_card_task_progress{\r\n+  color:#8492A6;\r\n+  text-align: right;\r\n+}\r\n+.wppm_status_name{\r\n+  text-align:left;\r\n+  font-family: \"OpenSans-Regular\",\"Helvetica Neue\",Arial,Helvetica,sans-serif;\r\n+  font-size: 15px;\r\n+  padding-top: 5px;\r\n+}\r\n+.wppm_task_frm_fields ul{\r\n+  border: 1px solid #ddd;\r\n+  list-style-type: none;\r\n+}\r\n+.wppm_task_frm_fields li{\r\n+  padding: 5px;\r\n+}\r\n+#wppm_view_task_search_filter{\r\n+  padding: 0 30px;\r\n+  border-radius: 20px;\r\n+}\r\n+.wppm_task_details, .wppm_project_details{\r\n+  border-bottom: 1px dashed;\r\n+  cursor: pointer;\r\n+  display: inline-block;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm_task_details_priority{\r\n+  cursor: pointer;\r\n+}\r\n+.wppm_task_details_label, #wppm_add_checklist, .wppm_project_details_label{\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+  color: #858c96;\r\n+  width: 98px;\r\n+  float: left;\r\n+  word-wrap: break-word;\r\n+  margin: 5px;\r\n+  cursor: pointer;\r\n+}\r\n+.wppm_task_details_container{\r\n+  background-color: #FFFFFF;\r\n+  margin: 15px;\r\n+  padding-bottom: 10px;\r\n+  border: 1px solid #eee !important;\r\n+}\r\n+.wppm_task_checklist_container, .wppm_thread{\r\n+  background-color: #FFFFFF;\r\n+  margin: 15px;\r\n+  border: 1px solid #eee !important;\r\n+}\r\n+.wppm_proj_thread{\r\n+  background-color: #FFFFFF;\r\n+  border: 1px solid #eee !important;\r\n+}\r\n+\r\n+.wppm_progress_bar_container{\r\n+  margin-bottom: 6px;\r\n+  margin-top: 5px;\r\n+  position: relative;\r\n+}\r\n+.wppm_progress_bar{\r\n+  background: rgba(9,30,66,.08);\r\n+  border-radius: 4px;\r\n+  clear: both;\r\n+  height: 8px;\r\n+  margin: 0 0 0 40px;\r\n+  overflow: hidden;\r\n+  position: relative;\r\n+}\r\n+.wppm_progressbar_label {\r\n+  color: #5e6c84;\r\n+  font-size: 11px;\r\n+  line-height: 10px;\r\n+  position: absolute;\r\n+  top: -1px;\r\n+  left:0;\r\n+  text-align: center;\r\n+  width: 32px;\r\n+  margin-left:10px;\r\n+}\r\n+.wppm_checkprogress{\r\n+  bottom: 0;\r\n+  left: 0;\r\n+  position: absolute;\r\n+  overflow:hidden;\r\n+  top: 0;\r\n+  transition-duration: .14s;\r\n+  transition-timing-function: ease-in;\r\n+  margin:10px,0px,10px,0px !important;\r\n+}\r\n+.wppm_checklist_divider{\r\n+  margin: 0 15px 0 15px;\r\n+}\r\n+.wppm_add_checklist_item_btn{\r\n+  margin-top:10px !important;\r\n+}\r\n+#wppm_checklist_btn{\r\n+  margin:10px;\r\n+}\r\n+#wppm_add_checklist{\r\n+  border-bottom: 1px dashed;\r\n+}\r\n+.wppm_total_checked_item{\r\n+  margin-left: 5px !important;\r\n+  margin-bottom: 10px !important;\r\n+}\r\n+.wppm_checklist_total_checked_item{\r\n+  color:#8492A6;\r\n+  font-size: 10px !important;\r\n+}\r\n+.wppm_checklist input[type=\"checkbox\"]{\r\n+  margin:5px;\r\n+}\r\n+.wppm_card_body{\r\n+  cursor:pointer;\r\n+}\r\n+#wppm_grid_view_btn{\r\n+  border: 1px solid #ccc;\r\n+  padding: 5px;\r\n+  background-color: #FFFFFF;\r\n+  float: right;\r\n+  border-radius: 4px;\r\n+  cursor: pointer;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+  color: #858c96;\r\n+  margin-bottom: 5px;\r\n+  margin-top: 5px;\r\n+}\r\n+#wppm_list_view_btn{\r\n+  border: 1px solid #ccc;\r\n+  padding: 5px;\r\n+  background-color: #FFFFFF;\r\n+  float: right;\r\n+  border-radius: 4px;\r\n+  cursor: pointer;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+  color: #858c96;\r\n+}\r\n+#wppm_select_user_role{\r\n+  margin: 10px 10px 10px 0px;\r\n+}\r\n+.wppm_delete_user_icon, .wppm_user_roles{\r\n+  margin-top: 7px;\r\n+  cursor: pointer;\r\n+}\r\n+#wppm_project_users,#wppm_task_users {\r\n+  margin-bottom: 10px;\r\n+}\r\n+.wppm_project_user_avatar,.wppm_task_user_avatar{\r\n+  padding: 10px; \r\n+  overflow:hidden;\r\n+}\r\n+.wppm_project_user_names, .wppm_task_user_names,.wppm_project_user_role{\r\n+  padding: 0 0 10px 5px; \r\n+  overflow:hidden;\r\n+  color:#9c9c9c;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm_project_users_not_assign_label{\r\n+  color:#9c9c9c;\r\n+}\r\n+.wppm_user_display_container, .wppm_task_user_display_container{\r\n+  padding: 5px;\r\n+}\r\n+#wppm_user_name, #wppm_task_user_name{\r\n+  margin-bottom: 10px;\r\n+}\r\n+#wppm_task_users,#wppm_project_creator{\r\n+  margin-left: 10px;\r\n+}\r\n+#wppm_comment_btn{\r\n+  display:none;\r\n+  padding: 10px;\r\n+}\r\n+#wppm_proj_comment_btn{\r\n+  display:none;\r\n+  padding: 10px;\r\n+}\r\n+#wppm_activity_container{\r\n+  background-color:#ffffff;\r\n+  margin:15px;\r\n+  border: 1px solid #eee !important;\r\n+}\r\n+.wppm_task_discussion{\r\n+  font: 18px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm_proj_discussion{\r\n+  font: 18px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm_delete_checklist{\r\n+  color:#b73232 !important;\r\n+  font: 13px\u002F20px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+  border-bottom: 1px dashed;\r\n+  position: relative;\r\n+  margin-left: 12px;\r\n+  cursor: pointer;\r\n+  transition: 170ms linear all;\r\n+}\r\n+.wppm_delete_checklist:hover{\r\n+  color:#2067b0 !important;\r\n+  border-bottom: 1px dashed !important;\r\n+  text-decoration:none !important;\r\n+}\r\n+.wppm_add_checklist{\r\n+  color: #80868e !important;\r\n+  font: 13px\u002F20px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+  border-bottom: 1px dashed !important;\r\n+  position: relative;\r\n+  margin-left: 12px;\r\n+  cursor: pointer;\r\n+  transition: 170ms linear all;\r\n+}\r\n+.wppm_add_checklist:hover{\r\n+  border-bottom: 1px dashed !important;\r\n+  text-decoration:none !important;\r\n+}\r\n+#wppm_task_comment{\r\n+  width: 80%;\r\n+  height: 30px;\r\n+  padding: 5px;\r\n+  margin-bottom: 15px;\r\n+  overflow: hidden;\r\n+  border: 1px solid #eee;\r\n+  color:#eee;\r\n+  margin-top: 10px;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+#wppm_proj_comment{\r\n+  width: 80%;\r\n+  height: 30px;\r\n+  padding: 5px;\r\n+  margin-bottom: 15px;\r\n+  overflow: hidden;\r\n+  border: 1px solid #eee;\r\n+  color:#eee;\r\n+  margin-top: 10px;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm_attachment_title{\r\n+  font: 15px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm_comment_date{\r\n+  color:#a8aeb5;\r\n+}\r\n+.wppm_comment_date:hover{\r\n+  color:#000000;\r\n+  font-style: normal;\r\n+}\r\n+#wppm_attach_file{\r\n+  color:#301db7;\r\n+  cursor:pointer;\r\n+  font-weight: normal;\r\n+  text-decoration-line: underline;\r\n+  text-decoration-style: dotted;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+#wppm_individual_cancel_comment_btn{\r\n+  float:right; \r\n+  background-color:#ffffff;\r\n+  margin-left: 5px; \r\n+  margin-top:5px;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+#wppm_individual_submit_task_comment_btn{\r\n+  float:right;\r\n+  margin-left: 5px; \r\n+  margin-top:5px;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+#wppm_proj_attach_file{\r\n+  color:#301db7;\r\n+  cursor:pointer;\r\n+  font-weight: normal;\r\n+  text-decoration-line: underline;\r\n+  text-decoration-style: dotted;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+#wppm_individual_cancel_proj_comment_btn{\r\n+  float:right; \r\n+  background-color:#ffffff;\r\n+  margin-left: 5px; \r\n+  margin-top:5px;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+#wppm_individual_submit_proj_comment_btn{\r\n+  float:right;\r\n+  margin-left: 5px; \r\n+  margin-top:5px;\r\n+  font: 13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm_thread_messege{\r\n+  font-size: 14px;\r\n+  font-weight: 400;\r\n+  color: #4e4e4e;\r\n+}\r\n+.wppm_attachment_cancel{\r\n+  float: right;\r\n+  margin: -22px 0px 0 0;\r\n+  cursor: pointer;\r\n+}\r\n+.widget_header{\r\n+  margin-bottom: 3px !important;\r\n+  font: 14px \"Helvetica Neue\",Helvetica,Arial,sans-serif !important;\r\n+}\r\n+.wppm_task_label,.wppm_checklist_label,.wppm_project_label{\r\n+  font: 18px \"Helvetica Neue\",Helvetica,Arial,sans-serif !important;\r\n+}\r\n+.widget_divider{\r\n+  margin:4px 0 6px 0px !important;\r\n+}\r\n+.wppm_individual_task_widget{\r\n+  margin-top: 15px!important;\r\n+}\r\n+.select2-container{\r\n+  z-index:999999999999!important;\r\n+  width:100%!important;\r\n+}\r\n+.flatpickr-calendar{\r\n+  z-index:999999999999!important;\r\n+}\r\n+#wppm_edit_task_label{\r\n+  width: 100%;\r\n+  margin-bottom: 10px;\r\n+}\r\n+#wppm_edit_project_title, #wppm_edit_task_priority,#wppm_edit_task_description_label{\r\n+  margin-bottom:10px;\r\n+}\r\n+#wppm_edit_task_priority{\r\n+  max-width:100%!important;\r\n+}\r\n+.wppm_edit_task_details_widget, .wppm_thread_action, .wppm_edit_project_details_widget{\r\n+  float:right;\r\n+  cursor:pointer;\r\n+}\r\n+.wppm_add_new_task_btn, #wppm_task_list_btn,#wppm_delete_btn,#wppm_delete_task_btn,#wppm_clone_task_btn,#wppm_print_task_btn,#wppm_archieve_task_btn,#wppm_dashboard_btn{\r\n+  cursor: pointer;\r\n+}\r\n+#wppm_project_details_container{\r\n+  border: 1px solid #eee;\r\n+  margin-top: 12px;\r\n+  padding-top: 10px;\r\n+  margin-bottom: 12px;\r\n+}\r\n+#wppm_view_project_task{\r\n+  background-color: #ffffff;\r\n+}\r\n+#wppm_project_tasks,.wppm_add_new_project_btn,#wppm_proj_overview_btn{\r\n+  cursor:pointer;\r\n+}\r\n+#wppm_add_new_project_btn,#wppm_proj_overview_btn{\r\n+  margin-bottom: 10px;\r\n+}\r\n+#wppm_delete_project_icon, #wppm_add_new_project_icon, #wppm_project_list_icon, #wppm_task_list_icon{\r\n+  margin-top: -3px;\r\n+}\r\n+.wppm_add_new_icon{\r\n+  float: right!important;\r\n+  cursor:pointer;\r\n+}\r\n+.wppm_flex {\r\n+  display: flex !important;\r\n+}\r\n+.attachment_link span{\r\n+  font-size: 13px;\r\n+  color: #0077AE;\r\n+  cursor: pointer;\r\n+  text-decoration-line: underline;\r\n+  text-decoration-style:dotted;\r\n+  padding-right: 10px;\r\n+}\r\n+.wppm_bootstrap select{\r\n+  max-width:100% !important;\r\n+}\r\n+#wppm_en_body {\r\n+  height: 200px !important;\r\n+}\r\n+#wppm_tbl_templates tr{\r\n+  cursor:pointer;\r\n+}\r\n+#tbl_project_tasks td, #tbl_project_tasks th{\r\n+  text-align: center;\r\n+}\r\n+#tbl_project_tasks tr{\r\n+  cursor:pointer;\r\n+}\r\n+.wppm-pagination-txt{\r\n+  text-decoration: none;\r\n+  cursor: default;\r\n+  padding-right: 5px;\r\n+}\r\n+.wppm_task_pagination{\r\n+  float:right;\r\n+  color:#5f6368;\r\n+  margin-right:10px;\r\n+  cursor:pointer;\r\n+}\r\n+.wppm_proj_pagination{\r\n+  color:#5f6368;\r\n+  cursor:pointer;\r\n+}\r\n+.wppm_proj_pagination_container, .wppm_task_pagination_container{\r\n+  height: 30px;\r\n+  margin-top: 10px;\r\n+  display: flex;\r\n+  font-family: 'OpenSans-Semibold',\"Helvetica Neue\",Arial,Helvetica,sans-serif;\r\n+  font-size: 14px;\r\n+}\r\n+.wppm_proj_pagination_container a, .wppm_task_pagination_container a{\r\n+  color:#0073aa;\r\n+}\r\n+.wppm_pagination_prev{\r\n+  border-left-width: 1px;\r\n+  border-left-style: solid;\r\n+  padding-left: .75em;\r\n+  padding-right: .5em;\r\n+  text-decoration: none;\r\n+  border-color: #cdcdcd;\r\n+  color:#0073aa;\r\n+}\r\n+.wppm_pagination_next{\r\n+  border-left-width: 1px;\r\n+  border-left-style: solid;\r\n+  padding-left: .75em;\r\n+  padding-right: .5em;\r\n+  text-decoration: none;\r\n+  border-color: #cdcdcd;\r\n+  color:#337ab7;\r\n+}\r\n+.wppm_thread_action_btn{\r\n+  float: right;\r\n+  cursor: pointer;\r\n+  margin-left: 10px;\r\n+  color: #a7a9ab;\r\n+  font-size: 14px;\r\n+}\r\n+.wppm-task-list-btn{\r\n+  cursor:pointer;\r\n+}\r\n+.wppm_setting_pills li{\r\n+  background-color: #ffffff;\r\n+  border-radius: 15px !important;\r\n+  color:#9c9c9c !important;\r\n+  line-height:normal !important;\r\n+}\r\n+.wppm_email_notification_table td{\r\n+  font-weight: 400;\r\n+  font-family: \"Nunito\", \"Segoe UI\", arial;\r\n+}\r\n+.wppm_email_notification_table th{\r\n+  font-weight: 400;\r\n+  font-family: \"Nunito\", \"Segoe UI\", arial;\r\n+  font-weight: bold;\r\n+}\r\n+.wppm_task_result{\r\n+  text-align: center;\r\n+  margin-top: 15px;\r\n+  font-family: 'OpenSans-Light',Arial,Helvetica,sans-serif;\r\n+  font-size: 15px;\r\n+  color: #525c69;\r\n+}\r\n+.wppm_project_result{\r\n+  text-align: center;\r\n+  font-family: 'OpenSans-Light',Arial,Helvetica,sans-serif;\r\n+  font-size: 15px;\r\n+  color: #525c69;\r\n+}\r\n+#wppm_edit_project_label{\r\n+  margin-bottom: 10px;\r\n+}\r\n+#wppm_edit_project_category{\r\n+  margin-bottom: 20px;\r\n+}\r\n+#tbl_project_tasks,#tbl_custom_field,.select2-results__options,.select2-selection__rendered, .wppm_filter_display_text, .wppm_display_user_none, #wppm_assign_to_none_task{\r\n+  font:13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+}\r\n+.wppm_edit_project_label, .wppm_edit_task_label, .wppm_edit_task_start_date, .wppm_edit_task_end_date, .wppm_edit_task_priority_label, .wppm_edit_task_description_label,.wppm_edit_project_label,.wppm_edit_project_start_date,.wppm_edit_project_end_date,.wppm_edit_project_category_label, .wppm_edit_project_description_label,.wppm_project_status, .wppm_edit_task_status_label,.wppm_ct_field_label{\r\n+  font:13px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\r\n+  margin-bottom: 5px;\r\n+}\r\n+#frm_get_project_users ul, #frm_get_task_users ul{\r\n+  z-index: 10000!important;\r\n+  position: absolute;\r\n+  box-shadow: 0 1px 2px rgb(79 148 212 \u002F 80%);\r\n+  background-color: #fff;\r\n+  cursor: pointer;\r\n+}\r\n+\r\n+.wppm_bootstrap .wppm_padding_space{\r\n+  padding-top: 20px;\r\n+}\r\n+\r\n+.wppm_bootstrap .pricing-widget {\r\n+  margin-bottom: 30px;\r\n+}\r\n+.wppm_bootstrap .pheader {\r\n+  background-color: #555;\r\n+  color: #ffffff;\r\n+  padding: 10px;\r\n+}\r\n+.wppm_bootstrap .pheader .title{\r\n+  padding: 0;\r\n+  margin: 0;\r\n+  text-align: center;\r\n+}\r\n+.wppm_bootstrap .pheader .subtitle{\r\n+  padding: 0;\r\n+  margin: 10px 0 0;\r\n+  text-align: center;\r\n+}\r\n+.wppm_bootstrap .payment_freq {\r\n+  color: #fff !important;\r\n+}\r\n+.wppm_bootstrap .pbody {\r\n+  padding: 20px;\r\n+  border: 1px solid #555;\r\n+}\r\n+.wppm_bootstrap .addon-container {\r\n+  display: flex;\r\n+  align-items: center;\r\n+  padding: 5px 0;\r\n+}\r\n+.wppm_bootstrap .addon-details {\r\n+  flex-grow: 1;\r\n+  padding-left: 5px;\r\n+}\r\n+.wppm_bootstrap .pfooter {\r\n+  display: flex;\r\n+  border-left: 1px solid #555;\r\n+  border-right: 1px solid #555;\r\n+  border-bottom: 1px solid #555;\r\n+  justify-content: center;\r\n+  padding: 10px 0;\r\n+}\r\n+\r\n+.wppm_bootstrap .purchase_addon{\r\n+  padding-right: 5px;\r\n+}\r\n+\r\n+#wppm_chevron_sort_down_task_name_img, #wppm_chevron_sort_down_project_list_img, #wppm_chevron_sort_down_status_img, #wppm_chevron_sort_down_priority_img, #wppm_chevron_sort_down_start_date_img, #wppm_chevron_sort_down_end_date_img,#wppm_chevron_sort_down_task_duration_img{\r\n+  margin-right:-19px;\r\n+}\r\n+\r\n+.wppm-help-container{\r\n+  padding: 10px;\r\n+  background-color: #f0f0f1;\r\n+  margin-bottom: 15px;\r\n+  border-radius: 3px;\r\n+}\r\n+\r\n+#wppm_public_project_label{\r\n+  padding: 10px 0px 0px 10px;\r\n+}\r\n+\r\n+.wppm-filter-actions{\r\n+  display: flex;\r\n+  flex-wrap: wrap;\r\n+  align-items: center;\r\n+}\r\n+\r\n+#wppm_project_filter_container{\r\n+  display: flex;\r\n+  flex-wrap: wrap;\r\n+  align-items: flex-end;\r\n+  margin-bottom: 10px;\r\n+}\r\n+\r\n+#wppm_task_filter_container{\r\n+  display: flex;\r\n+  flex-wrap: wrap;\r\n+  align-items: flex-end;\r\n+  margin-bottom: 10px;\r\n+}\r\n+\r\n+#wppm_task_filter, #wppm_task_list_proj_filter\r\n+{\r\n+  border: 1px solid #ccc !important;\r\n+  background-color:#FFFFFF;\r\n+  border-radius:4px;\r\n+  font: 15px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\r\n+}\r\n+\r\n+.wppm-filter-item {\r\n+  max-width: 200px;\r\n+  margin-right: 5px;\r\n+  margin-bottom: 10px;\r\n+  margin: 0 5px 10px 10px;\r\n+}\r\n+.wppm-filter-item select {\r\n+  width: 100% !important;\r\n+}\r\n+\r\n+.wppm-filter-item label{\r\n+  font-size: 12px;\r\n+  font-weight: 600;\r\n+  margin-bottom: 3px;\r\n+  vertical-align: middle;\r\n+  color: #858c96;\r\n+}\r\n+\r\n+.wppm_display_submit{\r\n+  display: flex;\r\n+  margin-bottom: 10px;\r\n+}\r\n+\r\n+.wppm-filter-actions span {\r\n+  cursor: pointer;\r\n+  font-size: 16px;\r\n+  text-decoration: underline;\r\n+  margin-bottom: 7px!important;\r\n+  font: 14px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\r\n+  color: #858c96;\r\n+}\r\n+\r\n+.wppm-link {\r\n+  cursor: pointer !important;\r\n+  text-decoration: none !important;\r\n+}\r\n+\r\n+.wppm-link:hover {\r\n+  color: #2271b1 !important;\r\n+  text-decoration: underline !important;\r\n+}\r\n+\r\n+#wppm_project_list_container select{\r\n+  min-height: 30px !important;\r\n+  max-height: 35px !important;\r\n+  padding: 0 24px 0 8px !important;\r\n+  border: 1px solid #ccc !important;\r\n+  font: 14px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\r\n+}\r\n+\r\n+#wppm_task_list_container select{\r\n+  min-height: 30px !important;\r\n+  max-height: 35px !important;\r\n+  padding: 0 24px 0 8px !important;\r\n+  border: 1px solid #ccc !important;\r\n+  font: 15px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\r\n+}\r\n+\r\n+#wppm_proj_discussion_container{\r\n+  background-color: #ffffff;\r\n+  border: 1px solid #eee !important;\r\n+}\r\n+.wppm-setting-tab-container {\r\n+\tdisplay: flex;\r\n+\tflex-wrap: wrap;\r\n+\twidth: 100%;\r\n+\talign-items: center;\r\n+\tmargin-bottom: 10px;\r\n+  background-color:#F0F0F1;\r\n+}\r\n+.wppm-setting-tab-container button {\r\n+\tpadding: 7px 15px;\r\n+\tfont-size: 16px;\r\n+\tfont-weight: normal;\r\n+\tborder: none !important;\r\n+\tcolor: #6A6A6A;\r\n+\tbackground-color: transparent;\r\n+\tcursor: pointer;\r\n+\tborder-radius: 16px;\r\n+\tmargin: 10 0 5px 5px;\r\n+}\r\n+.wppm-setting-tab-container button.active,\r\n+.wppm-setting-tab-container button:hover {\r\n+\tcolor: #fff;\r\n+\tbackground-color: #FFA04A;\r\n+}\r\n+.wppm-input-group {\r\n+\twidth: 100%;\r\n+\tdisplay: flex;\r\n+\tflex-direction: column;\r\n+\tpadding-bottom: 15px;\r\n+\tbox-sizing: border-box;\r\n+}\r\n+.wppm-input-group .label-container {\r\n+\tdisplay: flex;\r\n+\talign-items: center;\r\n+\tcolor: #000;\r\n+\tmargin-bottom: 2px;\r\n+}\r\n+.wppm-input-group label {\r\n+\tfont-size: 12px;\r\n+\tfont-weight: 600;\r\n+\tmargin-right: 5px;\r\n+}\r\n+.wppm-input-group .label-container svg {\r\n+\twidth: 12px;\r\n+\tmargin-left: 5px;\r\n+}\r\n+.wppm-input-group input[type=\"text\"],\r\n+.wppm-input-group select {\r\n+\twidth: 100%;\r\n+\tmax-width: 100%;\r\n+}\r\n+.wppm-input-group .checkbox-group,\r\n+.wppm-input-group .radio-group {\r\n+\twidth: 100%;\r\n+\tdisplay: flex;\r\n+\tflex-wrap: wrap;\r\n+\talign-items: center;\r\n+}\r\n+.wppm-input-group .checkbox-group div,\r\n+.wppm-input-group .radio-group div {\r\n+\twidth: 250px;\r\n+\tdisplay: flex;\r\n+\tflex-wrap: wrap;\r\n+\talign-items: center;\r\n+\tmargin: 0 10px 5px 0;\r\n+}\r\n+.wppm-input-group .checkbox-group div input,\r\n+.wppm-input-group .radio-group div input {\r\n+\tmargin: 0 5px 0 0 !important;\r\n+}\r\n+.wppm-input-group .checkbox-group div span,\r\n+.wppm-input-group .radio-group div span {\r\n+\tfont-size: 12px;\r\n+\tfont-weight: 300;\r\n+}\r\n+.wppm-input-group .required-char {\r\n+\tfont-size: 12px;\r\n+\tcolor: #ff0000;\r\n+}\r\n+.wppm-input-group .divide-bar {\r\n+\twidth: 100%;\r\n+\tdisplay: flex;\r\n+\tflex-wrap: grid;\r\n+\talign-items: center;\r\n+}\r\n+\r\n+\u002F* Checkboxes *\u002F\r\n+#wppm-container .checkbox-container,\r\n+.wppm-modal .checkbox-container, #wppm_task_list_container .checkbox-container {\r\n+\tdisplay: flex;\r\n+\tline-height: normal;\r\n+}\r\n+#wppm-container .checkbox-container input,\r\n+.wppm-modal .checkbox-container input,  #wppm_task_list_container .checkbox-container input{\r\n+\tpadding: 0;\r\n+\theight: initial;\r\n+\twidth: initial;\r\n+\tmargin-bottom: 0;\r\n+\tdisplay: none;\r\n+\tcursor: pointer;\r\n+}\r\n+#wppm-container .checkbox-container label,\r\n+.wppm-modal .checkbox-container label , #wppm_task_list_container .checkbox-container label{\r\n+\tposition: relative;\r\n+\tcursor: pointer;\r\n+\tpadding: 0 !important;\r\n+\tfont-size: 14px !important;\r\n+}\r\n+#wppm-container .checkbox-container label:before,\r\n+.wppm-modal .checkbox-container label:before ,  #wppm_task_list_container .checkbox-container label:before{\r\n+\tcontent:'';\r\n+\t-webkit-appearance: none;\r\n+\tbackground-color: #fff;\r\n+\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), inset 0px -15px 10px -12px rgba(0, 0, 0, 0.05);\r\n+\tdisplay: inline-block;\r\n+\tposition: relative;\r\n+\tvertical-align: middle;\r\n+\tcursor: pointer;\r\n+\tmargin-left: 5px;\r\n+\tborder: 1px solid #8a8a8a;\r\n+}\r\n+#wppm-container .checkbox-container input:checked + label:after,\r\n+.wppm-modal .checkbox-container input:checked + label:after, #wppm_task_list_container .checkbox-container input:checked + label:after{\r\n+\tcontent: '';\r\n+\tdisplay: block;\r\n+\tposition: absolute;\r\n+\ttop: 1px;\r\n+\tright: 9px;\r\n+\twidth: 6px;\r\n+\theight: 9px;\r\n+\tborder: solid #0079bf;\r\n+\tborder-width: 0 0 2px 2px;\r\n+\ttransform: matrix(-1, -1, -1, 1, 3, 0);\r\n+}\r\n+#wppm-container .checkbox-container label,\r\n+.wppm-modal .checkbox-container label, #wppm_task_list_container .checkbox-container label{\r\n+\tdisplay: flex;\r\n+}\r\n+#wppm-container .checkbox-container label:before,\r\n+.wppm-modal .checkbox-container label:before,  #wppm_task_list_container .checkbox-container label:before{\r\n+\twidth: 18px !important;\r\n+\theight: 18px !important;\r\n+\tbox-sizing: border-box;\r\n+\tpadding: 8px;\r\n+}\r\n+#wppm-container .checkbox-container label:after,\r\n+.wppm-modal .checkbox-container label:after,  #wppm_task_list_container .checkbox-container label:after {\r\n+\tflex-grow: 1;\r\n+}\r\n+#wppm-container .checkbox-container p,\r\n+.wppm-modal .checkbox-container p, #wppm_task_list_container .checkbox-container p{\r\n+\tmargin: 0 !important;\r\n+}\r\n+\r\n+.wppm-bulk-actions {\r\n+\tdisplay: flex;\r\n+\talign-items: center;\r\n+}\r\n+.wppm-bulk-actions select {\r\n+\tmin-width: 150px;\r\n+\tmax-width: 250px;\r\n+\tmargin-left: 5px;\r\n+}\r\n+.wppm-bulk-actions button {\r\n+\tmargin-left: 10px;\r\n+\tdisplay: flex;\r\n+\talign-items: center;\r\n+}\r\n+.wppm-bulk-actions button svg {\r\n+\theight: 13px;\r\n+\tmargin-right: 15px;\r\n+}\r\n+\r\n+#wppm-bulk-actions{\r\n+  left: 0px!important;\r\n+}\r\n+\r\n+\u002F* Popover Menu *\u002F\r\n+.wppm-popover-menu {\r\n+\tpadding: 3px !important;\r\n+\tborder-radius: 3px !important;\r\n+}\r\n+.wppm-popover-menu-item {\r\n+\tdisplay: flex;\r\n+\talign-items: center;\r\n+\tpadding: 10px;\r\n+\tcursor: pointer;\r\n+\tbackground-color: #fff;\r\n+\tcolor: #707070;\r\n+  margin-left: 10px !important;\r\n+}\r\n+.wppm-popover-menu-item:hover {\r\n+\tcolor: #fff;\r\n+  background-color: #313042 !important;\r\n+}\r\n+.wppm-popover-menu-item svg {\r\n+\twidth: 14px;\r\n+\tmargin-left: 10px;\r\n+}\r\n+.wppm-popover-menu-item span {\r\n+\tfont-size: 14px;\r\n+}\r\n+\r\n+.wppm-button.secondary {\r\n+  border: 1px solid #ccc !important;\r\n+  background-color: #fff !important;\r\n+  color: #313042 !important;\r\n+  font: 14px \"Helvetica Neue\", Arial, Helvetica, sans-serif !important;\r\n+}\r\n+\r\n+.wppm-button.small {\r\n+  font-size: 12px !important;\r\n+}\r\n+\r\n+#wppm_task_description, #wppm_add_new_project #wppm_proj_description{\r\n+\theight: 160px !important;\r\n+\twidth: 100%\t!important;\r\n+}\r\n+\r\n+\u002F* Form fields *\u002F\r\n+.wppm-input-group {\r\n+\twidth: 100%;\r\n+\tdisplay: flex;\r\n+\tflex-direction: column;\r\n+\tpadding-bottom: 15px;\r\n+\tbox-sizing: border-box;\r\n+}\r\n+.wppm-input-group .label-container {\r\n+\tdisplay: flex;\r\n+\talign-items: center;\r\n+\tcolor: #000;\r\n+\tmargin-bottom: 2px;\r\n+}\r\n+.wppm-input-group label {\r\n+\tfont-size: 12px;\r\n+\tfont-weight: 600;\r\n+\tmargin-left: 5px;\r\n+}\r\n+.wppm-input-group .label-container svg {\r\n+\twidth: 12px;\r\n+\tmargin-right: 5px;\r\n+}\r\n+.wppm-input-group input[type=\"text\"],\r\n+.wppm-input-group select {\r\n+\twidth: 100%;\r\n+\tmax-width: 100%;\r\n+}\r\n+\r\n+ @media (max-width: 768px) {\r\n+    .wppm_task_list{\r\n+      flex-basis: 50% !important;\r\n+    }\r\n+  }\r\n+\r\n+#wppmprint_menu{\r\n+  display: flex;\r\n+  flex-direction: column;\r\n+  position: absolute;\r\n+  background: white;\r\n+  border: 1px solid #ccc;\r\n+  z-index: 1000;\r\n+  margin-left: 155px;\r\n+  display: none;\r\n+}\r\n+\r\n+#wppmprint_menu a {\r\n+  padding: 8px 12px;\r\n+  text-decoration: none;\r\n+  color: #333;\r\n+}\r\n+\r\n+#wppmprint_menu a:hover {\r\n+  background: #f0f0f0;\r\n+}\r\n+\r\n+.wppm_checklist_items_container { list-style: none; padding-left: 0; }\r\n+.wppm_checklist_items_container .wppm_checklist_item { \r\n+    padding: 6px 10px; \r\n+    background: #fff;\r\n+    margin-bottom: 4px;\r\n+    border: 1px solid #ddd;\r\n+    cursor: grab;\r\n+    display: flex;\r\n+    align-items: center;\r\n+}\r\n+.wppm_checklist_items_container .wppm_chk_items_drag {\r\n+    margin-right: 10px;\r\n+    cursor: move;\r\n+}\r\n+\r\n+\u002F* Main container *\u002F\r\n+\u002F* GRID CONTAINER *\u002F\r\n+.wppm_bootstrap .pricing-flex {\r\n+    display: grid !important;\r\n+    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\r\n+    gap: 20px;\r\n+    align-items: stretch;\r\n+}\r\n+\r\n+\u002F* CARD *\u002F\r\n+.wppm_bootstrap .pricing-widget {\r\n+    display: flex;\r\n+    flex-direction: column;\r\n+\r\n+    background: #fff;\r\n+    border: 1px solid #e5e5e5;\r\n+    border-radius: 6px;\r\n+    padding: 15px;\r\n+    box-sizing: border-box;\r\n+}\r\n+\r\n+\u002F* BODY GROWS *\u002F\r\n+.wppm_bootstrap .pricing-widget .pbody {\r\n+    flex: 1;\r\n+}\r\n+\r\n+\u002F* FOOTER *\u002F\r\n+\u002F* .wppm_bootstrap .pricing-widget .pfooter {\r\n+    display: flex;\r\n+    justify-content: space-between;\r\n+    gap: 10px;\r\n+    margin-top: 15px;\r\n+}\r\n+\r\n+\u002F* MOBILE FOOTER STACK *\u002F\r\n+@media (max-width: 480px) {\r\n+    .wppm_bootstrap .pricing-widget .pfooter {\r\n+        flex-direction: column;\r\n+    }\r\n+} *\u002F\r\n+\r\n+.wppm-dashboard{\r\n+    padding:20px;\r\n+    margin-top:20px;\r\n+    font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;\r\n+}\r\n+.wppm-dashboard-top{\r\n+    display:grid;\r\n+    grid-template-columns:repeat(auto-fit,minmax(200px,1fr));\r\n+    gap:20px;\r\n+    margin-bottom:20px;\r\n+}\r\n+\r\n+.wppm-small-widget{\r\n+    background:#ffffff;\r\n+    border-radius:10px;\r\n+    padding:20px;\r\n+    box-shadow:0 2px 8px rgba(0,0,0,0.05);\r\n+    transition:all 0.2s ease;\r\n+    display:flex;\r\n+    align-items:center;\r\n+    gap:15px;\r\n+}\r\n+\r\n+.wppm-small-widget:hover{\r\n+    transform:translateY(-3px);\r\n+    box-shadow:0 6px 16px rgba(0,0,0,0.08);\r\n+}\r\n+\r\n+.wppm-small-widget h3{\r\n+    font-size:14px;\r\n+    color:#666;\r\n+    margin-bottom:10px;\r\n+}\r\n+\r\n+.wppm-number{\r\n+    font-size:28px;\r\n+    font-weight:600;\r\n+    color:#222;\r\n+}\r\n+.wppm-small-widget.overdue{\r\n+    border-left:4px solid #e74c3c;\r\n+}\r\n+\r\n+.wppm-divider{\r\n+    height:1px;\r\n+    background:#eee;\r\n+    margin:20px 0;\r\n+}\r\n+\r\n+.wppm-row{\r\n+  display:grid;\r\n+  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));\r\n+  gap:20px;\r\n+  margin-bottom:20px;\r\n+}\r\n+\r\n+.wppm-widget{\r\n+    background:#fff;\r\n+    border-radius:10px;\r\n+    padding:20px;\r\n+    box-shadow:0 2px 8px rgba(0,0,0,0.05);\r\n+    transition:all 0.2s ease;\r\n+}\r\n+.wppm-widget h2{\r\n+    font-size:16px;\r\n+    margin-bottom:15px;\r\n+    font-weight:600;\r\n+    color:#222;\r\n+}\r\n+\r\n+#tbl_my_tasks,#tbl_active_projects,#tbl_upcoming_tasks, #tbl_todays_tasks {\r\n+    border-collapse: collapse !important;\r\n+    width: 100%  !important;\r\n+}\r\n+\r\n+#tbl_my_tasks th,\r\n+#tbl_my_tasks td,\r\n+#tbl_todays_tasks th,\r\n+#tbl_todays_tasks td,\r\n+#tbl_active_projects th,\r\n+#tbl_active_projects td,\r\n+#tbl_upcoming_tasks th,\r\n+#tbl_upcoming_tasks td {\r\n+    border: 1px solid #ddd !important;\r\n+    padding: 8px !important;\r\n+}\r\n+\r\n+#tbl_my_tasks th, #tbl_active_projects th, #tbl_upcoming_tasks th, #tbl_todays_tasks th{\r\n+    background-color: #f5f5f5 !important;\r\n+    text-align: left !important;\r\n+}\r\n+\r\n+#tbl_my_tasks tr:hover, #tbl_active_projects tr:hover, #tbl_upcoming_tasks tr:hover, #tbl_todays_tasks tr:hover{\r\n+    background-color: #f9f9f9 !important;\r\n+    cursor: pointer;\r\n+}\r\n+.wppm-widget table td{\r\n+    padding:10px;\r\n+    border-top:1px solid #f2f2f2;\r\n+    font-size:14px;\r\n+}\r\n+\r\n+.wppm-widget table th{\r\n+    background:#f8fafc;\r\n+    color:#777;\r\n+    font-weight:600;\r\n+    padding:10px;\r\n+    border-bottom:1px solid #e5e7eb;\r\n+}\r\n+\r\n+canvas{\r\n+    max-height:250px !important;\r\n+}\r\n+\r\n+.wppm-widget:hover{\r\n+    box-shadow:0 8px 20px rgba(0,0,0,0.07);\r\n+}\r\n+\r\n+.wppm-widget-icon{\r\n+    font-size:28px;\r\n+    background:#f5f7fb;\r\n+    padding:12px;\r\n+    border-radius:8px;\r\n+}\r\n+.wppm-widget h2{\r\n+    display:flex;\r\n+    justify-content:space-between;\r\n+    align-items:center;\r\n+}\r\n+\r\n+.wppm-view-all{\r\n+    font-size:13px;\r\n+    color:#4c7cf3;\r\n+    text-decoration:none;\r\n+}\r\n+\r\n+.wppm-view-all:hover{\r\n+    text-decoration:underline;\r\n+}\r\n+\r\n+.wppm-workload-list {\r\n+  list-style: none;\r\n+  padding: 0;\r\n+  margin: 0;\r\n+}\r\n+\r\n+.wppm-workload-list li {\r\n+  display: flex;\r\n+  align-items: center;\r\n+  gap:10px;\r\n+  margin-bottom: 10px;\r\n+}\r\n+\r\n+.wppm-workload-bar {\r\n+  flex:1;\r\n+  height:8px;\r\n+  background:#eee;\r\n+  border-radius:5px;\r\n+  overflow:hidden;\r\n+}\r\n+\r\n+.wppm-workload-bar div {\r\n+  height: 100%;\r\n+  background: #3498db;\r\n+  border-radius: 5px;\r\n+}\r\n+\r\n+.dashboard-progress-wrapper{\r\n+    display:flex;\r\n+    align-items:center;\r\n+    gap:8px;\r\n+}\r\n+\r\n+.dashboard-progress-bar{\r\n+    flex:1;\r\n+    height:8px;\r\n+    background:#e5e7eb;\r\n+    border-radius:5px;\r\n+    overflow:hidden;\r\n+}\r\n+\r\n+.dashboard-progress{\r\n+    height:100%;\r\n+    border-radius:5px;\r\n+}\r\n+\r\n+.dashboard-progress-text{\r\n+    font-size:12px;\r\n+    font-weight:600;\r\n+}\r\n+.wppm-priority-dot{\r\n+    display:inline-block;\r\n+    width:10px;\r\n+    height:10px;\r\n+    border-radius:50%;\r\n+    margin-right:6px;\r\n+    vertical-align:middle;\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fcss\u002Fmodal.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fcss\u002Fmodal.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fcss\u002Fmodal.css\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fcss\u002Fmodal.css\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,143 +1,143 @@\n-\u002F**\n- * Pop-up styles start\n- **\u002F\n- #wppm_popup_background{\n-    position: fixed;\n-    top:0;\n-    left: 0;\n-    width: 100%;\n-    height: 100%;\n-    z-index: 900000000000;\n-    background-color: #000;\n-    opacity: 0.8;\n-  }\n-  #wppm_popup_container{\n-    position: fixed;\n-    top:30px;\n-    left: 0;\n-    width: 100%;\n-    z-index: 900000000001;\n-  }\n-  #wppm_popup{\n-    position: fixed;\n-    background-color: #fff;\n-    height: 100px;\n-    padding: 0 !important;\n-  }\n-  #wppm_popup_title{\n-    border-bottom: 1px solid #ccc;\n-    font: 26px \"OpenSans-Light\",Helvetica,Arial,sans-serif;\n-    padding: 15px !important;\n-  } \n-  #wppm_popup_title h3{\n-    font-size: 18px;\n-    margin: 0 !important;\n-  }\n-  #wppm_popup_body{\n-    min-height: 100px;\n-    max-height: 300px;\n-    overflow-x: hidden;\n-    overflow-y: auto;\n-    background-color: #fff;\n-    padding: 15px !important;\n-  }\n-  #wppm_popup_footer{\n-    background-color: #F6F6F6;\n-    padding: 15px !important;\n-  }\n-  #wppm_popup_footer button{\n-    width: 120px;\n-    height: 40px;\n-    border-radius: 20px;\n-    margin-right: 10px;\n-  }\n-  .wppm_popup_close{\n-    color: #273444;\n-    background-color: #EFF2F7;\n-    border-color: #000;\n-    border-radius: 50px;\n-    padding: 5px;\n-  }\n-  .wppm_popup_action{\n-    color: #FFF !important;\n-    background-color: #306EFF;\n-    border-color: #306EFF;\n-    box-shadow: inset 0 1px 0 rgb(255 255 255 \u002F 15%);\n-    cursor: pointer;\n-    border-radius: 50px !important;\n-    padding: 5px;\n-  }\n-  \n-  .mce-window.mce-in, .mce-menu.mce-in.mce-animate{\n-    z-index: 900000000001 !important;;\n-  }\n-\n-  \u002F**\n- * Pop-up styles start\n- **\u002F\n- #wppm_task_popup_background{\n-  position: fixed;\n-  top:0;\n-  left: 0;\n-  width: 100%;\n-  height: 100%;\n-  z-index: 900000000000;\n-  background-color: #000;\n-  opacity: 0.8;\n-}\n-#wppm_task_popup_container{\n-  position: fixed;\n-  top:30px;\n-  left: 0;\n-  width: 100%;\n-  z-index: 900000000001;\n-}\n-#wppm_task_popup{\n-  position: fixed;\n-  background-color: #fff;\n-  height: 100px;\n-  padding: 0 !important;\n-}\n-#wppm_task_popup_title{\n-  border-bottom: 1px solid #ccc;\n-  font: 26px \"OpenSans-Light\",Helvetica,Arial,sans-serif;\n-  padding: 15px !important;\n-} \n-#wppm_task_popup_title h3{\n-  font-size: 18px;\n-  margin: 0 !important;\n-}\n-#wppm_task_popup_body{\n-  min-height: 100px;\n-  max-height: 300px;\n-  overflow-x: hidden;\n-  overflow-y: auto;\n-  background-color: #fff;\n-  padding: 15px !important;\n-}\n-#wppm_task_popup_footer{\n-  background-color: #F6F6F6;\n-  padding: 15px !important;\n-}\n-#wppm_task_popup_footer button{\n-  width: 120px;\n-  height: 40px;\n-  border-radius: 20px;\n-  margin-right: 10px;\n-}\n-.wppm_task_popup_close{\n-  color: #273444;\n-  background-color: #EFF2F7;\n-  border-color: #000;\n-  border-radius: 50px;\n-  padding: 5px;\n-}\n-.wppm_task_popup_action{\n-  color: #FFF !important;\n-  background-color: #306EFF;\n-  border-color: #306EFF;\n-  box-shadow: inset 0 1px 0 rgb(255 255 255 \u002F 15%);\n-  cursor: pointer;\n-  border-radius: 50px !important;\n-  padding: 5px;\n+\u002F**\r\n+ * Pop-up styles start\r\n+ **\u002F\r\n+ #wppm_popup_background{\r\n+    position: fixed;\r\n+    top:0;\r\n+    left: 0;\r\n+    width: 100%;\r\n+    height: 100%;\r\n+    z-index: 900000000000;\r\n+    background-color: #000;\r\n+    opacity: 0.8;\r\n+  }\r\n+  #wppm_popup_container{\r\n+    position: fixed;\r\n+    top:30px;\r\n+    left: 0;\r\n+    width: 100%;\r\n+    z-index: 900000000001;\r\n+  }\r\n+  #wppm_popup{\r\n+    position: fixed;\r\n+    background-color: #fff;\r\n+    height: 100px;\r\n+    padding: 0 !important;\r\n+  }\r\n+  #wppm_popup_title{\r\n+    border-bottom: 1px solid #ccc;\r\n+    font: 26px \"OpenSans-Light\",Helvetica,Arial,sans-serif;\r\n+    padding: 15px !important;\r\n+  } \r\n+  #wppm_popup_title h3{\r\n+    font-size: 18px;\r\n+    margin: 0 !important;\r\n+  }\r\n+  #wppm_popup_body{\r\n+    min-height: 100px;\r\n+    max-height: 300px;\r\n+    overflow-x: hidden;\r\n+    overflow-y: auto;\r\n+    background-color: #fff;\r\n+    padding: 15px !important;\r\n+  }\r\n+  #wppm_popup_footer{\r\n+    background-color: #F6F6F6;\r\n+    padding: 15px !important;\r\n+  }\r\n+  #wppm_popup_footer button{\r\n+    width: 120px;\r\n+    height: 40px;\r\n+    border-radius: 20px;\r\n+    margin-right: 10px;\r\n+  }\r\n+  .wppm_popup_close{\r\n+    color: #273444;\r\n+    background-color: #EFF2F7;\r\n+    border-color: #000;\r\n+    border-radius: 50px;\r\n+    padding: 5px;\r\n+  }\r\n+  .wppm_popup_action{\r\n+    color: #FFF !important;\r\n+    background-color: #306EFF;\r\n+    border-color: #306EFF;\r\n+    box-shadow: inset 0 1px 0 rgb(255 255 255 \u002F 15%);\r\n+    cursor: pointer;\r\n+    border-radius: 50px !important;\r\n+    padding: 5px;\r\n+  }\r\n+  \r\n+  .mce-window.mce-in, .mce-menu.mce-in.mce-animate{\r\n+    z-index: 900000000001 !important;;\r\n+  }\r\n+\r\n+  \u002F**\r\n+ * Pop-up styles start\r\n+ **\u002F\r\n+ #wppm_task_popup_background{\r\n+  position: fixed;\r\n+  top:0;\r\n+  left: 0;\r\n+  width: 100%;\r\n+  height: 100%;\r\n+  z-index: 900000000000;\r\n+  background-color: #000;\r\n+  opacity: 0.8;\r\n+}\r\n+#wppm_task_popup_container{\r\n+  position: fixed;\r\n+  top:30px;\r\n+  left: 0;\r\n+  width: 100%;\r\n+  z-index: 900000000001;\r\n+}\r\n+#wppm_task_popup{\r\n+  position: fixed;\r\n+  background-color: #fff;\r\n+  height: 100px;\r\n+  padding: 0 !important;\r\n+}\r\n+#wppm_task_popup_title{\r\n+  border-bottom: 1px solid #ccc;\r\n+  font: 26px \"OpenSans-Light\",Helvetica,Arial,sans-serif;\r\n+  padding: 15px !important;\r\n+} \r\n+#wppm_task_popup_title h3{\r\n+  font-size: 18px;\r\n+  margin: 0 !important;\r\n+}\r\n+#wppm_task_popup_body{\r\n+  min-height: 100px;\r\n+  max-height: 300px;\r\n+  overflow-x: hidden;\r\n+  overflow-y: auto;\r\n+  background-color: #fff;\r\n+  padding: 15px !important;\r\n+}\r\n+#wppm_task_popup_footer{\r\n+  background-color: #F6F6F6;\r\n+  padding: 15px !important;\r\n+}\r\n+#wppm_task_popup_footer button{\r\n+  width: 120px;\r\n+  height: 40px;\r\n+  border-radius: 20px;\r\n+  margin-right: 10px;\r\n+}\r\n+.wppm_task_popup_close{\r\n+  color: #273444;\r\n+  background-color: #EFF2F7;\r\n+  border-color: #000;\r\n+  border-radius: 50px;\r\n+  padding: 5px;\r\n+}\r\n+.wppm_task_popup_action{\r\n+  color: #FFF !important;\r\n+  background-color: #306EFF;\r\n+  border-color: #306EFF;\r\n+  box-shadow: inset 0 1px 0 rgb(255 255 255 \u002F 15%);\r\n+  cursor: pointer;\r\n+  border-radius: 50px !important;\r\n+  padding: 5px;\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fcss\u002Fpublic.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fcss\u002Fpublic.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fcss\u002Fpublic.css\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fcss\u002Fpublic.css\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,67 +1,67 @@\n-.wppm-form-signin-heading{\n-    font:18px \"Helvetica Neue\",Helvetica,Arial,sans-serif !important;\n-}\n-#wppm-inputEmail,.wppm-form-signin-heading,#wppm-inputPassword{\n-    margin: 0 5px 5px 5px;\n-}\n-#frm_wppm_sign_in{\n-    margin:5px;\n-}\n-#wppm_remember{\n-    font:12px \"Helvetica Neue\",Helvetica,Arial,sans-serif !important;\n-    margin-left: 10px;\n-}\n-.wppm_attachment_cancel{\n-    float: right;\n-    margin: -23px 0px 0 0;\n-    cursor: pointer;\n-}\n-\n-.wppm_bootstrap .dataTables_wrapper .dataTables_length select{\n-    padding: 0 24px 0 8px !important;\n-}\n-\n-.wppm_bootstrap #tbl_project_tasks_filter input{\n-    height: 40%;\n-    width: 50%;\n-}\n-\n-.wppm_bootstrap #tbl_project_tasks_wrapper {\n-    font:15px \"Helvetica Neue\",Helvetica,Arial,sans-serif !important;\n-}\n-\n-.wppm_bootstrap #tbl_project_tasks_paginate{\n-    float: right;\n-    text-align: right;\n-    padding-top: .25em;\n-}\n-\n-.wppm_bootstrap #tbl_project_tasks_paginate a {\n-    margin-right: 5px;\n-}\n-\n-.wppm_bootstrap #tbl_project_tasks_filter{\n-    float: right;\n-    text-align: right;\n-}\n-\n-#wppm_project_search_filter_img, .wppm_task_search_filter_img{\n-    position: relative !important;\n-    top: 10px;\n-    left: 30px;\n-    width:25px;\n-    height:15px;\n-}\n-\n-.wppm_bootstrap .wppm_thread{\n-    word-break: break-word;\n-}\n-\n-.wppm_bootstrap .wppm_proj_thread{\n-    word-break: break-word;\n-}\n-@media (max-width: 768px) {\n-.wppm_task_list{\n-    flex-basis: 100% !important;\n-}\n+.wppm-form-signin-heading{\r\n+    font:18px \"Helvetica Neue\",Helvetica,Arial,sans-serif !important;\r\n+}\r\n+#wppm-inputEmail,.wppm-form-signin-heading,#wppm-inputPassword{\r\n+    margin: 0 5px 5px 5px;\r\n+}\r\n+#frm_wppm_sign_in{\r\n+    margin:5px;\r\n+}\r\n+#wppm_remember{\r\n+    font:12px \"Helvetica Neue\",Helvetica,Arial,sans-serif !important;\r\n+    margin-left: 10px;\r\n+}\r\n+.wppm_attachment_cancel{\r\n+    float: right;\r\n+    margin: -23px 0px 0 0;\r\n+    cursor: pointer;\r\n+}\r\n+\r\n+.wppm_bootstrap .dataTables_wrapper .dataTables_length select{\r\n+    padding: 0 24px 0 8px !important;\r\n+}\r\n+\r\n+.wppm_bootstrap #tbl_project_tasks_filter input{\r\n+    height: 40%;\r\n+    width: 50%;\r\n+}\r\n+\r\n+.wppm_bootstrap #tbl_project_tasks_wrapper {\r\n+    font:15px \"Helvetica Neue\",Helvetica,Arial,sans-serif !important;\r\n+}\r\n+\r\n+.wppm_bootstrap #tbl_project_tasks_paginate{\r\n+    float: right;\r\n+    text-align: right;\r\n+    padding-top: .25em;\r\n+}\r\n+\r\n+.wppm_bootstrap #tbl_project_tasks_paginate a {\r\n+    margin-right: 5px;\r\n+}\r\n+\r\n+.wppm_bootstrap #tbl_project_tasks_filter{\r\n+    float: right;\r\n+    text-align: right;\r\n+}\r\n+\r\n+#wppm_project_search_filter_img, .wppm_task_search_filter_img{\r\n+    position: relative !important;\r\n+    top: 10px;\r\n+    left: 30px;\r\n+    width:25px;\r\n+    height:15px;\r\n+}\r\n+\r\n+.wppm_bootstrap .wppm_thread{\r\n+    word-break: break-word;\r\n+}\r\n+\r\n+.wppm_bootstrap .wppm_proj_thread{\r\n+    word-break: break-word;\r\n+}\r\n+@media (max-width: 768px) {\r\n+.wppm_task_list{\r\n+    flex-basis: 100% !important;\r\n+}\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fcss\u002Fwppm_bootstrap.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fcss\u002Fwppm_bootstrap.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fcss\u002Fwppm_bootstrap.css\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fcss\u002Fwppm_bootstrap.css\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,6784 +1,6784 @@\n-.wppm_bootstrap html {\n-  font-family: sans-serif;\n-  -webkit-text-size-adjust: 100%;\n-      -ms-text-size-adjust: 100%;\n-}\n-.wppm_bootstrap body {\n-  margin: 0;\n-}\n-.wppm_bootstrap article,\n-.wppm_bootstrap aside,\n-.wppm_bootstrap details,\n-.wppm_bootstrap figcaption,\n-.wppm_bootstrap figure,\n-.wppm_bootstrap footer,\n-.wppm_bootstrap header,\n-.wppm_bootstrap hgroup,\n-.wppm_bootstrap main,\n-.wppm_bootstrap menu,\n-.wppm_bootstrap nav,\n-.wppm_bootstrap section,\n-.wppm_bootstrap summary {\n-  display: block;\n-}\n-.wppm_bootstrap audio,\n-.wppm_bootstrap canvas,\n-.wppm_bootstrap progress,\n-.wppm_bootstrap video {\n-  display: inline-block;\n-  vertical-align: baseline;\n-}\n-.wppm_bootstrap audio:not([controls]) {\n-  display: none;\n-  height: 0;\n-}\n-[hidden],\n-.wppm_bootstrap template {\n-  display: none;\n-}\n-.wppm_bootstrap a {\n-  background-color: transparent;\n-}\n-.wppm_bootstrap a:active,\n-.wppm_bootstrap a:hover {\n-  outline: 0;\n-}\n-.wppm_bootstrap abbr[title] {\n-  border-bottom: 1px dotted;\n-}\n-.wppm_bootstrap b,\n-.wppm_bootstrap strong {\n-  font-weight: bold;\n-}\n-.wppm_bootstrap dfn {\n-  font-style: italic;\n-}\n-.wppm_bootstrap h1 {\n-  margin: .67em 0;\n-  font-size: 2em;\n-}\n-.wppm_bootstrap mark {\n-  color: #000;\n-  background: #ff0;\n-}\n-.wppm_bootstrap small {\n-  font-size: 80%;\n-}\n-.wppm_bootstrap sub,\n-.wppm_bootstrap sup {\n-  position: relative;\n-  font-size: 75%;\n-  line-height: 0;\n-  vertical-align: baseline;\n-}\n-.wppm_bootstrap sup {\n-  top: -.5em;\n-}\n-.wppm_bootstrap sub {\n-  bottom: -.25em;\n-}\n-.wppm_bootstrap img {\n-  border: 0;\n-}\n-.wppm_bootstrap svg:not(:root) {\n-  overflow: hidden;\n-}\n-.wppm_bootstrap figure {\n-  margin: 1em 40px;\n-}\n-.wppm_bootstrap hr {\n-  height: 0;\n-  -webkit-box-sizing: content-box;\n-     -moz-box-sizing: content-box;\n-          box-sizing: content-box;\n-}\n-.wppm_bootstrap pre {\n-  overflow: auto;\n-}\n-.wppm_bootstrap code,\n-.wppm_bootstrap kbd,\n-.wppm_bootstrap pre,\n-.wppm_bootstrap samp {\n-  font-family: monospace, monospace;\n-  font-size: 1em;\n-}\n-.wppm_bootstrap button,\n-.wppm_bootstrap input,\n-.wppm_bootstrap optgroup,\n-.wppm_bootstrap select,\n-.wppm_bootstrap textarea {\n-  margin: 0;\n-  font: inherit;\n-  color: inherit;\n-}\n-.wppm_bootstrap button {\n-  overflow: visible;\n-}\n-.wppm_bootstrap button,\n-.wppm_bootstrap select {\n-  text-transform: none;\n-}\n-.wppm_bootstrap button,\n-.wppm_bootstrap html input[type=\"button\"],\n-.wppm_bootstrap input[type=\"reset\"],\n-.wppm_bootstrap input[type=\"submit\"] {\n-  -webkit-appearance: button;\n-  cursor: pointer;\n-}\n-.wppm_bootstrap button[disabled],\n-.wppm_bootstrap html input[disabled] {\n-  cursor: default;\n-}\n-.wppm_bootstrap button::-moz-focus-inner,\n-.wppm_bootstrap input::-moz-focus-inner {\n-  padding: 0;\n-  border: 0;\n-}\n-.wppm_bootstrap input {\n-  line-height: normal;\n-}\n-.wppm_bootstrap input[type=\"checkbox\"],\n-.wppm_bootstrap input[type=\"radio\"] {\n-  -webkit-box-sizing: border-box;\n-     -moz-box-sizing: border-box;\n-          box-sizing: border-box;\n-  padding: 0;\n-}\n-.wppm_bootstrap input[type=\"number\"]::-webkit-inner-spin-button,\n-.wppm_bootstrap input[type=\"number\"]::-webkit-outer-spin-button {\n-  height: auto;\n-}\n-.wppm_bootstrap input[type=\"search\"] {\n-  -webkit-box-sizing: content-box;\n-     -moz-box-sizing: content-box;\n-          box-sizing: content-box;\n-  -webkit-appearance: textfield;\n-}\n-.wppm_bootstrap input[type=\"search\"]::-webkit-search-cancel-button,\n-.wppm_bootstrap input[type=\"search\"]::-webkit-search-decoration {\n-  -webkit-appearance: none;\n-}\n-.wppm_bootstrap fieldset {\n-  padding: .35em .625em .75em;\n-  margin: 0 2px;\n-  border: 1px solid #c0c0c0;\n-}\n-.wppm_bootstrap legend {\n-  padding: 0;\n-  border: 0;\n-}\n-.wppm_bootstrap textarea {\n-  overflow: auto;\n-}\n-.wppm_bootstrap optgroup {\n-  font-weight: bold;\n-}\n-.wppm_bootstrap table {\n-  border-spacing: 0;\n-  border-collapse: collapse;\n-}\n-.wppm_bootstrap td,\n-.wppm_bootstrap th {\n-  padding: 0;\n-}\n-\u002F*! Source: https:\u002F\u002Fgithub.com\u002Fh5bp\u002Fhtml5-boilerplate\u002Fblob\u002Fmaster\u002Fsrc\u002Fcss\u002Fmain.css *\u002F\n-@media print {\n-  *,\n-  .wppm_bootstrap *:before,\n-  .wppm_bootstrap *:after {\n-    color: #000 !important;\n-    text-shadow: none !important;\n-    background: transparent !important;\n-    -webkit-box-shadow: none !important;\n-            box-shadow: none !important;\n-  }\n-  .wppm_bootstrap a,\n-  .wppm_bootstrap a:visited {\n-    text-decoration: underline;\n-  }\n-  .wppm_bootstrap a[href]:after {\n-    content: \" (\" attr(href) \")\";\n-  }\n-  .wppm_bootstrap abbr[title]:after {\n-    content: \" (\" attr(title) \")\";\n-  }\n-  .wppm_bootstrap a[href^=\"#\"]:after,\n-  .wppm_bootstrap a[href^=\"javascript:\"]:after {\n-    content: \"\";\n-  }\n-  .wppm_bootstrap pre,\n-  .wppm_bootstrap blockquote {\n-    border: 1px solid #999;\n-\n-    page-break-inside: avoid;\n-  }\n-  .wppm_bootstrap thead {\n-    display: table-header-group;\n-  }\n-  .wppm_bootstrap tr,\n-  .wppm_bootstrap img {\n-    page-break-inside: avoid;\n-  }\n-  .wppm_bootstrap img {\n-    max-width: 100% !important;\n-  }\n-  .wppm_bootstrap p,\n-  .wppm_bootstrap h2,\n-  .wppm_bootstrap h3 {\n-    orphans: 3;\n-    widows: 3;\n-  }\n-  .wppm_bootstrap h2,\n-  .wppm_bootstrap h3 {\n-    page-break-after: avoid;\n-  }\n-  .wppm_bootstrap .navbar {\n-    display: none;\n-  }\n-  .wppm_bootstrap .btn > .caret,\n-  .wppm_bootstrap .dropup > .btn > .caret {\n-    border-top-color: #000 !important;\n-  }\n-  .wppm_bootstrap .label {\n-    border: 1px solid #000;\n-  }\n-  \u002F* .wppm_bootstrap .table {\n-    border-collapse: collapse !important;\n-  }\n-  .wppm_bootstrap .table td,\n-  .wppm_bootstrap .table th {\n-    background-color: #fff !important;\n-  } *\u002F\n-\n-  .wppm_bootstrap .wppm_table th{\n-    border-bottom: 1px solid #555c64;\n-    line-height: 2.2em;\n-    font-weight: 400;\n-    text-align: left;\n-    font-size: 14px;\n-    display: table-cell;\n-    vertical-align: inherit;\n-    background-color:#304FFE;\n-    color: #FFFFFF;\n-    width:2.2em;\n-    padding:0 0 0 3px;\n-  }\n-\n-  \u002F* .wppm_bootstrap .table-bordered th,\n-  .wppm_bootstrap .table-bordered td {\n-    border: 1px solid #ddd !important;\n-  } *\u002F\n-}\n-@font-face {\n-  font-family: 'Glyphicons Halflings';\n-\n-  src: url('..\u002Ffonts\u002Fglyphicons-halflings-regular.eot');\n-  src: url('..\u002Ffonts\u002Fglyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('..\u002Ffonts\u002Fglyphicons-halflings-regular.woff2') format('woff2'), url('..\u002Ffonts\u002Fglyphicons-halflings-regular.woff') format('woff'), url('..\u002Ffonts\u002Fglyphicons-halflings-regular.ttf') format('truetype'), url('..\u002Ffonts\u002Fglyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n-}\n-.wppm_bootstrap .glyphicon {\n-  position: relative;\n-  top: 1px;\n-  display: inline-block;\n-  font-family: 'Glyphicons Halflings';\n-  font-style: normal;\n-  font-weight: normal;\n-  line-height: 1;\n-\n-  -webkit-font-smoothing: antialiased;\n-  -moz-osx-font-smoothing: grayscale;\n-}\n-.wppm_bootstrap .glyphicon-asterisk:before {\n-  content: \"\\002a\";\n-}\n-.wppm_bootstrap .glyphicon-plus:before {\n-  content: \"\\002b\";\n-}\n-.wppm_bootstrap .glyphicon-euro:before,\n-.wppm_bootstrap .glyphicon-eur:before {\n-  content: \"\\20ac\";\n-}\n-.wppm_bootstrap .glyphicon-minus:before {\n-  content: \"\\2212\";\n-}\n-.wppm_bootstrap .glyphicon-cloud:before {\n-  content: \"\\2601\";\n-}\n-.wppm_bootstrap .glyphicon-envelope:before {\n-  content: \"\\2709\";\n-}\n-.wppm_bootstrap .glyphicon-pencil:before {\n-  content: \"\\270f\";\n-}\n-.wppm_bootstrap .glyphicon-glass:before {\n-  content: \"\\e001\";\n-}\n-.wppm_bootstrap .glyphicon-music:before {\n-  content: \"\\e002\";\n-}\n-.wppm_bootstrap .glyphicon-search:before {\n-  content: \"\\e003\";\n-}\n-.wppm_bootstrap .glyphicon-heart:before {\n-  content: \"\\e005\";\n-}\n-.wppm_bootstrap .glyphicon-star:before {\n-  content: \"\\e006\";\n-}\n-.wppm_bootstrap .glyphicon-star-empty:before {\n-  content: \"\\e007\";\n-}\n-.wppm_bootstrap .glyphicon-user:before {\n-  content: \"\\e008\";\n-}\n-.wppm_bootstrap .glyphicon-film:before {\n-  content: \"\\e009\";\n-}\n-.wppm_bootstrap .glyphicon-th-large:before {\n-  content: \"\\e010\";\n-}\n-.wppm_bootstrap .glyphicon-th:before {\n-  content: \"\\e011\";\n-}\n-.wppm_bootstrap .glyphicon-th-list:before {\n-  content: \"\\e012\";\n-}\n-.wppm_bootstrap .glyphicon-ok:before {\n-  content: \"\\e013\";\n-}\n-.wppm_bootstrap .glyphicon-remove:before {\n-  content: \"\\e014\";\n-}\n-.wppm_bootstrap .glyphicon-zoom-in:before {\n-  content: \"\\e015\";\n-}\n-.wppm_bootstrap .glyphicon-zoom-out:before {\n-  content: \"\\e016\";\n-}\n-.wppm_bootstrap .glyphicon-off:before {\n-  content: \"\\e017\";\n-}\n-.wppm_bootstrap .glyphicon-signal:before {\n-  content: \"\\e018\";\n-}\n-.wppm_bootstrap .glyphicon-cog:before {\n-  content: \"\\e019\";\n-}\n-.wppm_bootstrap .glyphicon-trash:before {\n-  content: \"\\e020\";\n-}\n-.wppm_bootstrap .glyphicon-home:before {\n-  content: \"\\e021\";\n-}\n-.wppm_bootstrap .glyphicon-file:before {\n-  content: \"\\e022\";\n-}\n-.wppm_bootstrap .glyphicon-time:before {\n-  content: \"\\e023\";\n-}\n-.wppm_bootstrap .glyphicon-road:before {\n-  content: \"\\e024\";\n-}\n-.wppm_bootstrap .glyphicon-download-alt:before {\n-  content: \"\\e025\";\n-}\n-.wppm_bootstrap .glyphicon-download:before {\n-  content: \"\\e026\";\n-}\n-.wppm_bootstrap .glyphicon-upload:before {\n-  content: \"\\e027\";\n-}\n-.wppm_bootstrap .glyphicon-inbox:before {\n-  content: \"\\e028\";\n-}\n-.wppm_bootstrap .glyphicon-play-circle:before {\n-  content: \"\\e029\";\n-}\n-.wppm_bootstrap .glyphicon-repeat:before {\n-  content: \"\\e030\";\n-}\n-.wppm_bootstrap .glyphicon-refresh:before {\n-  content: \"\\e031\";\n-}\n-.wppm_bootstrap .glyphicon-list-alt:before {\n-  content: \"\\e032\";\n-}\n-.wppm_bootstrap .glyphicon-lock:before {\n-  content: \"\\e033\";\n-}\n-.wppm_bootstrap .glyphicon-flag:before {\n-  content: \"\\e034\";\n-}\n-.wppm_bootstrap .glyphicon-headphones:before {\n-  content: \"\\e035\";\n-}\n-.wppm_bootstrap .glyphicon-volume-off:before {\n-  content: \"\\e036\";\n-}\n-.wppm_bootstrap .glyphicon-volume-down:before {\n-  content: \"\\e037\";\n-}\n-.wppm_bootstrap .glyphicon-volume-up:before {\n-  content: \"\\e038\";\n-}\n-.wppm_bootstrap .glyphicon-qrcode:before {\n-  content: \"\\e039\";\n-}\n-.wppm_bootstrap .glyphicon-barcode:before {\n-  content: \"\\e040\";\n-}\n-.wppm_bootstrap .glyphicon-tag:before {\n-  content: \"\\e041\";\n-}\n-.wppm_bootstrap .glyphicon-tags:before {\n-  content: \"\\e042\";\n-}\n-.wppm_bootstrap .glyphicon-book:before {\n-  content: \"\\e043\";\n-}\n-.wppm_bootstrap .glyphicon-bookmark:before {\n-  content: \"\\e044\";\n-}\n-.wppm_bootstrap .glyphicon-print:before {\n-  content: \"\\e045\";\n-}\n-.wppm_bootstrap .glyphicon-camera:before {\n-  content: \"\\e046\";\n-}\n-.wppm_bootstrap .glyphicon-font:before {\n-  content: \"\\e047\";\n-}\n-.wppm_bootstrap .glyphicon-bold:before {\n-  content: \"\\e048\";\n-}\n-.wppm_bootstrap .glyphicon-italic:before {\n-  content: \"\\e049\";\n-}\n-.wppm_bootstrap .glyphicon-text-height:before {\n-  content: \"\\e050\";\n-}\n-.wppm_bootstrap .glyphicon-text-width:before {\n-  content: \"\\e051\";\n-}\n-.wppm_bootstrap .glyphicon-align-left:before {\n-  content: \"\\e052\";\n-}\n-.wppm_bootstrap .glyphicon-align-center:before {\n-  content: \"\\e053\";\n-}\n-.wppm_bootstrap .glyphicon-align-right:before {\n-  content: \"\\e054\";\n-}\n-.wppm_bootstrap .glyphicon-align-justify:before {\n-  content: \"\\e055\";\n-}\n-.wppm_bootstrap .glyphicon-list:before {\n-  content: \"\\e056\";\n-}\n-.wppm_bootstrap .glyphicon-indent-left:before {\n-  content: \"\\e057\";\n-}\n-.wppm_bootstrap .glyphicon-indent-right:before {\n-  content: \"\\e058\";\n-}\n-.wppm_bootstrap .glyphicon-facetime-video:before {\n-  content: \"\\e059\";\n-}\n-.wppm_bootstrap .glyphicon-picture:before {\n-  content: \"\\e060\";\n-}\n-.wppm_bootstrap .glyphicon-map-marker:before {\n-  content: \"\\e062\";\n-}\n-.wppm_bootstrap .glyphicon-adjust:before {\n-  content: \"\\e063\";\n-}\n-.wppm_bootstrap .glyphicon-tint:before {\n-  content: \"\\e064\";\n-}\n-.wppm_bootstrap .glyphicon-edit:before {\n-  content: \"\\e065\";\n-}\n-.wppm_bootstrap .glyphicon-share:before {\n-  content: \"\\e066\";\n-}\n-.wppm_bootstrap .glyphicon-check:before {\n-  content: \"\\e067\";\n-}\n-.wppm_bootstrap .glyphicon-move:before {\n-  content: \"\\e068\";\n-}\n-.wppm_bootstrap .glyphicon-step-backward:before {\n-  content: \"\\e069\";\n-}\n-.wppm_bootstrap .glyphicon-fast-backward:before {\n-  content: \"\\e070\";\n-}\n-.wppm_bootstrap .glyphicon-backward:before {\n-  content: \"\\e071\";\n-}\n-.wppm_bootstrap .glyphicon-play:before {\n-  content: \"\\e072\";\n-}\n-.wppm_bootstrap .glyphicon-pause:before {\n-  content: \"\\e073\";\n-}\n-.wppm_bootstrap .glyphicon-stop:before {\n-  content: \"\\e074\";\n-}\n-.wppm_bootstrap .glyphicon-forward:before {\n-  content: \"\\e075\";\n-}\n-.wppm_bootstrap .glyphicon-fast-forward:before {\n-  content: \"\\e076\";\n-}\n-.wppm_bootstrap .glyphicon-step-forward:before {\n-  content: \"\\e077\";\n-}\n-.wppm_bootstrap .glyphicon-eject:before {\n-  content: \"\\e078\";\n-}\n-.wppm_bootstrap .glyphicon-chevron-left:before {\n-  content: \"\\e079\";\n-}\n-.wppm_bootstrap .glyphicon-chevron-right:before {\n-  content: \"\\e080\";\n-}\n-.wppm_bootstrap .glyphicon-plus-sign:before {\n-  content: \"\\e081\";\n-}\n-.wppm_bootstrap .glyphicon-minus-sign:before {\n-  content: \"\\e082\";\n-}\n-.wppm_bootstrap .glyphicon-remove-sign:before {\n-  content: \"\\e083\";\n-}\n-.wppm_bootstrap .glyphicon-ok-sign:before {\n-  content: \"\\e084\";\n-}\n-.wppm_bootstrap .glyphicon-question-sign:before {\n-  content: \"\\e085\";\n-}\n-.wppm_bootstrap .glyphicon-info-sign:before {\n-  content: \"\\e086\";\n-}\n-.wppm_bootstrap .glyphicon-screenshot:before {\n-  content: \"\\e087\";\n-}\n-.wppm_bootstrap .glyphicon-remove-circle:before {\n-  content: \"\\e088\";\n-}\n-.wppm_bootstrap .glyphicon-ok-circle:before {\n-  content: \"\\e089\";\n-}\n-.wppm_bootstrap .glyphicon-ban-circle:before {\n-  content: \"\\e090\";\n-}\n-.wppm_bootstrap .glyphicon-arrow-left:before {\n-  content: \"\\e091\";\n-}\n-.wppm_bootstrap .glyphicon-arrow-right:before {\n-  content: \"\\e092\";\n-}\n-.wppm_bootstrap .glyphicon-arrow-up:before {\n-  content: \"\\e093\";\n-}\n-.wppm_bootstrap .glyphicon-arrow-down:before {\n-  content: \"\\e094\";\n-}\n-.wppm_bootstrap .glyphicon-share-alt:before {\n-  content: \"\\e095\";\n-}\n-.wppm_bootstrap .glyphicon-resize-full:before {\n-  content: \"\\e096\";\n-}\n-.wppm_bootstrap .glyphicon-resize-small:before {\n-  content: \"\\e097\";\n-}\n-.wppm_bootstrap .glyphicon-exclamation-sign:before {\n-  content: \"\\e101\";\n-}\n-.wppm_bootstrap .glyphicon-gift:before {\n-  content: \"\\e102\";\n-}\n-.wppm_bootstrap .glyphicon-leaf:before {\n-  content: \"\\e103\";\n-}\n-.wppm_bootstrap .glyphicon-fire:before {\n-  content: \"\\e104\";\n-}\n-.wppm_bootstrap .glyphicon-eye-open:before {\n-  content: \"\\e105\";\n-}\n-.wppm_bootstrap .glyphicon-eye-close:before {\n-  content: \"\\e106\";\n-}\n-.wppm_bootstrap .glyphicon-warning-sign:before {\n-  content: \"\\e107\";\n-}\n-.wppm_bootstrap .glyphicon-plane:before {\n-  content: \"\\e108\";\n-}\n-.wppm_bootstrap .glyphicon-calendar:before {\n-  content: \"\\e109\";\n-}\n-.wppm_bootstrap .glyphicon-random:before {\n-  content: \"\\e110\";\n-}\n-.wppm_bootstrap .glyphicon-comment:before {\n-  content: \"\\e111\";\n-}\n-.wppm_bootstrap .glyphicon-magnet:before {\n-  content: \"\\e112\";\n-}\n-.wppm_bootstrap .glyphicon-chevron-up:before {\n-  content: \"\\e113\";\n-}\n-.wppm_bootstrap .glyphicon-chevron-down:before {\n-  content: \"\\e114\";\n-}\n-.wppm_bootstrap .glyphicon-retweet:before {\n-  content: \"\\e115\";\n-}\n-.wppm_bootstrap .glyphicon-shopping-cart:before {\n-  content: \"\\e116\";\n-}\n-.wppm_bootstrap .glyphicon-folder-close:before {\n-  content: \"\\e117\";\n-}\n-.wppm_bootstrap .glyphicon-folder-open:before {\n-  content: \"\\e118\";\n-}\n-.wppm_bootstrap .glyphicon-resize-vertical:before {\n-  content: \"\\e119\";\n-}\n-.wppm_bootstrap .glyphicon-resize-horizontal:before {\n-  content: \"\\e120\";\n-}\n-.wppm_bootstrap .glyphicon-hdd:before {\n-  content: \"\\e121\";\n-}\n-.wppm_bootstrap .glyphicon-bullhorn:before {\n-  content: \"\\e122\";\n-}\n-.wppm_bootstrap .glyphicon-bell:before {\n-  content: \"\\e123\";\n-}\n-.wppm_bootstrap .glyphicon-certificate:before {\n-  content: \"\\e124\";\n-}\n-.wppm_bootstrap .glyphicon-thumbs-up:before {\n-  content: \"\\e125\";\n-}\n-.wppm_bootstrap .glyphicon-thumbs-down:before {\n-  content: \"\\e126\";\n-}\n-.wppm_bootstrap .glyphicon-hand-right:before {\n-  content: \"\\e127\";\n-}\n-.wppm_bootstrap .glyphicon-hand-left:before {\n-  content: \"\\e128\";\n-}\n-.wppm_bootstrap .glyphicon-hand-up:before {\n-  content: \"\\e129\";\n-}\n-.wppm_bootstrap .glyphicon-hand-down:before {\n-  content: \"\\e130\";\n-}\n-.wppm_bootstrap .glyphicon-circle-arrow-right:before {\n-  content: \"\\e131\";\n-}\n-.wppm_bootstrap .glyphicon-circle-arrow-left:before {\n-  content: \"\\e132\";\n-}\n-.wppm_bootstrap .glyphicon-circle-arrow-up:before {\n-  content: \"\\e133\";\n-}\n-.wppm_bootstrap .glyphicon-circle-arrow-down:before {\n-  content: \"\\e134\";\n-}\n-.wppm_bootstrap .glyphicon-globe:before {\n-  content: \"\\e135\";\n-}\n-.wppm_bootstrap .glyphicon-wrench:before {\n-  content: \"\\e136\";\n-}\n-.wppm_bootstrap .glyphicon-tasks:before {\n-  content: \"\\e137\";\n-}\n-.wppm_bootstrap .glyphicon-filter:before {\n-  content: \"\\e138\";\n-}\n-.wppm_bootstrap .glyphicon-briefcase:before {\n-  content: \"\\e139\";\n-}\n-.wppm_bootstrap .glyphicon-fullscreen:before {\n-  content: \"\\e140\";\n-}\n-.wppm_bootstrap .glyphicon-dashboard:before {\n-  content: \"\\e141\";\n-}\n-.wppm_bootstrap .glyphicon-paperclip:before {\n-  content: \"\\e142\";\n-}\n-.wppm_bootstrap .glyphicon-heart-empty:before {\n-  content: \"\\e143\";\n-}\n-.wppm_bootstrap .glyphicon-link:before {\n-  content: \"\\e144\";\n-}\n-.wppm_bootstrap .glyphicon-phone:before {\n-  content: \"\\e145\";\n-}\n-.wppm_bootstrap .glyphicon-pushpin:before {\n-  content: \"\\e146\";\n-}\n-.wppm_bootstrap .glyphicon-usd:before {\n-  content: \"\\e148\";\n-}\n-.wppm_bootstrap .glyphicon-gbp:before {\n-  content: \"\\e149\";\n-}\n-.wppm_bootstrap .glyphicon-sort:before {\n-  content: \"\\e150\";\n-}\n-.wppm_bootstrap .glyphicon-sort-by-alphabet:before {\n-  content: \"\\e151\";\n-}\n-.wppm_bootstrap .glyphicon-sort-by-alphabet-alt:before {\n-  content: \"\\e152\";\n-}\n-.wppm_bootstrap .glyphicon-sort-by-order:before {\n-  content: \"\\e153\";\n-}\n-.wppm_bootstrap .glyphicon-sort-by-order-alt:before {\n-  content: \"\\e154\";\n-}\n-.wppm_bootstrap .glyphicon-sort-by-attributes:before {\n-  content: \"\\e155\";\n-}\n-.wppm_bootstrap .glyphicon-sort-by-attributes-alt:before {\n-  content: \"\\e156\";\n-}\n-.wppm_bootstrap .glyphicon-unchecked:before {\n-  content: \"\\e157\";\n-}\n-.wppm_bootstrap .glyphicon-expand:before {\n-  content: \"\\e158\";\n-}\n-.wppm_bootstrap .glyphicon-collapse-down:before {\n-  content: \"\\e159\";\n-}\n-.wppm_bootstrap .glyphicon-collapse-up:before {\n-  content: \"\\e160\";\n-}\n-.wppm_bootstrap .glyphicon-log-in:before {\n-  content: \"\\e161\";\n-}\n-.wppm_bootstrap .glyphicon-flash:before {\n-  content: \"\\e162\";\n-}\n-.wppm_bootstrap .glyphicon-log-out:before {\n-  content: \"\\e163\";\n-}\n-.wppm_bootstrap .glyphicon-new-window:before {\n-  content: \"\\e164\";\n-}\n-.wppm_bootstrap .glyphicon-record:before {\n-  content: \"\\e165\";\n-}\n-.wppm_bootstrap .glyphicon-save:before {\n-  content: \"\\e166\";\n-}\n-.wppm_bootstrap .glyphicon-open:before {\n-  content: \"\\e167\";\n-}\n-.wppm_bootstrap .glyphicon-saved:before {\n-  content: \"\\e168\";\n-}\n-.wppm_bootstrap .glyphicon-import:before {\n-  content: \"\\e169\";\n-}\n-.wppm_bootstrap .glyphicon-export:before {\n-  content: \"\\e170\";\n-}\n-.wppm_bootstrap .glyphicon-send:before {\n-  content: \"\\e171\";\n-}\n-.wppm_bootstrap .glyphicon-floppy-disk:before {\n-  content: \"\\e172\";\n-}\n-.wppm_bootstrap .glyphicon-floppy-saved:before {\n-  content: \"\\e173\";\n-}\n-.wppm_bootstrap .glyphicon-floppy-remove:before {\n-  content: \"\\e174\";\n-}\n-.wppm_bootstrap .glyphicon-floppy-save:before {\n-  content: \"\\e175\";\n-}\n-.wppm_bootstrap .glyphicon-floppy-open:before {\n-  content: \"\\e176\";\n-}\n-.wppm_bootstrap .glyphicon-credit-card:before {\n-  content: \"\\e177\";\n-}\n-.wppm_bootstrap .glyphicon-transfer:before {\n-  content: \"\\e178\";\n-}\n-.wppm_bootstrap .glyphicon-cutlery:before {\n-  content: \"\\e179\";\n-}\n-.wppm_bootstrap .glyphicon-header:before {\n-  content: \"\\e180\";\n-}\n-.wppm_bootstrap .glyphicon-compressed:before {\n-  content: \"\\e181\";\n-}\n-.wppm_bootstrap .glyphicon-earphone:before {\n-  content: \"\\e182\";\n-}\n-.wppm_bootstrap .glyphicon-phone-alt:before {\n-  content: \"\\e183\";\n-}\n-.wppm_bootstrap .glyphicon-tower:before {\n-  content: \"\\e184\";\n-}\n-.wppm_bootstrap .glyphicon-stats:before {\n-  content: \"\\e185\";\n-}\n-.wppm_bootstrap .glyphicon-sd-video:before {\n-  content: \"\\e186\";\n-}\n-.wppm_bootstrap .glyphicon-hd-video:before {\n-  content: \"\\e187\";\n-}\n-.wppm_bootstrap .glyphicon-subtitles:before {\n-  content: \"\\e188\";\n-}\n-.wppm_bootstrap .glyphicon-sound-stereo:before {\n-  content: \"\\e189\";\n-}\n-.wppm_bootstrap .glyphicon-sound-dolby:before {\n-  content: \"\\e190\";\n-}\n-.wppm_bootstrap .glyphicon-sound-5-1:before {\n-  content: \"\\e191\";\n-}\n-.wppm_bootstrap .glyphicon-sound-6-1:before {\n-  content: \"\\e192\";\n-}\n-.wppm_bootstrap .glyphicon-sound-7-1:before {\n-  content: \"\\e193\";\n-}\n-.wppm_bootstrap .glyphicon-copyright-mark:before {\n-  content: \"\\e194\";\n-}\n-.wppm_bootstrap .glyphicon-registration-mark:before {\n-  content: \"\\e195\";\n-}\n-.wppm_bootstrap .glyphicon-cloud-download:before {\n-  content: \"\\e197\";\n-}\n-.wppm_bootstrap .glyphicon-cloud-upload:before {\n-  content: \"\\e198\";\n-}\n-.wppm_bootstrap .glyphicon-tree-conifer:before {\n-  content: \"\\e199\";\n-}\n-.wppm_bootstrap .glyphicon-tree-deciduous:before {\n-  content: \"\\e200\";\n-}\n-.wppm_bootstrap .glyphicon-cd:before {\n-  content: \"\\e201\";\n-}\n-.wppm_bootstrap .glyphicon-save-file:before {\n-  content: \"\\e202\";\n-}\n-.wppm_bootstrap .glyphicon-open-file:before {\n-  content: \"\\e203\";\n-}\n-.wppm_bootstrap .glyphicon-level-up:before {\n-  content: \"\\e204\";\n-}\n-.wppm_bootstrap .glyphicon-copy:before {\n-  content: \"\\e205\";\n-}\n-.wppm_bootstrap .glyphicon-paste:before {\n-  content: \"\\e206\";\n-}\n-.wppm_bootstrap .glyphicon-alert:before {\n-  content: \"\\e209\";\n-}\n-.wppm_bootstrap .glyphicon-equalizer:before {\n-  content: \"\\e210\";\n-}\n-.wppm_bootstrap .glyphicon-king:before {\n-  content: \"\\e211\";\n-}\n-.wppm_bootstrap .glyphicon-queen:before {\n-  content: \"\\e212\";\n-}\n-.wppm_bootstrap .glyphicon-pawn:before {\n-  content: \"\\e213\";\n-}\n-.wppm_bootstrap .glyphicon-bishop:before {\n-  content: \"\\e214\";\n-}\n-.wppm_bootstrap .glyphicon-knight:before {\n-  content: \"\\e215\";\n-}\n-.wppm_bootstrap .glyphicon-baby-formula:before {\n-  content: \"\\e216\";\n-}\n-.wppm_bootstrap .glyphicon-tent:before {\n-  content: \"\\26fa\";\n-}\n-.wppm_bootstrap .glyphicon-blackboard:before {\n-  content: \"\\e218\";\n-}\n-.wppm_bootstrap .glyphicon-bed:before {\n-  content: \"\\e219\";\n-}\n-.wppm_bootstrap .glyphicon-apple:before {\n-  content: \"\\f8ff\";\n-}\n-.wppm_bootstrap .glyphicon-erase:before {\n-  content: \"\\e221\";\n-}\n-.wppm_bootstrap .glyphicon-hourglass:before {\n-  content: \"\\231b\";\n-}\n-.wppm_bootstrap .glyphicon-lamp:before {\n-  content: \"\\e223\";\n-}\n-.wppm_bootstrap .glyphicon-duplicate:before {\n-  content: \"\\e224\";\n-}\n-.wppm_bootstrap .glyphicon-piggy-bank:before {\n-  content: \"\\e225\";\n-}\n-.wppm_bootstrap .glyphicon-scissors:before {\n-  content: \"\\e226\";\n-}\n-.wppm_bootstrap .glyphicon-bitcoin:before {\n-  content: \"\\e227\";\n-}\n-.wppm_bootstrap .glyphicon-btc:before {\n-  content: \"\\e227\";\n-}\n-.wppm_bootstrap .glyphicon-xbt:before {\n-  content: \"\\e227\";\n-}\n-.wppm_bootstrap .glyphicon-yen:before {\n-  content: \"\\00a5\";\n-}\n-.wppm_bootstrap .glyphicon-jpy:before {\n-  content: \"\\00a5\";\n-}\n-.wppm_bootstrap .glyphicon-ruble:before {\n-  content: \"\\20bd\";\n-}\n-.wppm_bootstrap .glyphicon-rub:before {\n-  content: \"\\20bd\";\n-}\n-.wppm_bootstrap .glyphicon-scale:before {\n-  content: \"\\e230\";\n-}\n-.wppm_bootstrap .glyphicon-ice-lolly:before {\n-  content: \"\\e231\";\n-}\n-.wppm_bootstrap .glyphicon-ice-lolly-tasted:before {\n-  content: \"\\e232\";\n-}\n-.wppm_bootstrap .glyphicon-education:before {\n-  content: \"\\e233\";\n-}\n-.wppm_bootstrap .glyphicon-option-horizontal:before {\n-  content: \"\\e234\";\n-}\n-.wppm_bootstrap .glyphicon-option-vertical:before {\n-  content: \"\\e235\";\n-}\n-.wppm_bootstrap .glyphicon-menu-hamburger:before {\n-  content: \"\\e236\";\n-}\n-.wppm_bootstrap .glyphicon-modal-window:before {\n-  content: \"\\e237\";\n-}\n-.wppm_bootstrap .glyphicon-oil:before {\n-  content: \"\\e238\";\n-}\n-.wppm_bootstrap .glyphicon-grain:before {\n-  content: \"\\e239\";\n-}\n-.wppm_bootstrap .glyphicon-sunglasses:before {\n-  content: \"\\e240\";\n-}\n-.wppm_bootstrap .glyphicon-text-size:before {\n-  content: \"\\e241\";\n-}\n-.wppm_bootstrap .glyphicon-text-color:before {\n-  content: \"\\e242\";\n-}\n-.wppm_bootstrap .glyphicon-text-background:before {\n-  content: \"\\e243\";\n-}\n-.wppm_bootstrap .glyphicon-object-align-top:before {\n-  content: \"\\e244\";\n-}\n-.wppm_bootstrap .glyphicon-object-align-bottom:before {\n-  content: \"\\e245\";\n-}\n-.wppm_bootstrap .glyphicon-object-align-horizontal:before {\n-  content: \"\\e246\";\n-}\n-.wppm_bootstrap .glyphicon-object-align-left:before {\n-  content: \"\\e247\";\n-}\n-.wppm_bootstrap .glyphicon-object-align-vertical:before {\n-  content: \"\\e248\";\n-}\n-.wppm_bootstrap .glyphicon-object-align-right:before {\n-  content: \"\\e249\";\n-}\n-.wppm_bootstrap .glyphicon-triangle-right:before {\n-  content: \"\\e250\";\n-}\n-.wppm_bootstrap .glyphicon-triangle-left:before {\n-  content: \"\\e251\";\n-}\n-.wppm_bootstrap .glyphicon-triangle-bottom:before {\n-  content: \"\\e252\";\n-}\n-.wppm_bootstrap .glyphicon-triangle-top:before {\n-  content: \"\\e253\";\n-}\n-.wppm_bootstrap .glyphicon-console:before {\n-  content: \"\\e254\";\n-}\n-.wppm_bootstrap .glyphicon-superscript:before {\n-  content: \"\\e255\";\n-}\n-.wppm_bootstrap .glyphicon-subscript:before {\n-  content: \"\\e256\";\n-} \n-.wppm_bootstrap .glyphicon-menu-left:before {\n-  content: \"\\e257\";\n-}\n-.wppm_bootstrap .glyphicon-menu-right:before {\n-  content: \"\\e258\";\n-}\n-.wppm_bootstrap .glyphicon-menu-down:before {\n-  content: \"\\e259\";\n-}\n-.wppm_bootstrap .glyphicon-menu-up:before {\n-  content: \"\\e260\";\n-}\n-* {\n-  -webkit-box-sizing: border-box;\n-     -moz-box-sizing: border-box;\n-          box-sizing: border-box;\n-}\n-.wppm_bootstrap *:before,\n-.wppm_bootstrap *:after {\n-  -webkit-box-sizing: border-box;\n-     -moz-box-sizing: border-box;\n-          box-sizing: border-box;\n-}\n-.wppm_bootstrap html {\n-  font-size: 10px;\n-\n-  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n-}\n-.wppm_bootstrap body {\n-  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n-  font-size: 14px;\n-  line-height: 1.42857143;\n-  color: #333;\n-  background-color: #fff;\n-}\n-.wppm_bootstrap input,\n-.wppm_bootstrap button,\n-.wppm_bootstrap select,\n-.wppm_bootstrap textarea {\n-  font-family: inherit;\n-  font-size: inherit;\n-  line-height: inherit;\n-}\n-.wppm_bootstrap a {\n-  color: #337ab7;\n-  text-decoration: none;\n-}\n-.wppm_bootstrap a:hover,\n-.wppm_bootstrap a:focus {\n-  color: #23527c;\n-  text-decoration: underline;\n-}\n-.wppm_bootstrap a:focus {\n-  outline: 5px auto -webkit-focus-ring-color;\n-  outline-offset: -2px;\n-}\n-.wppm_bootstrap figure {\n-  margin: 0;\n-}\n-.wppm_bootstrap img {\n-  vertical-align: middle;\n-}\n-.wppm_bootstrap .img-responsive,\n-.wppm_bootstrap .thumbnail > img,\n-.wppm_bootstrap .thumbnail a > img,\n-.wppm_bootstrap .carousel-inner > .item > img,\n-.wppm_bootstrap .carousel-inner > .item > a > img {\n-  display: block;\n-  max-width: 100%;\n-  height: auto;\n-}\n-.wppm_bootstrap .img-rounded {\n-  border-radius: 6px;\n-}\n-.wppm_bootstrap .img-thumbnail {\n-  display: inline-block;\n-  max-width: 100%;\n-  height: auto;\n-  padding: 4px;\n-  line-height: 1.42857143;\n-  background-color: #fff;\n-  border: 1px solid #ddd;\n-  border-radius: 4px;\n-  -webkit-transition: all .2s ease-in-out;\n-       -o-transition: all .2s ease-in-out;\n-          transition: all .2s ease-in-out;\n-}\n-.wppm_bootstrap .img-circle {\n-  border-radius: 50%;\n-}\n-.wppm_bootstrap hr {\n-  margin-top: 20px;\n-  margin-bottom: 20px;\n-  border: 0;\n-  border-top: 1px solid #eee;\n-}\n-.wppm_bootstrap .sr-only {\n-  position: absolute;\n-  width: 1px;\n-  height: 1px;\n-  padding: 0;\n-  margin: -1px;\n-  overflow: hidden;\n-  clip: rect(0, 0, 0, 0);\n-  border: 0;\n-}\n-.wppm_bootstrap .sr-only-focusable:active,\n-.wppm_bootstrap .sr-only-focusable:focus {\n-  position: static;\n-  width: auto;\n-  height: auto;\n-  margin: 0;\n-  overflow: visible;\n-  clip: auto;\n-}\n-[role=\"button\"] {\n-  cursor: pointer;\n-}\n-.wppm_bootstrap h1,\n-.wppm_bootstrap h2,\n-.wppm_bootstrap h3,\n-.wppm_bootstrap h4,\n-.wppm_bootstrap h5,\n-.wppm_bootstrap h6,\n-.wppm_bootstrap .h1,\n-.wppm_bootstrap .h2,\n-.wppm_bootstrap .h3,\n-.wppm_bootstrap .h4,\n-.wppm_bootstrap .h5,\n-.wppm_bootstrap .h6 {\n-  font-family: inherit;\n-  font-weight: 500;\n-  line-height: 1.1;\n-  color: inherit;\n-}\n-.wppm_bootstrap h1 small,\n-.wppm_bootstrap h2 small,\n-.wppm_bootstrap h3 small,\n-.wppm_bootstrap h4 small,\n-.wppm_bootstrap h5 small,\n-.wppm_bootstrap h6 small,\n-.wppm_bootstrap .h1 small,\n-.wppm_bootstrap .h2 small,\n-.wppm_bootstrap .h3 small,\n-.wppm_bootstrap .h4 small,\n-.wppm_bootstrap .h5 small,\n-.wppm_bootstrap .h6 small,\n-.wppm_bootstrap h1 .small,\n-.wppm_bootstrap h2 .small,\n-.wppm_bootstrap h3 .small,\n-.wppm_bootstrap h4 .small,\n-.wppm_bootstrap h5 .small,\n-.wppm_bootstrap h6 .small,\n-.wppm_bootstrap .h1 .small,\n-.wppm_bootstrap .h2 .small,\n-.wppm_bootstrap .h3 .small,\n-.wppm_bootstrap .h4 .small,\n-.wppm_bootstrap .h5 .small,\n-.wppm_bootstrap .h6 .small {\n-  font-weight: normal;\n-  line-height: 1;\n-  color: #777;\n-}\n-.wppm_bootstrap h1,\n-.wppm_bootstrap .h1,\n-.wppm_bootstrap h2,\n-.wppm_bootstrap .h2,\n-.wppm_bootstrap h3,\n-.wppm_bootstrap .h3 {\n-  margin-top: 20px;\n-  margin-bottom: 10px;\n-}\n-.wppm_bootstrap h1 small,\n-.wppm_bootstrap .h1 small,\n-.wppm_bootstrap h2 small,\n-.wppm_bootstrap .h2 small,\n-.wppm_bootstrap h3 small,\n-.wppm_bootstrap .h3 small,\n-.wppm_bootstrap h1 .small,\n-.wppm_bootstrap .h1 .small,\n-.wppm_bootstrap h2 .small,\n-.wppm_bootstrap .h2 .small,\n-.wppm_bootstrap h3 .small,\n-.wppm_bootstrap .h3 .small {\n-  font-size: 65%;\n-}\n-.wppm_bootstrap h4,\n-.wppm_bootstrap .h4,\n-.wppm_bootstrap h5,\n-.wppm_bootstrap .h5,\n-.wppm_bootstrap h6,\n-.wppm_bootstrap .h6 {\n-  margin-top: 10px;\n-  margin-bottom: 10px;\n-}\n-.wppm_bootstrap h4 small,\n-.wppm_bootstrap .h4 small,\n-.wppm_bootstrap h5 small,\n-.wppm_bootstrap .h5 small,\n-.wppm_bootstrap h6 small,\n-.wppm_bootstrap .h6 small,\n-.wppm_bootstrap h4 .small,\n-.wppm_bootstrap .h4 .small,\n-.wppm_bootstrap h5 .small,\n-.wppm_bootstrap .h5 .small,\n-.wppm_bootstrap h6 .small,\n-.wppm_bootstrap .h6 .small {\n-  font-size: 75%;\n-}\n-.wppm_bootstrap h1,\n-.wppm_bootstrap .h1 {\n-  font-size: 36px;\n-}\n-.wppm_bootstrap h2,\n-.wppm_bootstrap .h2 {\n-  font-size: 30px;\n-}\n-.wppm_bootstrap h3,\n-.wppm_bootstrap .h3 {\n-  font-size: 24px;\n-}\n-.wppm_bootstrap h4,\n-.wppm_bootstrap .h4 {\n-  font-size: 18px;\n-}\n-.wppm_bootstrap h5,\n-.wppm_bootstrap .h5 {\n-  font-size: 14px;\n-}\n-.wppm_bootstrap h6,\n-.wppm_bootstrap .h6 {\n-  font-size: 12px;\n-}\n-.wppm_bootstrap p {\n-  margin: 0 0 10px;\n-}\n-.wppm_bootstrap .lead {\n-  margin-bottom: 20px;\n-  font-size: 16px;\n-  font-weight: 300;\n-  line-height: 1.4;\n-}\n-@media (min-width: 768px) {\n-  .lead {\n-    font-size: 21px;\n-  }\n-}\n-.wppm_bootstrap small,\n-.wppm_bootstrap .small {\n-  font-size: 85%;\n-}\n-.wppm_bootstrap mark,\n-.wppm_bootstrap .mark {\n-  padding: .2em;\n-  background-color: #fcf8e3;\n-}\n-.wppm_bootstrap .text-left {\n-  text-align: left;\n-}\n-.wppm_bootstrap .text-right {\n-  text-align: right;\n-}\n-.wppm_bootstrap .text-center {\n-  text-align: center;\n-}\n-.wppm_bootstrap .text-justify {\n-  text-align: justify;\n-}\n-.wppm_bootstrap .text-nowrap {\n-  white-space: nowrap;\n-}\n-.wppm_bootstrap .text-lowercase {\n-  text-transform: lowercase;\n-}\n-.wppm_bootstrap .text-uppercase {\n-  text-transform: uppercase;\n-}\n-.wppm_bootstrap .text-capitalize {\n-  text-transform: capitalize;\n-}\n-.wppm_bootstrap .text-muted {\n-  color: #777;\n-}\n-.wppm_bootstrap .text-primary {\n-  color: #337ab7;\n-}\n-.wppm_bootstrap a.text-primary:hover,\n-.wppm_bootstrap a.text-primary:focus {\n-  color: #286090;\n-}\n-.wppm_bootstrap .text-success {\n-  color: #3c763d;\n-}\n-.wppm_bootstrap a.text-success:hover,\n-.wppm_bootstrap a.text-success:focus {\n-  color: #2b542c;\n-}\n-.wppm_bootstrap .text-info {\n-  color: #31708f;\n-}\n-.wppm_bootstrap a.text-info:hover,\n-.wppm_bootstrap a.text-info:focus {\n-  color: #245269;\n-}\n-.wppm_bootstrap .text-warning {\n-  color: #8a6d3b;\n-}\n-.wppm_bootstrap a.text-warning:hover,\n-.wppm_bootstrap a.text-warning:focus {\n-  color: #66512c;\n-}\n-.wppm_bootstrap .text-danger {\n-  color: #a94442;\n-}\n-.wppm_bootstrap a.text-danger:hover,\n-.wppm_bootstrap a.text-danger:focus {\n-  color: #843534;\n-}\n-.wppm_bootstrap .bg-primary {\n-  color: #fff;\n-  background-color: #337ab7;\n-}\n-.wppm_bootstrap a.bg-primary:hover,\n-.wppm_bootstrap a.bg-primary:focus {\n-  background-color: #286090;\n-}\n-.wppm_bootstrap .bg-success {\n-  background-color: #dff0d8;\n-}\n-.wppm_bootstrap a.bg-success:hover,\n-.wppm_bootstrap a.bg-success:focus {\n-  background-color: #c1e2b3;\n-}\n-.wppm_bootstrap .bg-info {\n-  background-color: #d9edf7;\n-}\n-.wppm_bootstrap a.bg-info:hover,\n-.wppm_bootstrap a.bg-info:focus {\n-  background-color: #afd9ee;\n-}\n-.wppm_bootstrap .bg-warning {\n-  background-color: #fcf8e3;\n-}\n-.wppm_bootstrap a.bg-warning:hover,\n-.wppm_bootstrap a.bg-warning:focus {\n-  background-color: #f7ecb5;\n-}\n-.wppm_bootstrap .bg-danger {\n-  background-color: #f2dede;\n-}\n-.wppm_bootstrap a.bg-danger:hover,\n-.wppm_bootstrap a.bg-danger:focus {\n-  background-color: #e4b9b9;\n-}\n-.wppm_bootstrap .page-header {\n-  padding-bottom: 9px;\n-  margin: 40px 0 20px;\n-  border-bottom: 1px solid #eee;\n-}\n-.wppm_bootstrap ul,\n-.wppm_bootstrap ol {\n-  margin-top: 0;\n-  margin-bottom: 10px;\n-}\n-.wppm_bootstrap ul .wppm_bootstrap ul,\n-.wppm_bootstrap ol .wppm_bootstrap ul,\n-.wppm_bootstrap ul .wppm_bootstrap ol,\n-.wppm_bootstrap ol .wppm_bootstrap ol {\n-  margin-bottom: 0;\n-}\n-.wppm_bootstrap .list-unstyled {\n-  padding-left: 0;\n-  list-style: none;\n-}\n-.wppm_bootstrap .list-inline {\n-  padding-left: 0;\n-  margin-left: -5px;\n-  list-style: none;\n-}\n-.wppm_bootstrap .list-inline > li {\n-  display: inline-block;\n-  padding-right: 5px;\n-  padding-left: 5px;\n-}\n-.wppm_bootstrap dl {\n-  margin-top: 0;\n-  margin-bottom: 20px;\n-}\n-.wppm_bootstrap dt,\n-.wppm_bootstrap dd {\n-  line-height: 1.42857143;\n-}\n-.wppm_bootstrap dt {\n-  font-weight: bold;\n-}\n-.wppm_bootstrap dd {\n-  margin-left: 0;\n-}\n-@media (min-width: 768px) {\n-  .dl-horizontal dt {\n-    float: left;\n-    width: 160px;\n-    overflow: hidden;\n-    clear: left;\n-    text-align: right;\n-    text-overflow: ellipsis;\n-    white-space: nowrap;\n-  }\n-  .wppm_bootstrap .dl-horizontal dd {\n-    margin-left: 180px;\n-  }\n-}\n-.wppm_bootstrap abbr[title],\n-.wppm_bootstrap abbr[data-original-title] {\n-  cursor: help;\n-  border-bottom: 1px dotted #777;\n-}\n-.wppm_bootstrap .initialism {\n-  font-size: 90%;\n-  text-transform: uppercase;\n-}\n-.wppm_bootstrap blockquote {\n-  padding: 10px 20px;\n-  margin: 0 0 20px;\n-  font-size: 17.5px;\n-  border-left: 5px solid #eee;\n-}\n-.wppm_bootstrap blockquote p:last-child,\n-.wppm_bootstrap blockquote ul:last-child,\n-.wppm_bootstrap blockquote ol:last-child {\n-  margin-bottom: 0;\n-}\n-.wppm_bootstrap blockquote footer,\n-.wppm_bootstrap blockquote small,\n-.wppm_bootstrap blockquote .small {\n-  display: block;\n-  font-size: 80%;\n-  line-height: 1.42857143;\n-  color: #777;\n-}\n-.wppm_bootstrap blockquote footer:before,\n-.wppm_bootstrap blockquote small:before,\n-.wppm_bootstrap blockquote .small:before {\n-  content: '\\2014 \\00A0';\n-}\n-.wppm_bootstrap .blockquote-reverse,\n-.wppm_bootstrap blockquote.pull-right {\n-  padding-right: 15px;\n-  padding-left: 0;\n-  text-align: right;\n-  border-right: 5px solid #eee;\n-  border-left: 0;\n-}\n-.wppm_bootstrap .blockquote-reverse footer:before,\n-.wppm_bootstrap blockquote.pull-right footer:before,\n-.wppm_bootstrap .blockquote-reverse small:before,\n-.wppm_bootstrap blockquote.pull-right small:before,\n-.wppm_bootstrap .blockquote-reverse .small:before,\n-.wppm_bootstrap blockquote.pull-right .small:before {\n-  content: '';\n-}\n-.wppm_bootstrap .blockquote-reverse footer:after,\n-.wppm_bootstrap blockquote.pull-right footer:after,\n-.wppm_bootstrap .blockquote-reverse small:after,\n-.wppm_bootstrap blockquote.pull-right small:after,\n-.wppm_bootstrap .blockquote-reverse .small:after,\n-.wppm_bootstrap blockquote.pull-right .small:after {\n-  content: '\\00A0 \\2014';\n-}\n-.wppm_bootstrap address {\n-  margin-bottom: 20px;\n-  font-style: normal;\n-  line-height: 1.42857143;\n-}\n-.wppm_bootstrap code,\n-.wppm_bootstrap kbd,\n-.wppm_bootstrap pre,\n-.wppm_bootstrap samp {\n-  font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n-}\n-.wppm_bootstrap code {\n-  padding: 2px 4px;\n-  font-size: 90%;\n-  color: #c7254e;\n-  background-color: #f9f2f4;\n-  border-radius: 4px;\n-}\n-.wppm_bootstrap kbd {\n-  padding: 2px 4px;\n-  font-size: 90%;\n-  color: #fff;\n-  background-color: #333;\n-  border-radius: 3px;\n-  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n-          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n-}\n-.wppm_bootstrap kbd .wppm_bootstrap kbd {\n-  padding: 0;\n-  font-size: 100%;\n-  font-weight: bold;\n-  -webkit-box-shadow: none;\n-          box-shadow: none;\n-}\n-.wppm_bootstrap pre {\n-  display: block;\n-  padding: 9.5px;\n-  margin: 0 0 10px;\n-  font-size: 13px;\n-  line-height: 1.42857143;\n-  color: #333;\n-  word-break: break-all;\n-  word-wrap: break-word;\n-  background-color: #f5f5f5;\n-  border: 1px solid #ccc;\n-  border-radius: 4px;\n-}\n-.wppm_bootstrap pre .wppm_bootstrap code {\n-  padding: 0;\n-  font-size: inherit;\n-  color: inherit;\n-  white-space: pre-wrap;\n-  background-color: transparent;\n-  border-radius: 0;\n-}\n-.wppm_bootstrap .pre-scrollable {\n-  max-height: 340px;\n-  overflow-y: scroll;\n-}\n-.wppm_bootstrap .container {\n-  padding-right: 15px;\n-  padding-left: 15px;\n-  margin-right: auto;\n-  margin-left: auto;\n-}\n-@media (min-width: 768px) {\n-  .container {\n-    width: 750px;\n-  }\n-}\n-@media (min-width: 992px) {\n-  .container {\n-    width: 970px;\n-  }\n-}\n-@media (min-width: 1200px) {\n-  .container {\n-    width: 1170px;\n-  }\n-}\n-.wppm_bootstrap .container-fluid {\n-  padding-right: 15px;\n-  padding-left: 15px;\n-  margin-right: auto;\n-  margin-left: auto;\n-}\n-.wppm_bootstrap .row {\n-  margin-left: 0px !important;\n-  margin-right: 0px !important;\n-}\n-.wppm_bootstrap .col-xs-1, .wppm_bootstrap .col-sm-1, .wppm_bootstrap .col-md-1, .wppm_bootstrap .col-lg-1, .wppm_bootstrap .col-xs-2, .wppm_bootstrap .col-sm-2, .wppm_bootstrap .col-md-2, .wppm_bootstrap .col-lg-2, .wppm_bootstrap .col-xs-3, .wppm_bootstrap .col-sm-3, .wppm_bootstrap .col-md-3, .wppm_bootstrap .col-lg-3, .wppm_bootstrap .col-xs-4, .wppm_bootstrap .col-sm-4, .wppm_bootstrap .col-md-4, .wppm_bootstrap .col-lg-4, .wppm_bootstrap .col-xs-5, .wppm_bootstrap .col-sm-5, .wppm_bootstrap .col-md-5, .wppm_bootstrap .col-lg-5, .wppm_bootstrap .col-xs-6, .wppm_bootstrap .col-sm-6, .wppm_bootstrap .col-md-6, .wppm_bootstrap .col-lg-6, .wppm_bootstrap .col-xs-7, .wppm_bootstrap .col-sm-7, .wppm_bootstrap .col-md-7, .wppm_bootstrap .col-lg-7, .wppm_bootstrap .col-xs-8, .wppm_bootstrap .col-sm-8, .wppm_bootstrap .col-md-8, .wppm_bootstrap .col-lg-8, .wppm_bootstrap .col-xs-9, .wppm_bootstrap .col-sm-9, .wppm_bootstrap .col-md-9, .wppm_bootstrap .col-lg-9, .wppm_bootstrap .col-xs-10, .wppm_bootstrap .col-sm-10, .wppm_bootstrap .col-md-10, .wppm_bootstrap .col-lg-10, .wppm_bootstrap .col-xs-11, .wppm_bootstrap .col-sm-11, .wppm_bootstrap .col-md-11, .wppm_bootstrap .col-lg-11, .wppm_bootstrap .col-xs-12, .wppm_bootstrap .col-sm-12, .wppm_bootstrap .col-md-12, .wppm_bootstrap .col-lg-12 {\n-  position: relative;\n-  min-height: 1px;\n-  padding-right: 15px;\n-  padding-left: 15px;\n-}\n-.wppm_bootstrap .col-xs-1, .wppm_bootstrap .col-xs-2, .wppm_bootstrap .col-xs-3, .wppm_bootstrap .col-xs-4, .wppm_bootstrap .col-xs-5, .wppm_bootstrap .col-xs-6, .wppm_bootstrap .col-xs-7, .wppm_bootstrap .col-xs-8, .wppm_bootstrap .col-xs-9, .wppm_bootstrap .col-xs-10, .wppm_bootstrap .col-xs-11, .wppm_bootstrap .col-xs-12 {\n-  float: left;\n-}\n-.wppm_bootstrap .col-xs-12 {\n-  width: 100%;\n-}\n-.wppm_bootstrap .col-xs-11 {\n-  width: 91.66666667%;\n-}\n-.wppm_bootstrap .col-xs-10 {\n-  width: 83.33333333%;\n-}\n-.wppm_bootstrap .col-xs-9 {\n-  width: 75%;\n-}\n-.wppm_bootstrap .col-xs-8 {\n-  width: 66.66666667%;\n-}\n-.wppm_bootstrap .col-xs-7 {\n-  width: 58.33333333%;\n-}\n-.wppm_bootstrap .col-xs-6 {\n-  width: 50%;\n-}\n-.wppm_bootstrap .col-xs-5 {\n-  width: 41.66666667%;\n-}\n-.wppm_bootstrap .col-xs-4 {\n-  width: 33.33333333%;\n-}\n-.wppm_bootstrap .col-xs-3 {\n-  width: 25%;\n-}\n-.wppm_bootstrap .col-xs-2 {\n-  width: 16.66666667%;\n-}\n-.wppm_bootstrap .col-xs-1 {\n-  width: 8.33333333%;\n-}\n-.wppm_bootstrap .col-xs-pull-12 {\n-  right: 100%;\n-}\n-.wppm_bootstrap .col-xs-pull-11 {\n-  right: 91.66666667%;\n-}\n-.wppm_bootstrap .col-xs-pull-10 {\n-  right: 83.33333333%;\n-}\n-.wppm_bootstrap .col-xs-pull-9 {\n-  right: 75%;\n-}\n-.wppm_bootstrap .col-xs-pull-8 {\n-  right: 66.66666667%;\n-}\n-.wppm_bootstrap .col-xs-pull-7 {\n-  right: 58.33333333%;\n-}\n-.wppm_bootstrap .col-xs-pull-6 {\n-  right: 50%;\n-}\n-.wppm_bootstrap .col-xs-pull-5 {\n-  right: 41.66666667%;\n-}\n-.wppm_bootstrap .col-xs-pull-4 {\n-  right: 33.33333333%;\n-}\n-.wppm_bootstrap .col-xs-pull-3 {\n-  right: 25%;\n-}\n-.wppm_bootstrap .col-xs-pull-2 {\n-  right: 16.66666667%;\n-}\n-.wppm_bootstrap .col-xs-pull-1 {\n-  right: 8.33333333%;\n-}\n-.wppm_bootstrap .col-xs-pull-0 {\n-  right: auto;\n-}\n-.wppm_bootstrap .col-xs-push-12 {\n-  left: 100%;\n-}\n-.wppm_bootstrap .col-xs-push-11 {\n-  left: 91.66666667%;\n-}\n-.wppm_bootstrap .col-xs-push-10 {\n-  left: 83.33333333%;\n-}\n-.wppm_bootstrap .col-xs-push-9 {\n-  left: 75%;\n-}\n-.wppm_bootstrap .col-xs-push-8 {\n-  left: 66.66666667%;\n-}\n-.wppm_bootstrap .col-xs-push-7 {\n-  left: 58.33333333%;\n-}\n-.wppm_bootstrap .col-xs-push-6 {\n-  left: 50%;\n-}\n-.wppm_bootstrap .col-xs-push-5 {\n-  left: 41.66666667%;\n-}\n-.wppm_bootstrap .col-xs-push-4 {\n-  left: 33.33333333%;\n-}\n-.wppm_bootstrap .col-xs-push-3 {\n-  left: 25%;\n-}\n-.wppm_bootstrap .col-xs-push-2 {\n-  left: 16.66666667%;\n-}\n-.wppm_bootstrap .col-xs-push-1 {\n-  left: 8.33333333%;\n-}\n-.wppm_bootstrap .col-xs-push-0 {\n-  left: auto;\n-}\n-.wppm_bootstrap .col-xs-offset-12 {\n-  margin-left: 100%;\n-}\n-.wppm_bootstrap .col-xs-offset-11 {\n-  margin-left: 91.66666667%;\n-}\n-.wppm_bootstrap .col-xs-offset-10 {\n-  margin-left: 83.33333333%;\n-}\n-.wppm_bootstrap .col-xs-offset-9 {\n-  margin-left: 75%;\n-}\n-.wppm_bootstrap .col-xs-offset-8 {\n-  margin-left: 66.66666667%;\n-}\n-.wppm_bootstrap .col-xs-offset-7 {\n-  margin-left: 58.33333333%;\n-}\n-.wppm_bootstrap .col-xs-offset-6 {\n-  margin-left: 50%;\n-}\n-.wppm_bootstrap .col-xs-offset-5 {\n-  margin-left: 41.66666667%;\n-}\n-.wppm_bootstrap .col-xs-offset-4 {\n-  margin-left: 33.33333333%;\n-}\n-.wppm_bootstrap .col-xs-offset-3 {\n-  margin-left: 25%;\n-}\n-.wppm_bootstrap .col-xs-offset-2 {\n-  margin-left: 16.66666667%;\n-}\n-.wppm_bootstrap .col-xs-offset-1 {\n-  margin-left: 8.33333333%;\n-}\n-.wppm_bootstrap .col-xs-offset-0 {\n-  margin-left: 0;\n-}\n-@media (min-width: 768px) {\n-  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n-    float: left;\n-  }\n-  .wppm_bootstrap .col-sm-12 {\n-    width: 100%;\n-  }\n-  .wppm_bootstrap .col-sm-11 {\n-    width: 91.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-10 {\n-    width: 83.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-9 {\n-    width: 75%;\n-  }\n-  .wppm_bootstrap .col-sm-8 {\n-    width: 66.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-7 {\n-    width: 58.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-6 {\n-    width: 50%;\n-  }\n-  .wppm_bootstrap .col-sm-5 {\n-    width: 41.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-4 {\n-    width: 33.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-3 {\n-    width: 25%;\n-  }\n-  .wppm_bootstrap .col-sm-2 {\n-    width: 16.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-1 {\n-    width: 8.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-12 {\n-    right: 100%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-11 {\n-    right: 91.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-10 {\n-    right: 83.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-9 {\n-    right: 75%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-8 {\n-    right: 66.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-7 {\n-    right: 58.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-6 {\n-    right: 50%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-5 {\n-    right: 41.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-4 {\n-    right: 33.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-3 {\n-    right: 25%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-2 {\n-    right: 16.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-1 {\n-    right: 8.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-pull-0 {\n-    right: auto;\n-  }\n-  .wppm_bootstrap .col-sm-push-12 {\n-    left: 100%;\n-  }\n-  .wppm_bootstrap .col-sm-push-11 {\n-    left: 91.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-push-10 {\n-    left: 83.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-push-9 {\n-    left: 75%;\n-  }\n-  .wppm_bootstrap .col-sm-push-8 {\n-    left: 66.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-push-7 {\n-    left: 58.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-push-6 {\n-    left: 50%;\n-  }\n-  .wppm_bootstrap .col-sm-push-5 {\n-    left: 41.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-push-4 {\n-    left: 33.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-push-3 {\n-    left: 25%;\n-  }\n-  .wppm_bootstrap .col-sm-push-2 {\n-    left: 16.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-push-1 {\n-    left: 8.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-push-0 {\n-    left: auto;\n-  }\n-  .wppm_bootstrap .col-sm-offset-12 {\n-    margin-left: 100%;\n-  }\n-  .wppm_bootstrap .col-sm-offset-11 {\n-    margin-left: 91.66666667%;\n-  }\n-  .col-sm-offset-10 {\n-    margin-left: 83.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-offset-9 {\n-    margin-left: 75%;\n-  }\n-  .wppm_bootstrap .col-sm-offset-8 {\n-    margin-left: 66.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-offset-7 {\n-    margin-left: 58.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-offset-6 {\n-    margin-left: 50%;\n-  }\n-  .wppm_bootstrap .col-sm-offset-5 {\n-    margin-left: 41.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-offset-4 {\n-    margin-left: 33.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-offset-3 {\n-    margin-left: 25%;\n-  }\n-  .wppm_bootstrap .col-sm-offset-2 {\n-    margin-left: 16.66666667%;\n-  }\n-  .wppm_bootstrap .col-sm-offset-1 {\n-    margin-left: 8.33333333%;\n-  }\n-  .wppm_bootstrap .col-sm-offset-0 {\n-    margin-left: 0;\n-  }\n-}\n-@media (min-width: 992px) {\n-  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n-    float: left;\n-  }\n-  .wppm_bootstrap .col-md-12 {\n-    width: 100%;\n-  }\n-  .wppm_bootstrap .col-md-11 {\n-    width: 91.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-10 {\n-    width: 83.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-9 {\n-    width: 75%;\n-  }\n-  .wppm_bootstrap .col-md-8 {\n-    width: 66.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-7 {\n-    width: 58.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-6 {\n-    width: 50%;\n-  }\n-  .wppm_bootstrap .col-md-5 {\n-    width: 41.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-4 {\n-    width: 33.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-3 {\n-    width: 25%;\n-  }\n-  .wppm_bootstrap .col-md-2 {\n-    width: 16.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-1 {\n-    width: 8.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-pull-12 {\n-    right: 100%;\n-  }\n-  .wppm_bootstrap .col-md-pull-11 {\n-    right: 91.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-pull-10 {\n-    right: 83.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-pull-9 {\n-    right: 75%;\n-  }\n-  .wppm_bootstrap .col-md-pull-8 {\n-    right: 66.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-pull-7 {\n-    right: 58.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-pull-6 {\n-    right: 50%;\n-  }\n-  .wppm_bootstrap .col-md-pull-5 {\n-    right: 41.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-pull-4 {\n-    right: 33.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-pull-3 {\n-    right: 25%;\n-  }\n-  .wppm_bootstrap .col-md-pull-2 {\n-    right: 16.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-pull-1 {\n-    right: 8.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-pull-0 {\n-    right: auto;\n-  }\n-  .wppm_bootstrap .col-md-push-12 {\n-    left: 100%;\n-  }\n-  .wppm_bootstrap .col-md-push-11 {\n-    left: 91.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-push-10 {\n-    left: 83.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-push-9 {\n-    left: 75%;\n-  }\n-  .wppm_bootstrap .col-md-push-8 {\n-    left: 66.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-push-7 {\n-    left: 58.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-push-6 {\n-    left: 50%;\n-  }\n-  .wppm_bootstrap .col-md-push-5 {\n-    left: 41.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-push-4 {\n-    left: 33.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-push-3 {\n-    left: 25%;\n-  }\n-  .wppm_bootstrap .col-md-push-2 {\n-    left: 16.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-push-1 {\n-    left: 8.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-push-0 {\n-    left: auto;\n-  }\n-  .wppm_bootstrap .col-md-offset-12 {\n-    margin-left: 100%;\n-  }\n-  .wppm_bootstrap .col-md-offset-11 {\n-    margin-left: 91.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-offset-10 {\n-    margin-left: 83.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-offset-9 {\n-    margin-left: 75%;\n-  }\n-  .wppm_bootstrap .col-md-offset-8 {\n-    margin-left: 66.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-offset-7 {\n-    margin-left: 58.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-offset-6 {\n-    margin-left: 50%;\n-  }\n-  .wppm_bootstrap .col-md-offset-5 {\n-    margin-left: 41.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-offset-4 {\n-    margin-left: 33.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-offset-3 {\n-    margin-left: 25%;\n-  }\n-  .wppm_bootstrap .col-md-offset-2 {\n-    margin-left: 16.66666667%;\n-  }\n-  .wppm_bootstrap .col-md-offset-1 {\n-    margin-left: 8.33333333%;\n-  }\n-  .wppm_bootstrap .col-md-offset-0 {\n-    margin-left: 0;\n-  }\n-}\n-@media (min-width: 1200px) {\n-  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n-    float: left;\n-  }\n-  .wppm_bootstrap .col-lg-12 {\n-    width: 100%;\n-  }\n-  .wppm_bootstrap .col-lg-11 {\n-    width: 91.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-10 {\n-    width: 83.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-9 {\n-    width: 75%;\n-  }\n-  .wppm_bootstrap .col-lg-8 {\n-    width: 66.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-7 {\n-    width: 58.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-6 {\n-    width: 50%;\n-  }\n-  .wppm_bootstrap .col-lg-5 {\n-    width: 41.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-4 {\n-    width: 33.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-3 {\n-    width: 25%;\n-  }\n-  .wppm_bootstrap .col-lg-2 {\n-    width: 16.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-1 {\n-    width: 8.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-12 {\n-    right: 100%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-11 {\n-    right: 91.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-10 {\n-    right: 83.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-9 {\n-    right: 75%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-8 {\n-    right: 66.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-7 {\n-    right: 58.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-6 {\n-    right: 50%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-5 {\n-    right: 41.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-4 {\n-    right: 33.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-3 {\n-    right: 25%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-2 {\n-    right: 16.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-1 {\n-    right: 8.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-pull-0 {\n-    right: auto;\n-  }\n-  .wppm_bootstrap .col-lg-push-12 {\n-    left: 100%;\n-  }\n-  .wppm_bootstrap .col-lg-push-11 {\n-    left: 91.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-push-10 {\n-    left: 83.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-push-9 {\n-    left: 75%;\n-  }\n-  .wppm_bootstrap .col-lg-push-8 {\n-    left: 66.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-push-7 {\n-    left: 58.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-push-6 {\n-    left: 50%;\n-  }\n-  .wppm_bootstrap .col-lg-push-5 {\n-    left: 41.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-push-4 {\n-    left: 33.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-push-3 {\n-    left: 25%;\n-  }\n-  .wppm_bootstrap .col-lg-push-2 {\n-    left: 16.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-push-1 {\n-    left: 8.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-push-0 {\n-    left: auto;\n-  }\n-  .wppm_bootstrap .col-lg-offset-12 {\n-    margin-left: 100%;\n-  }\n-  .wppm_bootstrap .col-lg-offset-11 {\n-    margin-left: 91.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-offset-10 {\n-    margin-left: 83.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-offset-9 {\n-    margin-left: 75%;\n-  }\n-  .wppm_bootstrap .col-lg-offset-8 {\n-    margin-left: 66.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-offset-7 {\n-    margin-left: 58.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-offset-6 {\n-    margin-left: 50%;\n-  }\n-  .wppm_bootstrap .col-lg-offset-5 {\n-    margin-left: 41.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-offset-4 {\n-    margin-left: 33.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-offset-3 {\n-    margin-left: 25%;\n-  }\n-  .wppm_bootstrap .col-lg-offset-2 {\n-    margin-left: 16.66666667%;\n-  }\n-  .wppm_bootstrap .col-lg-offset-1 {\n-    margin-left: 8.33333333%;\n-  }\n-  .wppm_bootstrap .col-lg-offset-0 {\n-    margin-left: 0;\n-  }\n-}\n-\u002F* .wppm_bootstrap table {\n-  background-color: transparent;\n-} *\u002F\n-.wppm_bootstrap caption {\n-  padding-top: 8px;\n-  padding-bottom: 8px;\n-  color: #777;\n-  text-align: left;\n-}\n-.wppm_bootstrap th {\n-  text-align: left;\n-}\n-.wppm_bootstrap .table {\n-  width: 100%;\n-  max-width: 100%;\n-  margin-bottom: 20px;\n-}\n-.wppm_bootstrap .table > thead > tr > th,\n-.wppm_bootstrap .table > tbody > tr > th,\n-.wppm_bootstrap .table > tfoot > tr > th,\n-.wppm_bootstrap .table > thead > tr > td,\n-.wppm_bootstrap .table > tbody > tr > td,\n-.wppm_bootstrap .table > tfoot > tr > td {\n-  padding: 5px;\n-  line-height: 1.42857143;\n-  vertical-align: top;\n-  border-top: 1px solid #ddd;\n-}\n-.wppm_bootstrap .table > thead > tr > th {\n-  vertical-align: top;\n-  border-bottom: 2px solid #ddd;\n-}\n-.wppm_bootstrap .table > caption + thead > tr:first-child > th,\n-.wppm_bootstrap .table > colgroup + thead > tr:first-child > th,\n-.wppm_bootstrap .table > thead:first-child > tr:first-child > th,\n-.wppm_bootstrap .table > caption + thead > tr:first-child > td,\n-.wppm_bootstrap .table > colgroup + thead > tr:first-child > td,\n-.wppm_bootstrap .table > thead:first-child > tr:first-child > td {\n-  border-top: 0;\n-}\n-.wppm_bootstrap .table > tbody + tbody {\n-  border-top: 2px solid #ddd;\n-}\n-.wppm_bootstrap .table .table {\n-  background-color: #fff;\n-}\n-.wppm_bootstrap .table-condensed > thead > tr > th,\n-.wppm_bootstrap .table-condensed > tbody > tr > th,\n-.wppm_bootstrap .table-condensed > tfoot > tr > th,\n-.wppm_bootstrap .table-condensed > thead > tr > td,\n-.wppm_bootstrap .table-condensed > tbody > tr > td,\n-.wppm_bootstrap .table-condensed > tfoot > tr > td {\n-  padding: 5px;\n-}\n-.wppm_bootstrap .table-bordered {\n-  border: 1px solid #ddd;\n-}\n-.wppm_bootstrap .table-bordered > thead > tr > th,\n-.wppm_bootstrap .table-bordered > tbody > tr > th,\n-.wppm_bootstrap .table-bordered > tfoot > tr > th,\n-.wppm_bootstrap .table-bordered > thead > tr > td,\n-.wppm_bootstrap .table-bordered > tbody > tr > td,\n-.wppm_bootstrap .table-bordered > tfoot > tr > td {\n-  border: 1px solid #ddd;\n-}\n-.wppm_bootstrap .table-bordered > thead > tr > th,\n-.wppm_bootstrap .table-bordered > thead > tr > td {\n-  border-bottom-width: 2px;\n-}\n-.wppm_bootstrap .table-striped > tbody > tr:nth-of-type(odd) {\n-  background-color: #f9f9f9;\n-}\n-.wppm_bootstrap .table-hover > tbody > tr:hover {\n-  background-color: #f5f5f5;\n-}\n-.wppm_bootstrap table col[class*=\"col-\"] {\n-  position: static;\n-  display: table-column;\n-  float: none;\n-}\n-.wppm_bootstrap table td[class*=\"col-\"],\n-.wppm_bootstrap table th[class*=\"col-\"] {\n-  position: static;\n-  display: table-cell;\n-  float: none;\n-}\n-.wppm_bootstrap .table > thead > tr > td.active,\n-.wppm_bootstrap .table > tbody > tr > td.active,\n-.wppm_bootstrap .table > tfoot > tr > td.active,\n-.wppm_bootstrap .table > thead > tr > th.active,\n-.wppm_bootstrap .table > tbody > tr > th.active,\n-.wppm_bootstrap .table > tfoot > tr > th.active,\n-.wppm_bootstrap .table > thead > tr.active > td,\n-.wppm_bootstrap .table > tbody > tr.active > td,\n-.wppm_bootstrap .table > tfoot > tr.active > td,\n-.wppm_bootstrap .table > thead > tr.active > th,\n-.wppm_bootstrap .table > tbody > tr.active > th,\n-.wppm_bootstrap .table > tfoot > tr.active > th {\n-  background-color: #f5f5f5;\n-}\n-.wppm_bootstrap .table-hover > tbody > tr > td.active:hover,\n-.wppm_bootstrap .table-hover > tbody > tr > th.active:hover,\n-.wppm_bootstrap .table-hover > tbody > tr.active:hover > td,\n-.wppm_bootstrap .table-hover > tbody > tr:hover > .active,\n-.wppm_bootstrap .table-hover > tbody > tr.active:hover > th {\n-  background-color: #e8e8e8;\n-}\n-.wppm_bootstrap .table > thead > tr > td.success,\n-.wppm_bootstrap .table > tbody > tr > td.success,\n-.wppm_bootstrap .table > tfoot > tr > td.success,\n-.wppm_bootstrap .table > thead > tr > th.success,\n-.wppm_bootstrap .table > tbody > tr > th.success,\n-.wppm_bootstrap .table > tfoot > tr > th.success,\n-.wppm_bootstrap .table > thead > tr.success > td,\n-.wppm_bootstrap .table > tbody > tr.success > td,\n-.wppm_bootstrap .table > tfoot > tr.success > td,\n-.wppm_bootstrap .table > thead > tr.success > th,\n-.wppm_bootstrap .table > tbody > tr.success > th,\n-.wppm_bootstrap .table > tfoot > tr.success > th {\n-  background-color: #dff0d8;\n-}\n-.wppm_bootstrap .table-hover > tbody > tr > td.success:hover,\n-.wppm_bootstrap .table-hover > tbody > tr > th.success:hover,\n-.wppm_bootstrap .table-hover > tbody > tr.success:hover > td,\n-.wppm_bootstrap .table-hover > tbody > tr:hover > .success,\n-.wppm_bootstrap .table-hover > tbody > tr.success:hover > th {\n-  background-color: #d0e9c6;\n-}\n-.wppm_bootstrap .table > thead > tr > td.info,\n-.wppm_bootstrap .table > tbody > tr > td.info,\n-.wppm_bootstrap .table > tfoot > tr > td.info,\n-.wppm_bootstrap .table > thead > tr > th.info,\n-.wppm_bootstrap .table > tbody > tr > th.info,\n-.wppm_bootstrap .table > tfoot > tr > th.info,\n-.wppm_bootstrap .table > thead > tr.info > td,\n-.wppm_bootstrap .table > tbody > tr.info > td,\n-.wppm_bootstrap .table > tfoot > tr.info > td,\n-.wppm_bootstrap .table > thead > tr.info > th,\n-.wppm_bootstrap .table > tbody > tr.info > th,\n-.wppm_bootstrap .table > tfoot > tr.info > th {\n-  background-color: #d9edf7;\n-}\n-.wppm_bootstrap .table-hover > tbody > tr > td.info:hover,\n-.wppm_bootstrap .table-hover > tbody > tr > th.info:hover,\n-.wppm_bootstrap .table-hover > tbody > tr.info:hover > td,\n-.wppm_bootstrap .table-hover > tbody > tr:hover > .info,\n-.wppm_bootstrap .table-hover > tbody > tr.info:hover > th {\n-  background-color: #c4e3f3;\n-}\n-.wppm_bootstrap .table > thead > tr > td.warning,\n-.wppm_bootstrap .table > tbody > tr > td.warning,\n-.wppm_bootstrap .table > tfoot > tr > td.warning,\n-.wppm_bootstrap .table > thead > tr > th.warning,\n-.wppm_bootstrap .table > tbody > tr > th.warning,\n-.wppm_bootstrap .table > tfoot > tr > th.warning,\n-.wppm_bootstrap .table > thead > tr.warning > td,\n-.wppm_bootstrap .table > tbody > tr.warning > td,\n-.wppm_bootstrap .table > tfoot > tr.warning > td,\n-.wppm_bootstrap .table > thead > tr.warning > th,\n-.wppm_bootstrap .table > tbody > tr.warning > th,\n-.wppm_bootstrap .table > tfoot > tr.warning > th {\n-  background-color: #fcf8e3;\n-}\n-.wppm_bootstrap .table-hover > tbody > tr > td.warning:hover,\n-.wppm_bootstrap .table-hover > tbody > tr > th.warning:hover,\n-.wppm_bootstrap .table-hover > tbody > tr.warning:hover > td,\n-.wppm_bootstrap .table-hover > tbody > tr:hover > .warning,\n-.wppm_bootstrap .table-hover > tbody > tr.warning:hover > th {\n-  background-color: #faf2cc;\n-}\n-.wppm_bootstrap .table > thead > tr > td.danger,\n-.wppm_bootstrap .table > tbody > tr > td.danger,\n-.wppm_bootstrap .table > tfoot > tr > td.danger,\n-.wppm_bootstrap .table > thead > tr > th.danger,\n-.wppm_bootstrap .table > tbody > tr > th.danger,\n-.wppm_bootstrap .table > tfoot > tr > th.danger,\n-.wppm_bootstrap .table > thead > tr.danger > td,\n-.wppm_bootstrap .table > tbody > tr.danger > td,\n-.wppm_bootstrap .table > tfoot > tr.danger > td,\n-.wppm_bootstrap .table > thead > tr.danger > th,\n-.wppm_bootstrap .table > tbody > tr.danger > th,\n-.wppm_bootstrap .table > tfoot > tr.danger > th {\n-  background-color: #f2dede;\n-}\n-.wppm_bootstrap .table-hover > tbody > tr > td.danger:hover,\n-.wppm_bootstrap .table-hover > tbody > tr > th.danger:hover,\n-.wppm_bootstrap .table-hover > tbody > tr.danger:hover > td,\n-.wppm_bootstrap .table-hover > tbody > tr:hover > .danger,\n-.wppm_bootstrap .table-hover > tbody > tr.danger:hover > th {\n-  background-color: #ebcccc;\n-}\n-.wppm_bootstrap .table-responsive {\n-  min-height: .01%;\n-  overflow-x: auto;\n-}\n-\n-@media screen and (max-width: 767px) {\n-  .table-responsive {\n-    width: 100%;\n-    margin-bottom: 15px;\n-    overflow-y: hidden;\n-    -ms-overflow-style: -ms-autohiding-scrollbar;\n-    border: 1px solid #ddd;\n-  }\n-  .wppm_bootstrap .table-responsive > .table {\n-    margin-bottom: 0;\n-  }\n-  .wppm_bootstrap .table-responsive > .table > thead > tr > th,\n-  .wppm_bootstrap .table-responsive > .table > tbody > tr > th,\n-  .wppm_bootstrap .table-responsive > .table > tfoot > tr > th,\n-  .wppm_bootstrap .table-responsive > .table > thead > tr > td,\n-  .wppm_bootstrap .table-responsive > .table > tbody > tr > td,\n-  .wppm_bootstrap .table-responsive > .table > tfoot > tr > td {\n-    white-space: nowrap;\n-  }\n-  .wppm_bootstrap .table-responsive > .table-bordered {\n-    border: 0;\n-  }\n-  .wppm_bootstrap .table-responsive > .table-bordered > thead > tr > th:first-child,\n-  .wppm_bootstrap .table-responsive > .table-bordered > tbody > tr > th:first-child,\n-  .wppm_bootstrap .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n-  .wppm_bootstrap .table-responsive > .table-bordered > thead > tr > td:first-child,\n-  .wppm_bootstrap .table-responsive > .table-bordered > tbody > tr > td:first-child,\n-  .wppm_bootstrap .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n-    border-left: 0;\n-  }\n-  .wppm_bootstrap .table-responsive > .table-bordered > thead > tr > th:last-child,\n-  .wppm_bootstrap .table-responsive > .table-bordered > tbody > tr > th:last-child,\n-  .wppm_bootstrap .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n-  .wppm_bootstrap .table-responsive > .table-bordered > thead > tr > td:last-child,\n-  .wppm_bootstrap .table-responsive > .table-bordered > tbody > tr > td:last-child,\n-  .wppm_bootstrap .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n-    border-right: 0;\n-  }\n-  .wppm_bootstrap .table-responsive > .table-bordered > tbody > tr:last-child > th,\n-  .wppm_bootstrap .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n-  .wppm_bootstrap .table-responsive > .table-bordered > tbody > tr:last-child > td,\n-  .wppm_bootstrap .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n-    border-bottom: 0;\n-  }\n-}\n-.wppm_bootstrap fieldset {\n-  min-width: 0;\n-  padding: 0;\n-  margin: 0;\n-  border: 0;\n-}\n-.wppm_bootstrap legend {\n-  display: block;\n-  width: 100%;\n-  padding: 0;\n-  margin-bottom: 20px;\n-  font-size: 21px;\n-  line-height: inherit;\n-  color: #333;\n-  border: 0;\n-  border-bottom: 1px solid #e5e5e5;\n-}\n-.wppm_bootstrap label {\n-  display: inline-block;\n-  max-width: 100%;\n-  margin-bottom: 5px;\n-  font-weight: bold;\n-}\n-.wppm_bootstrap input[type=\"search\"] {\n-  -webkit-box-sizing: border-box;\n-     -moz-box-sizing: border-box;\n-          box-sizing: border-box;\n-}\n-.wppm_bootstrap input[type=\"radio\"],\n-.wppm_bootstrap input[type=\"checkbox\"] {\n-  margin: 4px 0 0;\n-  margin-top: 1px \\9;\n-  line-height: normal;\n-}\n-.wppm_bootstrap input[type=\"file\"] {\n-  display: block;\n-}\n-.wppm_bootstrap input[type=\"range\"] {\n-  display: block;\n-  width: 100%;\n-}\n-.wppm_bootstrap select[multiple],\n-.wppm_bootstrap select[size] {\n-  height: auto;\n-}\n-.wppm_bootstrap input[type=\"file\"]:focus,\n-.wppm_bootstrap input[type=\"radio\"]:focus,\n-.wppm_bootstrap input[type=\"checkbox\"]:focus {\n-  outline: 5px auto -webkit-focus-ring-color;\n-  outline-offset: -2px;\n-}\n-.wppm_bootstrap output {\n-  display: block;\n-  padding-top: 7px;\n-  font-size: 14px;\n-  line-height: 1.42857143;\n-  color: #555;\n-}\n-.wppm_bootstrap .form-control {\n-  display: block;\n-  width: 100%;\n-  height: 34px;\n-  padding: 6px 12px;\n-  font-size: 12px;\n-  line-height: 1.42857143;\n-  color: #555;\n-  background-color: #fff;\n-  background-image: none;\n-  border: 1px solid #ccc;\n-  border-radius: 4px;\n-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n-  -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n-       -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n-          transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n-}\n-.wppm_bootstrap .form-control:focus {\n-  border-color: #66afe9;\n-  outline: 0;\n-  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\n-          box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\n-}\n-.wppm_bootstrap .form-control::-moz-placeholder {\n-  color: #999;\n-  opacity: 1;\n-}\n-.wppm_bootstrap .form-control:-ms-input-placeholder {\n-  color: #999;\n-}\n-.wppm_bootstrap .form-control::-webkit-input-placeholder {\n-  color: #999;\n-}\n-.wppm_bootstrap .form-control::-ms-expand {\n-  background-color: transparent;\n-  border: 0;\n-}\n-.wppm_bootstrap .form-control[disabled],\n-.wppm_bootstrap .form-control[readonly],\n-.wppm_bootstrap fieldset[disabled] .form-control {\n-  background-color: #eee;\n-  opacity: 1;\n-}\n-.wppm_bootstrap .form-control[disabled],\n-.wppm_bootstrap fieldset[disabled] .form-control {\n-  cursor: not-allowed;\n-}\n-.wppm_bootstrap textarea.form-control {\n-  height: auto;\n-}\n-.wppm_bootstrap input[type=\"search\"] {\n-  -webkit-appearance: none;\n-}\n-@media screen and (-webkit-min-device-pixel-ratio: 0) {\n-  input[type=\"date\"].form-control,\n-  input[type=\"time\"].form-control,\n-  input[type=\"datetime-local\"].form-control,\n-  input[type=\"month\"].form-control {\n-    line-height: 34px;\n-  }\n-  input[type=\"date\"].input-sm,\n-  input[type=\"time\"].input-sm,\n-  input[type=\"datetime-local\"].input-sm,\n-  input[type=\"month\"].input-sm,\n-  .input-group-sm input[type=\"date\"],\n-  .input-group-sm input[type=\"time\"],\n-  .input-group-sm input[type=\"datetime-local\"],\n-  .input-group-sm input[type=\"month\"] {\n-    line-height: 30px;\n-  }\n-  input[type=\"date\"].input-lg,\n-  input[type=\"time\"].input-lg,\n-  input[type=\"datetime-local\"].input-lg,\n-  input[type=\"month\"].input-lg,\n-  .input-group-lg input[type=\"date\"],\n-  .input-group-lg input[type=\"time\"],\n-  .input-group-lg input[type=\"datetime-local\"],\n-  .input-group-lg input[type=\"month\"] {\n-    line-height: 46px;\n-  }\n-}\n-.wppm_bootstrap .form-group {\n-  margin-bottom: 15px;\n-}\n-.wppm_bootstrap .radio,\n-.wppm_bootstrap .checkbox {\n-  position: relative !important;\n-  display: block !important;\n-  margin-top: 10px !important;\n-  margin-bottom: 10px !important;\n-}\n-.wppm_bootstrap .radio label,\n-.wppm_bootstrap .checkbox label {\n-  min-height: 20px !important;\n-  padding-left: 20px !important;\n-  margin-bottom: 0 !important;\n-  font-weight: normal !important;\n-  cursor: pointer !important;\n-}\n-.wppm_bootstrap .radio input[type=\"radio\"],\n-.wppm_bootstrap .radio-inline input[type=\"radio\"],\n-.wppm_bootstrap .checkbox input[type=\"checkbox\"],\n-.wppm_bootstrap .checkbox-inline input[type=\"checkbox\"] {\n-  position: absolute;\n-  margin-top: 4px \\9;\n-  margin-left: -20px;\n-}\n-.wppm_bootstrap .radio + .radio,\n-.wppm_bootstrap .checkbox + .checkbox {\n-  margin-top: -5px;\n-}\n-.wppm_bootstrap .radio-inline,\n-.wppm_bootstrap .checkbox-inline {\n-  position: relative;\n-  display: inline-block;\n-  padding-left: 20px;\n-  margin-bottom: 0;\n-  font-weight: normal;\n-  vertical-align: middle;\n-  cursor: pointer;\n-}\n-.wppm_bootstrap .radio-inline + .radio-inline,\n-.wppm_bootstrap .checkbox-inline + .checkbox-inline {\n-  margin-top: 0;\n-  margin-left: 10px;\n-}\n-.wppm_bootstrap input[type=\"radio\"][disabled],\n-.wppm_bootstrap input[type=\"checkbox\"][disabled],\n-.wppm_bootstrap input[type=\"radio\"].disabled,\n-.wppm_bootstrap input[type=\"checkbox\"].disabled,\n-.wppm_bootstrap fieldset[disabled] input[type=\"radio\"],\n-.wppm_bootstrap fieldset[disabled] input[type=\"checkbox\"] {\n-  cursor: not-allowed;\n-}\n-.wppm_bootstrap .radio-inline.disabled,\n-.wppm_bootstrap .checkbox-inline.disabled,\n-.wppm_bootstrap fieldset[disabled] .radio-inline,\n-.wppm_bootstrap fieldset[disabled] .checkbox-inline {\n-  cursor: not-allowed;\n-}\n-.wppm_bootstrap .radio.disabled label,\n-.wppm_bootstrap .checkbox.disabled label,\n-.wppm_bootstrap fieldset[disabled] .radio label,\n-.wppm_bootstrap fieldset[disabled] .checkbox label {\n-  cursor: not-allowed;\n-}\n-.wppm_bootstrap .form-control-static {\n-  min-height: 34px;\n-  padding-top: 7px;\n-  padding-bottom: 7px;\n-  margin-bottom: 0;\n-}\n-.wppm_bootstrap .form-control-static.input-lg,\n-.wppm_bootstrap .form-control-static.input-sm {\n-  padding-right: 0;\n-  padding-left: 0;\n-}\n-.wppm_bootstrap .input-sm {\n-  height: 30px;\n-  padding: 5px 10px;\n-  font-size: 12px;\n-  line-height: 1.5;\n-  border-radius: 3px;\n-}\n-.wppm_bootstrap select.input-sm {\n-  height: 30px;\n-  line-height: 30px;\n-}\n-.wppm_bootstrap textarea.input-sm,\n-.wppm_bootstrap select[multiple].input-sm {\n-  height: auto;\n-}\n-.wppm_bootstrap .form-group-sm .form-control {\n-  height: 30px;\n-  padding: 5px 10px;\n-  font-size: 12px;\n-  line-height: 1.5;\n-  border-radius: 3px;\n-}\n-.wppm_bootstrap .form-group-sm select.form-control {\n-  height: 30px;\n-  line-height: 30px;\n-}\n-.wppm_bootstrap .form-group-sm textarea.form-control,\n-.wppm_bootstrap .form-group-sm select[multiple].form-control {\n-  height: auto;\n-}\n-.wppm_bootstrap .form-group-sm .form-control-static {\n-  height: 30px;\n-  min-height: 32px;\n-  padding: 6px 10px;\n-  font-size: 12px;\n-  line-height: 1.5;\n-}\n-.wppm_bootstrap .input-lg {\n-  height: 46px;\n-  padding: 10px 16px;\n-  font-size: 18px;\n-  line-height: 1.3333333;\n-  border-radius: 6px;\n-}\n-.wppm_bootstrap select.input-lg {\n-  height: 46px;\n-  line-height: 46px;\n-}\n-.wppm_bootstrap textarea.input-lg,\n-.wppm_bootstrap select[multiple].input-lg {\n-  height: auto;\n-}\n-.wppm_bootstrap .form-group-lg .form-control {\n-  height: 46px;\n-  padding: 10px 16px;\n-  font-size: 18px;\n-  line-height: 1.3333333;\n-  border-radius: 6px;\n-}\n-.wppm_bootstrap .form-group-lg select.form-control {\n-  height: 46px;\n-  line-height: 46px;\n-}\n-.wppm_bootstrap .form-group-lg textarea.form-control,\n-.wppm_bootstrap .form-group-lg select[multiple].form-control {\n-  height: auto;\n-}\n-.wppm_bootstrap .form-group-lg .form-control-static {\n-  height: 46px;\n-  min-height: 38px;\n-  padding: 11px 16px;\n-  font-size: 18px;\n-  line-height: 1.3333333;\n-}\n-.wppm_bootstrap .has-feedback {\n-  position: relative;\n-}\n-.wppm_bootstrap .has-feedback .form-control {\n-  padding-right: 42.5px;\n-}\n-.wppm_bootstrap .form-control-feedback {\n-  position: absolute;\n-  top: 0;\n-  right: 0;\n-  z-index: 2;\n-  display: block;\n-  width: 34px;\n-  height: 34px;\n-  line-height: 34px;\n-  text-align: center;\n-  pointer-events: none;\n-}\n-.wppm_bootstrap .input-lg + .form-control-feedback,\n-.wppm_bootstrap .input-group-lg + .form-control-feedback,\n-.wppm_bootstrap .form-group-lg .form-control + .form-control-feedback {\n-  width: 46px;\n-  height: 46px;\n-  line-height: 46px;\n-}\n-.wppm_bootstrap .input-sm + .form-control-feedback,\n-.wppm_bootstrap .input-group-sm + .form-control-feedback,\n-.wppm_bootstrap .form-group-sm .form-control + .form-control-feedback {\n-  width: 30px;\n-  height: 30px;\n-  line-height: 30px;\n-}\n-.wppm_bootstrap .has-success .help-block,\n-.wppm_bootstrap .has-success .control-label,\n-.wppm_bootstrap .has-success .radio,\n-.wppm_bootstrap .has-success .checkbox,\n-.wppm_bootstrap .has-success .radio-inline,\n-.wppm_bootstrap .has-success .checkbox-inline,\n-.wppm_bootstrap .has-success.radio label,\n-.wppm_bootstrap .has-success.checkbox label,\n-.wppm_bootstrap .has-success.radio-inline label,\n-.wppm_bootstrap .has-success.checkbox-inline label {\n-  color: #3c763d;\n-}\n-.wppm_bootstrap .has-success .form-control {\n-  border-color: #3c763d;\n-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n-}\n-.wppm_bootstrap .has-success .form-control:focus {\n-  border-color: #2b542c;\n-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\n-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\n-}\n-.wppm_bootstrap .has-success .input-group-addon {\n-  color: #3c763d;\n-  background-color: #dff0d8;\n-  border-color: #3c763d;\n-}\n-.wppm_bootstrap .has-success .form-control-feedback {\n-  color: #3c763d;\n-}\n-.wppm_bootstrap .has-warning .help-block,\n-.wppm_bootstrap .has-warning .control-label,\n-.wppm_bootstrap .has-warning .radio,\n-.wppm_bootstrap .has-warning .checkbox,\n-.wppm_bootstrap .has-warning .radio-inline,\n-.wppm_bootstrap .has-warning .checkbox-inline,\n-.wppm_bootstrap .has-warning.radio label,\n-.wppm_bootstrap .has-warning.checkbox label,\n-.wppm_bootstrap .has-warning.radio-inline label,\n-.wppm_bootstrap .has-warning.checkbox-inline label {\n-  color: #8a6d3b;\n-}\n-.wppm_bootstrap .has-warning .form-control {\n-  border-color: #8a6d3b;\n-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n-}\n-.wppm_bootstrap .has-warning .form-control:focus {\n-  border-color: #66512c;\n-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\n-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\n-}\n-.wppm_bootstrap .has-warning .input-group-addon {\n-  color: #8a6d3b;\n-  background-color: #fcf8e3;\n-  border-color: #8a6d3b;\n-}\n-.wppm_bootstrap .has-warning .form-control-feedback {\n-  color: #8a6d3b;\n-}\n-.wppm_bootstrap .has-error .help-block,\n-.wppm_bootstrap .has-error .control-label,\n-.wppm_bootstrap .has-error .radio,\n-.wppm_bootstrap .has-error .checkbox,\n-.wppm_bootstrap .has-error .radio-inline,\n-.wppm_bootstrap .has-error .checkbox-inline,\n-.wppm_bootstrap .has-error.radio label,\n-.wppm_bootstrap .has-error.checkbox label,\n-.wppm_bootstrap .has-error.radio-inline label,\n-.wppm_bootstrap .has-error.checkbox-inline label {\n-  color: #a94442;\n-}\n-.wppm_bootstrap .has-error .form-control {\n-  border-color: #a94442;\n-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n-}\n-.wppm_bootstrap .has-error .form-control:focus {\n-  border-color: #843534;\n-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\n-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\n-}\n-.wppm_bootstrap .has-error .input-group-addon {\n-  color: #a94442;\n-  background-color: #f2dede;\n-  border-color: #a94442;\n-}\n-.wppm_bootstrap .has-error .form-control-feedback {\n-  color: #a94442;\n-}\n-.wppm_bootstrap .has-feedback label ~ .form-control-feedback {\n-  top: 25px;\n-}\n-.wppm_bootstrap .has-feedback label.sr-only ~ .form-control-feedback {\n-  top: 0;\n-}\n-.wppm_bootstrap .help-block {\n-  display: block;\n-  margin-top: 5px;\n-  margin-bottom: 10px;\n-  color: #737373;\n-}\n-@media (min-width: 768px) {\n-  .form-inline .form-group {\n-    display: inline-block;\n-    margin-bottom: 0;\n-    vertical-align: middle;\n-  }\n-  .wppm_bootstrap .form-inline .form-control {\n-    display: inline-block;\n-    width: auto;\n-    vertical-align: middle;\n-  }\n-  .wppm_bootstrap .form-inline .form-control-static {\n-    display: inline-block;\n-  }\n-  .wppm_bootstrap .form-inline .input-group {\n-    display: inline-table;\n-    vertical-align: middle;\n-  }\n-  .wppm_bootstrap .form-inline .input-group .input-group-addon,\n-  .wppm_bootstrap .form-inline .input-group .input-group-btn,\n-  .wppm_bootstrap .form-inline .input-group .form-control {\n-    width: auto;\n-  }\n-  .wppm_bootstrap .form-inline .input-group > .form-control {\n-    width: 100%;\n-  }\n-  .wppm_bootstrap .form-inline .control-label {\n-    margin-bottom: 0;\n-    vertical-align: middle;\n-  }\n-  .wppm_bootstrap .form-inline .radio,\n-  .wppm_bootstrap .form-inline .checkbox {\n-    display: inline-block;\n-    margin-top: 0;\n-    margin-bottom: 0;\n-    vertical-align: middle;\n-  }\n-  .wppm_bootstrap .form-inline .radio label,\n-  .wppm_bootstrap .form-inline .checkbox label {\n-    padding-left: 0;\n-  }\n-  .wppm_bootstrap .form-inline .radio input[type=\"radio\"],\n-  .wppm_bootstrap .form-inline .checkbox input[type=\"checkbox\"] {\n-    position: relative;\n-    margin-left: 0;\n-  }\n-  .wppm_bootstrap .form-inline .has-feedback .form-control-feedback {\n-    top: 0;\n-  }\n-}\n-.wppm_bootstrap .form-horizontal .radio,\n-.wppm_bootstrap .form-horizontal .checkbox,\n-.wppm_bootstrap .form-horizontal .radio-inline,\n-.wppm_bootstrap .form-horizontal .checkbox-inline {\n-  padding-top: 7px;\n-  margin-top: 0;\n-  margin-bottom: 0;\n-}\n-.wppm_bootstrap .form-horizontal .radio,\n-.wppm_bootstrap .form-horizontal .checkbox {\n-  min-height: 27px;\n-}\n-.wppm_bootstrap .form-horizontal .form-group {\n-  margin-right: -15px;\n-  margin-left: -15px;\n-}\n-@media (min-width: 768px) {\n-  .form-horizontal .control-label {\n-    padding-top: 7px;\n-    margin-bottom: 0;\n-    text-align: right;\n-  }\n-}\n-.wppm_bootstrap .form-horizontal .has-feedback .form-control-feedback {\n-  right: 15px;\n-}\n-@media (min-width: 768px) {\n-  .form-horizontal .form-group-lg .control-label {\n-    padding-top: 11px;\n-    font-size: 18px;\n-  }\n-}\n-@media (min-width: 768px) {\n-  .form-horizontal .form-group-sm .control-label {\n-    padding-top: 6px;\n-    font-size: 12px;\n-  }\n-}\n-.wppm_bootstrap .btn {\n-  display: inline-block;\n-  padding: 6px 12px;\n-  margin-bottom: 0;\n-  font-size: 14px;\n-  font-weight: normal;\n-  line-height: 1.42857143;\n-  text-align: center;\n-  white-space: nowrap;\n-  vertical-align: middle;\n-  -ms-touch-action: manipulation;\n-      touch-action: manipulation;\n-  cursor: pointer;\n-  -webkit-user-select: none;\n-     -moz-user-select: none;\n-      -ms-user-select: none;\n-          user-select: none;\n-  background-image: none;\n-  border: 1px solid transparent;\n-  border-radius: 4px;\n-}\n-.wppm_bootstrap .btn:focus,\n-.wppm_bootstrap .btn:active:focus,\n-.wppm_bootstrap .btn.active:focus,\n-.wppm_bootstrap .btn.focus,\n-.wppm_bootstrap .btn:active.focus,\n-.wppm_bootstrap .btn.active.focus {\n-  outline: 5px auto -webkit-focus-ring-color;\n-  outline-offset: -2px;\n-}\n-.wppm_bootstrap .btn:hover,\n-.wppm_bootstrap .btn:focus,\n-.wppm_bootstrap .btn.focus {\n-  color: #333;\n-  text-decoration: none;\n-}\n-.wppm_bootstrap .btn:active,\n-.wppm_bootstrap .btn.active {\n-  background-image: none;\n-  outline: 0;\n-  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n-          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n-}\n-.wppm_bootstrap .btn.disabled,\n-.wppm_bootstrap .btn[disabled],\n-.wppm_bootstrap fieldset[disabled] .btn {\n-  cursor: not-allowed;\n-  filter: alpha(opacity=65);\n-  -webkit-box-shadow: none;\n-          box-shadow: none;\n-  opacity: .65;\n-}\n-.wppm_bootstrap a.btn.disabled,\n-.wppm_bootstrap fieldset[disabled] a.btn {\n-  pointer-events: none;\n-}\n-.wppm_bootstrap .btn-default {\n-  color: #333;\n-  background-color: #fff;\n-  border-color: #ccc;\n-}\n-.wppm_bootstrap .btn-default:focus,\n-.wppm_bootstrap .btn-default.focus {\n-  color: #333;\n-  background-color: #e6e6e6;\n-  border-color: #8c8c8c;\n-}\n-.wppm_bootstrap .btn-default:hover {\n-  color: #333;\n-  background-color: #e6e6e6;\n-  border-color: #adadad;\n-}\n-.wppm_bootstrap .btn-default:active,\n-.wppm_bootstrap .btn-default.active,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-default {\n-  color: #333;\n-  background-color: #e6e6e6;\n-  border-color: #adadad;\n-}\n-.wppm_bootstrap .btn-default:active:hover,\n-.wppm_bootstrap .btn-default.active:hover,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-default:hover,\n-.wppm_bootstrap .btn-default:active:focus,\n-.wppm_bootstrap .btn-default.active:focus,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-default:focus,\n-.wppm_bootstrap .btn-default:active.focus,\n-.wppm_bootstrap .btn-default.active.focus,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-default.focus {\n-  color: #333;\n-  background-color: #d4d4d4;\n-  border-color: #8c8c8c;\n-}\n-.wppm_bootstrap .btn-default:active,\n-.wppm_bootstrap .btn-default.active,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-default {\n-  background-image: none;\n-}\n-.wppm_bootstrap .btn-default.disabled:hover,\n-.wppm_bootstrap .btn-default[disabled]:hover,\n-.wppm_bootstrap fieldset[disabled] .btn-default:hover,\n-.wppm_bootstrap .btn-default.disabled:focus,\n-.wppm_bootstrap .btn-default[disabled]:focus,\n-.wppm_bootstrap fieldset[disabled] .btn-default:focus,\n-.wppm_bootstrap .btn-default.disabled.focus,\n-.wppm_bootstrap .btn-default[disabled].focus,\n-.wppm_bootstrap fieldset[disabled] .btn-default.focus {\n-  background-color: #fff;\n-  border-color: #ccc;\n-}\n-.wppm_bootstrap .btn-default .badge {\n-  color: #fff;\n-  background-color: #333;\n-}\n-.wppm_bootstrap .btn-primary {\n-  color: #fff;\n-  \u002F* background-color: #337ab7; *\u002F\n-  background-color: #0052CC;\n-  border-color: #2e6da4;\n-}\n-.wppm_bootstrap .btn-primary:focus,\n-.wppm_bootstrap .btn-primary.focus {\n-  color: #fff;\n-  background-color: #286090;\n-  border-color: #122b40;\n-}\n-.wppm_bootstrap .btn-primary:hover {\n-  color: #fff;\n-  \u002F* background-color: #286090; *\u002F\n-  background-color: #0065ff;\n-  border-color: #204d74;\n-}\n-.wppm_bootstrap .btn-primary:active,\n-.wppm_bootstrap .btn-primary.active,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-primary {\n-  color: #fff;\n-  background-color: #286090;\n-  border-color: #204d74;\n-}\n-.wppm_bootstrap .btn-primary:active:hover,\n-.wppm_bootstrap .btn-primary.active:hover,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-primary:hover,\n-.wppm_bootstrap .btn-primary:active:focus,\n-.wppm_bootstrap .btn-primary.active:focus,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-primary:focus,\n-.wppm_bootstrap .btn-primary:active.focus,\n-.wppm_bootstrap .btn-primary.active.focus,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-primary.focus {\n-  color: #fff;\n-  background-color: #204d74;\n-  border-color: #122b40;\n-}\n-.wppm_bootstrap .btn-primary:active,\n-.wppm_bootstrap .btn-primary.active,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-primary {\n-  background-image: none;\n-}\n-.wppm_bootstrap .btn-primary.disabled:hover,\n-.wppm_bootstrap .btn-primary[disabled]:hover,\n-.wppm_bootstrap fieldset[disabled] .btn-primary:hover,\n-.wppm_bootstrap .btn-primary.disabled:focus,\n-.wppm_bootstrap .btn-primary[disabled]:focus,\n-.wppm_bootstrap fieldset[disabled] .btn-primary:focus,\n-.wppm_bootstrap .btn-primary.disabled.focus,\n-.wppm_bootstrap .btn-primary[disabled].focus,\n-.wppm_bootstrap fieldset[disabled] .btn-primary.focus {\n-  background-color: #337ab7;\n-  border-color: #2e6da4;\n-}\n-.wppm_bootstrap .btn-primary .badge {\n-  color: #337ab7;\n-  background-color: #fff;\n-}\n-.wppm_bootstrap .btn-success {\n-  color: #fff;\n-  background-color: #5cb85c;\n-  border-color: #4cae4c;\n-}\n-.wppm_bootstrap .btn-success:focus,\n-.wppm_bootstrap .btn-success.focus {\n-  color: #fff;\n-  background-color: #449d44;\n-  border-color: #255625;\n-}\n-.wppm_bootstrap .btn-success:hover {\n-  color: #fff;\n-  background-color: #449d44;\n-  border-color: #398439;\n-}\n-.wppm_bootstrap .btn-success:active,\n-.wppm_bootstrap .btn-success.active,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-success {\n-  color: #fff;\n-  background-color: #449d44;\n-  border-color: #398439;\n-}\n-.wppm_bootstrap .btn-success:active:hover,\n-.wppm_bootstrap .btn-success.active:hover,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-success:hover,\n-.wppm_bootstrap .btn-success:active:focus,\n-.wppm_bootstrap .btn-success.active:focus,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-success:focus,\n-.wppm_bootstrap .btn-success:active.focus,\n-.wppm_bootstrap .btn-success.active.focus,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-success.focus {\n-  color: #fff;\n-  background-color: #398439;\n-  border-color: #255625;\n-}\n-.wppm_bootstrap .btn-success:active,\n-.wppm_bootstrap .btn-success.active,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-success {\n-  background-image: none;\n-}\n-.wppm_bootstrap .btn-success.disabled:hover,\n-.wppm_bootstrap .btn-success[disabled]:hover,\n-.wppm_bootstrap fieldset[disabled] .btn-success:hover,\n-.wppm_bootstrap .btn-success.disabled:focus,\n-.wppm_bootstrap .btn-success[disabled]:focus,\n-.wppm_bootstrap fieldset[disabled] .btn-success:focus,\n-.wppm_bootstrap .btn-success.disabled.focus,\n-.wppm_bootstrap .btn-success[disabled].focus,\n-.wppm_bootstrap fieldset[disabled] .btn-success.focus {\n-  background-color: #5cb85c;\n-  border-color: #4cae4c;\n-}\n-.wppm_bootstrap .btn-success .badge {\n-  color: #5cb85c;\n-  background-color: #fff;\n-}\n-.wppm_bootstrap .btn-info {\n-  color: #fff;\n-  background-color: #5bc0de;\n-  border-color: #46b8da;\n-}\n-.wppm_bootstrap .btn-info:focus,\n-.wppm_bootstrap .btn-info.focus {\n-  color: #fff;\n-  background-color: #31b0d5;\n-  border-color: #1b6d85;\n-}\n-.wppm_bootstrap .btn-info:hover {\n-  color: #fff;\n-  background-color: #31b0d5;\n-  border-color: #269abc;\n-}\n-.wppm_bootstrap .btn-info:active,\n-.wppm_bootstrap .btn-info.active,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-info {\n-  color: #fff;\n-  background-color: #31b0d5;\n-  border-color: #269abc;\n-}\n-.wppm_bootstrap .btn-info:active:hover,\n-.wppm_bootstrap .btn-info.active:hover,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-info:hover,\n-.wppm_bootstrap .btn-info:active:focus,\n-.wppm_bootstrap .btn-info.active:focus,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-info:focus,\n-.wppm_bootstrap .btn-info:active.focus,\n-.wppm_bootstrap .btn-info.active.focus,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-info.focus {\n-  color: #fff;\n-  background-color: #269abc;\n-  border-color: #1b6d85;\n-}\n-.wppm_bootstrap .btn-info:active,\n-.wppm_bootstrap .btn-info.active,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-info {\n-  background-image: none;\n-}\n-.wppm_bootstrap .btn-info.disabled:hover,\n-.wppm_bootstrap .btn-info[disabled]:hover,\n-.wppm_bootstrap fieldset[disabled] .btn-info:hover,\n-.wppm_bootstrap .btn-info.disabled:focus,\n-.wppm_bootstrap .btn-info[disabled]:focus,\n-.wppm_bootstrap fieldset[disabled] .btn-info:focus,\n-.wppm_bootstrap .btn-info.disabled.focus,\n-.wppm_bootstrap .btn-info[disabled].focus,\n-.wppm_bootstrap fieldset[disabled] .btn-info.focus {\n-  background-color: #5bc0de;\n-  border-color: #46b8da;\n-}\n-.wppm_bootstrap .btn-info .badge {\n-  color: #5bc0de;\n-  background-color: #fff;\n-}\n-.wppm_bootstrap .btn-warning {\n-  color: #fff;\n-  background-color: #f0ad4e;\n-  border-color: #eea236;\n-}\n-.wppm_bootstrap .btn-warning:focus,\n-.wppm_bootstrap .btn-warning.focus {\n-  color: #fff;\n-  background-color: #ec971f;\n-  border-color: #985f0d;\n-}\n-.wppm_bootstrap .btn-warning:hover {\n-  color: #fff;\n-  background-color: #ec971f;\n-  border-color: #d58512;\n-}\n-.wppm_bootstrap .btn-warning:active,\n-.wppm_bootstrap .btn-warning.active,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-warning {\n-  color: #fff;\n-  background-color: #ec971f;\n-  border-color: #d58512;\n-}\n-.wppm_bootstrap .btn-warning:active:hover,\n-.wppm_bootstrap .btn-warning.active:hover,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-warning:hover,\n-.wppm_bootstrap .btn-warning:active:focus,\n-.wppm_bootstrap .btn-warning.active:focus,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-warning:focus,\n-.wppm_bootstrap btn-warning:active.focus,\n-.wppm_bootstrap .btn-warning.active.focus,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-warning.focus {\n-  color: #fff;\n-  background-color: #d58512;\n-  border-color: #985f0d;\n-}\n-.wppm_bootstrap .btn-warning:active,\n-.wppm_bootstrap .btn-warning.active,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-warning {\n-  background-image: none;\n-}\n-.wppm_bootstrap .btn-warning.disabled:hover,\n-.wppm_bootstrap .btn-warning[disabled]:hover,\n-.wppm_bootstrap fieldset[disabled] .btn-warning:hover,\n-.wppm_bootstrap .btn-warning.disabled:focus,\n-.wppm_bootstrap .btn-warning[disabled]:focus,\n-.wppm_bootstrap fieldset[disabled] .btn-warning:focus,\n-.wppm_bootstrap .btn-warning.disabled.focus,\n-.wppm_bootstrap .btn-warning[disabled].focus,\n-.wppm_bootstrap fieldset[disabled] .btn-warning.focus {\n-  background-color: #f0ad4e;\n-  border-color: #eea236;\n-}\n-.wppm_bootstrap .btn-warning .badge {\n-  color: #f0ad4e;\n-  background-color: #fff;\n-}\n-.wppm_bootstrap .btn-danger {\n-  color: #fff;\n-  background-color: #d9534f;\n-  border-color: #d43f3a;\n-}\n-.wppm_bootstrap .btn-danger:focus,\n-.wppm_bootstrap .btn-danger.focus {\n-  color: #fff;\n-  background-color: #c9302c;\n-  border-color: #761c19;\n-}\n-.wppm_bootstrap .btn-danger:hover {\n-  color: #fff;\n-  background-color: #c9302c;\n-  border-color: #ac2925;\n-}\n-.wppm_bootstrap .btn-danger:active,\n-.wppm_bootstrap .btn-danger.active,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-danger {\n-  color: #fff;\n-  background-color: #c9302c;\n-  border-color: #ac2925;\n-}\n-.wppm_bootstrap .btn-danger:active:hover,\n-.wppm_bootstrap .btn-danger.active:hover,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-danger:hover,\n-.wppm_bootstrap .btn-danger:active:focus,\n-.wppm_bootstrap .btn-danger.active:focus,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-danger:focus,\n-.wppm_bootstrap .btn-danger:active.focus,\n-.wppm_bootstrap .btn-danger.active.focus,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-danger.focus {\n-  color: #fff;\n-  background-color: #ac2925;\n-  border-color: #761c19;\n-}\n-.wppm_bootstrap .btn-danger:active,\n-.wppm_bootstrap .btn-danger.active,\n-.wppm_bootstrap .open > .dropdown-toggle.btn-danger {\n-  background-image: none;\n-}\n-.wppm_bootstrap .btn-danger.disabled:hover,\n-.wppm_bootstrap .btn-danger[disabled]:hover,\n-.wppm_bootstrap fieldset[disabled] .btn-danger:hover,\n-.wppm_bootstrap .btn-danger.disabled:focus,\n-.wppm_bootstrap .btn-danger[disabled]:focus,\n-.wppm_bootstrap fieldset[disabled] .btn-danger:focus,\n-.wppm_bootstrap .btn-danger.disabled.focus,\n-.wppm_bootstrap .btn-danger[disabled].focus,\n-.wppm_bootstrap fieldset[disabled] .btn-danger.focus {\n-  background-color: #d9534f;\n-  border-color: #d43f3a;\n-}\n-.wppm_bootstrap .btn-danger .badge {\n-  color: #d9534f;\n-  background-color: #fff;\n-}\n-.wppm_bootstrap .btn-link {\n-  font-weight: normal;\n-  color: #337ab7;\n-  border-radius: 0;\n-}\n-.wppm_bootstrap .btn-link,\n-.wppm_bootstrap .btn-link:active,\n-.wppm_bootstrap .btn-link.active,\n-.wppm_bootstrap .btn-link[disabled],\n-.wppm_bootstrap fieldset[disabled] .btn-link {\n-  background-color: transparent;\n-  -webkit-box-shadow: none;\n-          box-shadow: none;\n-}\n-.wppm_bootstrap .btn-link,\n-.wppm_bootstrap .btn-link:hover,\n-.wppm_bootstrap .btn-link:focus,\n-.wppm_bootstrap .btn-link:active {\n-  border-color: transparent;\n-}\n-.wppm_bootstrap .btn-link:hover,\n-.wppm_bootstrap .btn-link:focus {\n-  color: #23527c;\n-  text-decoration: underline;\n-  background-color: transparent;\n-}\n-.wppm_bootstrap .btn-link[disabled]:hover,\n-.wppm_bootstrap fieldset[disabled] .btn-link:hover,\n-.wppm_bootstrap .btn-link[disabled]:focus,\n-.wppm_bootstrap fieldset[disabled] .btn-link:focus {\n-  color: #777;\n-  text-decoration: none;\n-}\n-.wppm_bootstrap .btn-lg,\n-.wppm_bootstrap .btn-group-lg > .btn {\n-  padding: 10px 16px;\n-  font-size: 18px;\n-  line-height: 1.3333333;\n-  border-radius: 6px;\n-}\n-.wppm_bootstrap .btn-sm,\n-.wppm_bootstrap .btn-group-sm > .btn {\n-  padding: 5px 10px;\n-  font-size: 12px;\n-  line-height: 1.5;\n-  border-radius: 3px;\n-}\n-.wppm_bootstrap .btn-xs,\n-.wppm_bootstrap .btn-group-xs > .btn {\n-  padding: 1px 5px;\n-  font-size: 12px;\n-  line-height: 1.5;\n-  border-radius: 3px;\n-}\n-.wppm_bootstrap .btn-block {\n-  display: block;\n-  width: 100%;\n-}\n-.wppm_bootstrap .btn-block + .btn-block {\n-  margin-top: 5px;\n-}\n-.wppm_bootstrap input[type=\"submit\"].btn-block,\n-.wppm_bootstrap input[type=\"reset\"].btn-block,\n-.wppm_bootstrap input[type=\"button\"].btn-block {\n-  width: 100%;\n-}\n-.wppm_bootstrap .fade {\n-  opacity: 0;\n-  -webkit-transition: opacity .15s linear;\n-       -o-transition: opacity .15s linear;\n-          transition: opacity .15s linear;\n-}\n-.wppm_bootstrap .fade.in {\n-  opacity: 1;\n-}\n-.wppm_bootstrap .collapse {\n-  display: none;\n-}\n-.wppm_bootstrap .collapse.in {\n-  display: block;\n-}\n-.wppm_bootstrap tr.collapse.in {\n-  display: table-row;\n-}\n-.wppm_bootstrap tbody.collapse.in {\n-  display: table-row-group;\n-}\n-.wppm_bootstrap .collapsing {\n-  position: relative;\n-  height: 0;\n-  overflow: hidden;\n-  -webkit-transition-timing-function: ease;\n-       -o-transition-timing-function: ease;\n-          transition-timing-function: ease;\n-  -webkit-transition-duration: .35s;\n-       -o-transition-duration: .35s;\n-          transition-duration: .35s;\n-  -webkit-transition-property: height, visibility;\n-       -o-transition-property: height, visibility;\n-          transition-property: height, visibility;\n-}\n-.wppm_bootstrap .caret {\n-  display: inline-block;\n-  width: 0;\n-  height: 0;\n-  margin-left: 2px;\n-  vertical-align: middle;\n-  border-top: 4px dashed;\n-  border-top: 4px solid \\9;\n-  border-right: 4px solid transparent;\n-  border-left: 4px solid transparent;\n-}\n-.wppm_bootstrap .dropup,\n-.wppm_bootstrap .dropdown {\n-  position: relative;\n-}\n-.wppm_bootstrap .dropdown-toggle:focus {\n-  outline: 0;\n-}\n-.wppm_bootstrap .dropdown-menu {\n-  position: absolute;\n-  top: 100%;\n-  left: 0;\n-  z-index: 1000;\n-  display: none;\n-  float: left;\n-  min-width: 160px;\n-  padding: 5px 0;\n-  margin: 2px 0 0;\n-  font-size: 14px;\n-  text-align: left;\n-  list-style: none;\n-  background-color: #fff;\n-  -webkit-background-clip: padding-box;\n-          background-clip: padding-box;\n-  border: 1px solid #ccc;\n-  border: 1px solid rgba(0, 0, 0, .15);\n-  border-radius: 4px;\n-  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\n-          box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\n-}\n-.wppm_bootstrap .dropdown-menu.pull-right {\n-  right: 0;\n-  left: auto;\n-}\n-.wppm_bootstrap .dropdown-menu .divider {\n-  height: 1px;\n-  margin: 9px 0;\n-  overflow: hidden;\n-  background-color: #e5e5e5;\n-}\n-.wppm_bootstrap .dropdown-menu > li > a {\n-  display: block;\n-  padding: 3px 20px;\n-  clear: both;\n-  font-weight: normal;\n-  line-height: 1.42857143;\n-  color: #333;\n-  white-space: nowrap;\n-}\n-.wppm_bootstrap .dropdown-menu > li > a:hover,\n-.wppm_bootstrap .dropdown-menu > li > a:focus {\n-  color: #262626;\n-  text-decoration: none;\n-  background-color: #f5f5f5;\n-}\n-.wppm_bootstrap .dropdown-menu > .active > a,\n-.wppm_bootstrap .dropdown-menu > .active > a:hover,\n-.wppm_bootstrap .dropdown-menu > .active > a:focus {\n-  color: #fff;\n-  text-decoration: none;\n-  background-color: #337ab7;\n-  outline: 0;\n-}\n-.wppm_bootstrap .dropdown-menu > .disabled > a,\n-.wppm_bootstrap .dropdown-menu > .disabled > a:hover,\n-.wppm_bootstrap .dropdown-menu > .disabled > a:focus {\n-  color: #777;\n-}\n-.wppm_bootstrap .dropdown-menu > .disabled > a:hover,\n-.wppm_bootstrap .dropdown-menu > .disabled > a:focus {\n-  text-decoration: none;\n-  cursor: not-allowed;\n-  background-color: transparent;\n-  background-image: none;\n-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n-}\n-.wppm_bootstrap .open > .dropdown-menu {\n-  display: block;\n-}\n-.wppm_bootstrap .open > a {\n-  outline: 0;\n-}\n-.wppm_bootstrap .dropdown-menu-right {\n-  right: 0;\n-  left: auto;\n-}\n-.wppm_bootstrap .dropdown-menu-left {\n-  right: auto;\n-  left: 0;\n-}\n-.wppm_bootstrap .dropdown-header {\n-  display: block;\n-  padding: 3px 20px;\n-  font-size: 12px;\n-  line-height: 1.42857143;\n-  color: #777;\n-  white-space: nowrap;\n-}\n-.wppm_bootstrap .dropdown-backdrop {\n-  position: fixed;\n-  top: 0;\n-  right: 0;\n-  bottom: 0;\n-  left: 0;\n-  z-index: 990;\n-}\n-.wppm_bootstrap .pull-right > .dropdown-menu {\n-  right: 0;\n-  left: auto;\n-}\n-.wppm_bootstrap .dropup .caret,\n-.wppm_bootstrap .navbar-fixed-bottom .dropdown .caret {\n-  content: \"\";\n-  border-top: 0;\n-  border-bottom: 4px dashed;\n-  border-bottom: 4px solid \\9;\n-}\n-.wppm_bootstrap .dropup .dropdown-menu,\n-.wppm_bootstrap .navbar-fixed-bottom .dropdown .dropdown-menu {\n-  top: auto;\n-  bottom: 100%;\n-  margin-bottom: 2px;\n-}\n-@media (min-width: 768px) {\n-  .navbar-right .dropdown-menu {\n-    right: 0;\n-    left: auto;\n-  }\n-  .navbar-right .dropdown-menu-left {\n-    right: auto;\n-    left: 0;\n-  }\n-}\n-.wppm_bootstrap .btn-group,\n-.wppm_bootstrap .btn-group-vertical {\n-  position: relative;\n-  display: inline-block;\n-  vertical-align: middle;\n-}\n-.wppm_bootstrap .btn-group > .btn,\n-.wppm_bootstrap .btn-group-vertical > .btn {\n-  position: relative;\n-  float: left;\n-}\n-.wppm_bootstrap .btn-group > .btn:hover,\n-.wppm_bootstrap .btn-group-vertical > .btn:hover,\n-.wppm_bootstrap .btn-group > .btn:focus,\n-.wppm_bootstrap .btn-group-vertical > .btn:focus,\n-.wppm_bootstrap .btn-group > .btn:active,\n-.wppm_bootstrap .btn-group-vertical > .btn:active,\n-.wppm_bootstrap .btn-group > .btn.active,\n-.wppm_bootstrap .btn-group-vertical > .btn.active {\n-  z-index: 2;\n-}\n-.wppm_bootstrap .btn-group .btn + .btn,\n-.wppm_bootstrap .btn-group .btn + .btn-group,\n-.wppm_bootstrap .btn-group .btn-group + .btn,\n-.wppm_bootstrap .btn-group .btn-group + .btn-group {\n-  margin-left: -1px;\n-}\n-.wppm_bootstrap .btn-toolbar {\n-  margin-left: -5px;\n-}\n-.wppm_bootstrap .btn-toolbar .btn,\n-.wppm_bootstrap .btn-toolbar .btn-group,\n-.wppm_bootstrap .btn-toolbar .input-group {\n-  float: left;\n-}\n-.wppm_bootstrap .btn-toolbar > .btn,\n-.wppm_bootstrap .btn-toolbar > .btn-group,\n-.wppm_bootstrap .btn-toolbar > .input-group {\n-  margin-left: 5px;\n-}\n-.wppm_bootstrap .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n-  border-radius: 0;\n-}\n-.wppm_bootstrap .btn-group > .btn:first-child {\n-  margin-left: 0;\n-}\n-.wppm_bootstrap .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n-  border-top-right-radius: 0;\n-  border-bottom-right-radius: 0;\n-}\n-.wppm_bootstrap .btn-group > .btn:last-child:not(:first-child),\n-.wppm_bootstrap .btn-group > .dropdown-toggle:not(:first-child) {\n-  border-top-left-radius: 0;\n-  border-bottom-left-radius: 0;\n-}\n-.wppm_bootstrap .btn-group > .btn-group {\n-  float: left;\n-}\n-.wppm_bootstrap .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n-  border-radius: 0;\n-}\n-.wppm_bootstrap .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n-.wppm_bootstrap .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n-  border-top-right-radius: 0;\n-  border-bottom-right-radius: 0;\n-}\n-.wppm_bootstrap .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n-  border-top-left-radius: 0;\n-  border-bottom-left-radius: 0;\n-}\n-.wppm_bootstrap .btn-group .dropdown-toggle:active,\n-.wppm_bootstrap .btn-group.open .dropdown-toggle {\n-  outline: 0;\n-}\n-.wppm_bootstrap .btn-group > .btn + .dropdown-toggle {\n-  padding-right: 8px;\n-  padding-left: 8px;\n-}\n-.wppm_bootstrap .btn-group > .btn-lg + .dropdown-toggle {\n-  padding-right: 12px;\n-  padding-left: 12px;\n-}\n-.wppm_bootstrap .btn-group.open .dropdown-toggle {\n-  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n-          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n-}\n-.wppm_bootstrap .btn-group.open .dropdown-toggle.btn-link {\n-  -webkit-box-shadow: none;\n-          box-shadow: none;\n-}\n-.wppm_bootstrap .btn .caret {\n-  margin-left: 0;\n-}\n-.wppm_bootstrap .btn-lg .caret {\n-  border-width: 5px 5px 0;\n-  border-bottom-width: 0;\n-}\n-.wppm_bootstrap .dropup .btn-lg .caret {\n-  border-width: 0 5px 5px;\n-}\n-.wppm_bootstrap .btn-group-vertical > .btn,\n-.wppm_bootstrap .btn-group-vertical > .btn-group,\n-.wppm_bootstrap .btn-group-vertical > .btn-group > .btn {\n-  display: block;\n-  float: none;\n-  width: 100%;\n-  max-width: 100%;\n-}\n-.wppm_bootstrap .btn-group-vertical > .btn-group > .btn {\n-  float: none;\n-}\n-.wppm_bootstrap .btn-group-vertical > .btn + .btn,\n-.wppm_bootstrap .btn-group-vertical > .btn + .btn-group,\n-.wppm_bootstrap .btn-group-vertical > .btn-group + .btn,\n-.wppm_bootstrap .btn-group-vertical > .btn-group + .btn-group {\n-  margin-top: -1px;\n-  margin-left: 0;\n-}\n-.wppm_bootstrap .btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n-  border-radius: 0;\n-}\n-.wppm_bootstrap .btn-group-vertical > .btn:first-child:not(:last-child) {\n-  border-top-left-radius: 4px;\n-  border-top-right-radius: 4px;\n-  border-bottom-right-radius: 0;\n-  border-bottom-left-radius: 0;\n-}\n-.wppm_bootstrap .btn-group-vertical > .btn:last-child:not(:first-child) {\n-  border-top-left-radius: 0;\n-  border-top-right-radius: 0;\n-  border-bottom-right-radius: 4px;\n-  border-bottom-left-radius: 4px;\n-}\n-.wppm_bootstrap .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n-  border-radius: 0;\n-}\n-.wppm_bootstrap .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n-.wppm_bootstrap .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n-  border-bottom-right-radius: 0;\n-  border-bottom-left-radius: 0;\n-}\n-.wppm_bootstrap .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n-  border-top-left-radius: 0;\n-  border-top-right-radius: 0;\n-}\n-.wppm_bootstrap .btn-group-justified {\n-  display: table;\n-  width: 100%;\n-  table-layout: fixed;\n-  border-collapse: separate;\n-}\n-.wppm_bootstrap .btn-group-justified > .btn,\n-.wppm_bootstrap .btn-group-justified > .btn-group {\n-  display: table-cell;\n-  float: none;\n-  width: 1%;\n-}\n-.wppm_bootstrap .btn-group-justified > .btn-group .btn {\n-  width: 100%;\n-}\n-.wppm_bootstrap .btn-group-justified > .btn-group .dropdown-menu {\n-  left: auto;\n-}\n-[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n-[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n-[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n-[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n-  position: absolute;\n-  clip: rect(0, 0, 0, 0);\n-  pointer-events: none;\n-}\n-.wppm_bootstrap .input-group {\n-  position: relative;\n-  display: table;\n-  border-collapse: separate;\n-}\n-.wppm_bootstrap .input-group[class*=\"col-\"] {\n-  float: none;\n-  padding-right: 0;\n-  padding-left: 0;\n-}\n-.wppm_bootstrap .input-group .form-control {\n-  position: relative;\n-  z-index: 2;\n-  float: left;\n-  width: 100%;\n-  margin-bottom: 0;\n-}\n-.wppm_bootstrap .input-group .form-control:focus {\n-  z-index: 3;\n-}\n-.wppm_bootstrap .input-group-lg > .form-control,\n-.wppm_bootstrap .input-group-lg > .input-group-addon,\n-.wppm_bootstrap .input-group-lg > .input-group-btn > .btn {\n-  height: 46px;\n-  padding: 10px 16px;\n-  font-size: 18px;\n-  line-height: 1.3333333;\n-  border-radius: 6px;\n-}\n-.wppm_bootstrap select.input-group-lg > .form-control,\n-.wppm_bootstrap select.input-group-lg > .input-group-addon,\n-.wppm_bootstrap select.input-group-lg > .input-group-btn > .btn {\n-  height: 46px;\n-  line-height: 46px;\n-}\n-.wppm_bootstrap textarea.input-group-lg > .form-control,\n-.wppm_bootstrap textarea.input-group-lg > .input-group-addon,\n-.wppm_bootstrap textarea.input-group-lg > .input-group-btn > .btn,\n-.wppm_bootstrap select[multiple].input-group-lg > .form-control,\n-.wppm_bootstrap select[multiple].input-group-lg > .input-group-addon,\n-.wppm_bootstrap select[multiple].input-group-lg > .input-group-btn > .btn {\n-  height: auto;\n-}\n-.wppm_bootstrap .input-group-sm > .form-control,\n-.wppm_bootstrap .input-group-sm > .input-group-addon,\n-.wppm_bootstrap .input-group-sm > .input-group-btn > .btn {\n-  height: 30px;\n-  padding: 5px 10px;\n-  font-size: 12px;\n-  line-height: 1.5;\n-  border-radius: 3px;\n-}\n-.wppm_bootstrap select.input-group-sm > .form-control,\n-.wppm_bootstrap select.input-group-sm > .input-group-addon,\n-.wppm_bootstrap select.input-group-sm > .input-group-btn > .btn {\n-  height: 30px;\n-  line-height: 30px;\n-}\n-.wppm_bootstrap textarea.input-group-sm > .form-control,\n-.wppm_bootstrap textarea.input-group-sm > .input-group-addon,\n-.wppm_bootstrap textarea.input-group-sm > .input-group-btn > .btn,\n-.wppm_bootstrap select[multiple].input-group-sm > .form-control,\n-.wppm_bootstrap select[multiple].input-group-sm > .input-group-addon,\n-.wppm_bootstrap select[multiple].input-group-sm > .input-group-btn > .btn {\n-  height: auto;\n-}\n-.wppm_bootstrap .input-group-addon,\n-.wppm_bootstrap .input-group-btn,\n-.wppm_bootstrap .input-group .form-control {\n-  display: table-cell;\n-}\n-.wppm_bootstrap .input-group-addon:not(:first-child):not(:last-child),\n-.wppm_bootstrap .input-group-btn:not(:first-child):not(:last-child),\n-.wppm_bootstrap .input-group .form-control:not(:first-child):not(:last-child) {\n-  border-radius: 0;\n-}\n-.wppm_bootstrap .input-group-addon,\n-.wppm_bootstrap .input-group-btn {\n-  width: 1%;\n-  white-space: nowrap;\n-  vertical-align: middle;\n-}\n-.wppm_bootstrap .input-group-addon {\n-  padding: 6px 12px;\n-  font-size: 14px;\n-  font-weight: normal;\n-  line-height: 1;\n-  color: #555;\n-  text-align: center;\n-  background-color: #eee;\n-  border: 1px solid #ccc;\n-  border-radius: 4px;\n-}\n-.wppm_bootstrap .input-group-addon.input-sm {\n-  padding: 5px 10px;\n-  font-size: 12px;\n-  border-radius: 3px;\n-}\n-.wppm_bootstrap .input-group-addon.input-lg {\n-  padding: 10px 16px;\n-  font-size: 18px;\n-  border-radius: 6px;\n-}\n-.wppm_bootstrap .input-group-addon input[type=\"radio\"],\n-.wppm_bootstrap .input-group-addon input[type=\"checkbox\"] {\n-  margin-top: 0;\n-}\n-.wppm_bootstrap .input-group .form-control:first-child,\n-.wppm_bootstrap .input-group-addon:first-child,\n-.wppm_bootstrap .input-group-btn:first-child > .btn,\n-.wppm_bootstrap .input-group-btn:first-child > .btn-group > .btn,\n-.wppm_bootstrap .input-group-btn:first-child > .dropdown-toggle,\n-.wppm_bootstrap .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n-.wppm_bootstrap .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n-  border-top-right-radius: 0;\n-  border-bottom-right-radius: 0;\n-}\n-.wppm_bootstrap .input-group-addon:first-child {\n-  border-right: 0;\n-}\n-.wppm_bootstrap .input-group .form-control:last-child,\n-.wppm_bootstrap .input-group-addon:last-child,\n-.wppm_bootstrap .input-group-btn:last-child > .btn,\n-.wppm_bootstrap .input-group-btn:last-child > .btn-group > .btn,\n-.wppm_bootstrap .input-group-btn:last-child > .dropdown-toggle,\n-.wppm_bootstrap .input-group-btn:first-child > .btn:not(:first-child),\n-.wppm_bootstrap .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n-  border-top-left-radius: 0;\n-  border-bottom-left-radius: 0;\n-}\n-.wppm_bootstrap .input-group-addon:last-child {\n-  border-left: 0;\n-}\n-.wppm_bootstrap .input-group-btn {\n-  position: relative;\n-  font-size: 0;\n-  white-space: nowrap;\n-}\n-.wppm_bootstrap .input-group-btn > .btn {\n-  position: relative;\n-}\n-.wppm_bootstrap .input-group-btn > .btn + .btn {\n-  margin-left: -1px;\n-}\n-.wppm_bootstrap .input-group-btn > .btn:hover,\n-.wppm_bootstrap .input-group-btn > .btn:focus,\n-.wppm_bootstrap .input-group-btn > .btn:active {\n-  z-index: 2;\n-}\n-.wppm_bootstrap .input-group-btn:first-child > .btn,\n-.wppm_bootstrap .input-group-btn:first-child > .btn-group {\n-  margin-right: -1px;\n-}\n-.wppm_bootstrap .input-group-btn:last-child > .btn,\n-.wppm_bootstrap .input-group-btn:last-child > .btn-group {\n-  z-index: 2;\n-  margin-left: -1px;\n-}\n-.wppm_bootstrap .nav {\n-  padding-left: 0;\n-  margin-bottom: 0;\n-  list-style: none;\n-}\n-.wppm_bootstrap .nav > li {\n-  position: relative;\n-  display: block;\n-}\n-.wppm_bootstrap .nav > li > a {\n-  position: relative;\n-  display: block;\n-  padding: 10px 15px;\n-}\n-.wppm_bootstrap .nav > li > a:hover,\n-.wppm_bootstrap .nav > li > a:focus {\n-  text-decoration: none;\n-  background-color: #eee;\n-}\n-.wppm_bootstrap .nav > li.disabled > a {\n-  color: #777;\n-}\n-.wppm_bootstrap .nav > li.disabled > a:hover,\n-.wppm_bootstrap .nav > li.disabled > a:focus {\n-  color: #777;\n-  text-decoration: none;\n-  cursor: not-allowed;\n-  background-color: transparent;\n-}\n-.wppm_bootstrap .nav .open > a,\n-.wppm_bootstrap .nav .open > a:hover,\n-.wppm_bootstrap .nav .open > a:focus {\n-  background-color: #eee;\n-  border-color: #337ab7;\n-}\n-.wppm_bootstrap .nav .nav-divider {\n-  height: 1px;\n-  margin: 9px 0;\n-  overflow: hidden;\n-  background-color: #e5e5e5;\n-}\n-.wppm_bootstrap .nav > li > a > img {\n-  max-width: none;\n-}\n-.wppm_bootstrap .nav-tabs {\n-  border-bottom: 1px solid #ddd;\n-}\n-.wppm_bootstrap .nav-tabs > li {\n-  float: left;\n-  margin-bottom: -1px;\n-}\n-.wppm_bootstrap .nav-tabs > li > a {\n-  margin-right: 2px;\n-  line-height: 1.42857143;\n-  border: 1px solid transparent;\n-  border-radius: 4px 4px 0 0;\n-}\n-.wppm_bootstrap .nav-tabs > li > a:hover {\n-  border-color: #eee #eee #ddd;\n-}\n-.wppm_bootstrap .nav-tabs > li.active > a,\n-.wppm_bootstrap .nav-tabs > li.active > a:hover,\n-.wppm_bootstrap .nav-tabs > li.active > a:focus {\n-  color: #555;\n-  cursor: default;\n-  background-color: #fff;\n-  border: 1px solid #ddd;\n-  border-bottom-color: transparent;\n-}\n-.wppm_bootstrap .nav-tabs.nav-justified {\n-  width: 100%;\n-  border-bottom: 0;\n-}\n-.wppm_bootstrap .nav-tabs.nav-justified > li {\n-  float: none;\n-}\n-.wppm_bootstrap .nav-tabs.nav-justified > li > a {\n-  margin-bottom: 5px;\n-  text-align: center;\n-}\n-.wppm_bootstrap .nav-tabs.nav-justified > .dropdown .dropdown-menu {\n-  top: auto;\n-  left: auto;\n-}\n-@media (min-width: 768px) {\n-  .nav-tabs.nav-justified > li {\n-    display: table-cell;\n-    width: 1%;\n-  }\n-  .nav-tabs.nav-justified > li > a {\n-    margin-bottom: 0;\n-  }\n-}\n-.wppm_bootstrap .nav-tabs.nav-justified > li > a {\n-  margin-right: 0;\n-  border-radius: 4px;\n-}\n-.wppm_bootstrap .nav-tabs.nav-justified > .active > a,\n-.wppm_bootstrap .nav-tabs.nav-justified > .active > a:hover,\n-.wppm_bootstrap .nav-tabs.nav-justified > .active > a:focus {\n-  border: 1px solid #ddd;\n-}\n-@media (min-width: 768px) {\n-  .nav-tabs.nav-justified > li > a {\n-    border-bottom: 1px solid #ddd;\n-    border-radius: 4px 4px 0 0;\n-  }\n-  .nav-tabs.nav-justified > .active > a,\n-  .nav-tabs.nav-justified > .active > a:hover,\n-  .nav-tabs.nav-justified > .active > a:focus {\n-    border-bottom-color: #fff;\n-  }\n-}\n-.wppm_bootstrap .nav-pills > li {\n-  float: left;\n-}\n-.wppm_bootstrap .nav-pills > li > a {\n-  border-radius: 15px;\n-  color:#9c9c9c;\n-}\n-.wppm_bootstrap .nav-pills > li + li {\n-  margin-left: 2px;\n-  border:1px solid #ddd;\n-  border-radius: 15px;\n-}\n-.wppm_bootstrap .nav-pills > li.active > a,\n-.wppm_bootstrap .nav-pills > li.active > a:hover,\n-.wppm_bootstrap .nav-pills > li.active > a:focus {\n-  color: #fff;\n-  background-color:#0052CC;;\n-  \u002F* background-color: #337ab7; *\u002F\n-  border-radius: 15px;\n-}\n-.wppm_bootstrap .nav-pills > li{\n-  border:1px solid #ddd;\n-  border-radius: 15px;\n-}\n-.wppm_bootstrap .nav-stacked > li {\n-  float: none;\n-}\n-.wppm_bootstrap .nav-stacked > li + li {\n-  margin-top: 2px;\n-  margin-left: 0;\n-}\n-.wppm_bootstrap .nav-justified {\n-  width: 100%;\n-}\n-.wppm_bootstrap .nav-justified > li {\n-  float: none;\n-}\n-.wppm_bootstrap .nav-justified > li > a {\n-  margin-bottom: 5px;\n-  text-align: center;\n-}\n-.wppm_bootstrap .nav-justified > .dropdown .dropdown-menu {\n-  top: auto;\n-  left: auto;\n-}\n-@media (min-width: 768px) {\n-  .nav-justified > li {\n-    display: table-cell;\n-    width: 1%;\n-  }\n-  .nav-justified > li > a {\n-    margin-bottom: 0;\n-  }\n-}\n-.wppm_bootstrap .nav-tabs-justified {\n-  border-bottom: 0;\n-}\n-.wppm_bootstrap .nav-tabs-justified > li > a {\n-  margin-right: 0;\n-  border-radius: 4px;\n-}\n-.wppm_bootstrap .nav-tabs-justified > .active > a,\n-.wppm_bootstrap .nav-tabs-justified > .active > a:hover,\n-.wppm_bootstrap .nav-tabs-justified > .active > a:focus {\n-  border: 1px solid #ddd;\n-  border-radius: 15px;\n-}\n-@media (min-width: 768px) {\n-  .nav-tabs-justified > li > a {\n-    border-bottom: 1px solid #ddd;\n-    border-radius: 4px 4px 0 0;\n-  }\n-  .nav-tabs-justified > .active > a,\n-  .nav-tabs-justified > .active > a:hover,\n-  .nav-tabs-justified > .active > a:focus {\n-    border-bottom-color: #fff;\n-  }\n-}\n-.wppm_bootstrap .tab-content > .tab-pane {\n-  display: none;\n-}\n-.wppm_bootstrap .tab-content > .active {\n-  display: block;\n-}\n-.wppm_bootstrap .nav-tabs .dropdown-menu {\n-  margin-top: -1px;\n-  border-top-left-radius: 0;\n-  border-top-right-radius: 0;\n-}\n-.wppm_bootstrap .navbar {\n-  position: relative;\n-  min-height: 50px;\n-  margin-bottom: 20px;\n-  border: 1px solid transparent;\n-}\n-@media (min-width: 768px) {\n-  .navbar {\n-    border-radius: 4px;\n-  }\n-}\n-@media (min-width: 768px) {\n-  .navbar-header {\n-    float: left;\n-  }\n-}\n-.wppm_bootstrap .navbar-collapse {\n-  padding-right: 15px;\n-  padding-left: 15px;\n-  overflow-x: visible;\n-  -webkit-overflow-scrolling: touch;\n-  border-top: 1px solid transparent;\n-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n-          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n-}\n-.wppm_bootstrap .navbar-collapse.in {\n-  overflow-y: auto;\n-}\n-@media (min-width: 768px) {\n-  .navbar-collapse {\n-    width: auto;\n-    border-top: 0;\n-    -webkit-box-shadow: none;\n-            box-shadow: none;\n-  }\n-  .navbar-collapse.collapse {\n-    display: block !important;\n-    height: auto !important;\n-    padding-bottom: 0;\n-    overflow: visible !important;\n-  }\n-  .navbar-collapse.in {\n-    overflow-y: visible;\n-  }\n-  .navbar-fixed-top .navbar-collapse,\n-  .navbar-static-top .navbar-collapse,\n-  .navbar-fixed-bottom .navbar-collapse {\n-    padding-right: 0;\n-    padding-left: 0;\n-  }\n-}\n-.wppm_bootstrap .navbar-fixed-top .navbar-collapse,\n-.wppm_bootstrap .navbar-fixed-bottom .navbar-collapse {\n-  max-height: 340px;\n-}\n-@media (max-device-width: 480px) and (orientation: landscape) {\n-  .navbar-fixed-top .navbar-collapse,\n-  .navbar-fixed-bottom .navbar-collapse {\n-    max-height: 200px;\n-  }\n-}\n-.wppm_bootstrap .container > .navbar-header,\n-.wppm_bootstrap .container-fluid > .navbar-header,\n-.wppm_bootstrap .container > .navbar-collapse,\n-.wppm_bootstrap .container-fluid > .navbar-collapse {\n-  margin-right: -15px;\n-  margin-left: -15px;\n-}\n-@media (min-width: 768px) {\n-  .container > .navbar-header,\n-  .container-fluid > .navbar-header,\n-  .container > .navbar-collapse,\n-  .container-fluid > .navbar-collapse {\n-    margin-right: 0;\n-    margin-left: 0;\n-  }\n-}\n-.wppm_bootstrap .navbar-static-top {\n-  z-index: 1000;\n-  border-width: 0 0 1px;\n-}\n-@media (min-width: 768px) {\n-  .navbar-static-top {\n-    border-radius: 0;\n-  }\n-}\n-.wppm_bootstrap .navbar-fixed-top,\n-.wppm_bootstrap .navbar-fixed-bottom {\n-  position: fixed;\n-  right: 0;\n-  left: 0;\n-  z-index: 1030;\n-}\n-@media (min-width: 768px) {\n-  .navbar-fixed-top,\n-  .navbar-fixed-bottom {\n-    border-radius: 0;\n-  }\n-}\n-.wppm_bootstrap .navbar-fixed-top {\n-  top: 0;\n-  border-width: 0 0 1px;\n-}\n-.wppm_bootstrap .navbar-fixed-bottom {\n-  bottom: 0;\n-  margin-bottom: 0;\n-  border-width: 1px 0 0;\n-}\n-.wppm_bootstrap .navbar-brand {\n-  float: left;\n-  height: 50px;\n-  padding: 15px 15px;\n-  font-size: 18px;\n-  line-height: 20px;\n-}\n-.wppm_bootstrap .navbar-brand:hover,\n-.wppm_bootstrap .navbar-brand:focus {\n-  text-decoration: none;\n-}\n-.wppm_bootstrap .navbar-brand > img {\n-  display: block;\n-}\n-@media (min-width: 768px) {\n-  .navbar > .container .navbar-brand,\n-  .navbar > .container-fluid .navbar-brand {\n-    margin-left: -15px;\n-  }\n-}\n-.wppm_bootstrap .navbar-toggle {\n-  position: relative;\n-  float: right;\n-  padding: 9px 10px;\n-  margin-top: 8px;\n-  margin-right: 15px;\n-  margin-bottom: 8px;\n-  background-color: transparent;\n-  background-image: none;\n-  border: 1px solid transparent;\n-  border-radius: 4px;\n-}\n-.wppm_bootstrap .navbar-toggle:focus {\n-  outline: 0;\n-}\n-.wppm_bootstrap .navbar-toggle .icon-bar {\n-  display: block;\n-  width: 22px;\n-  height: 2px;\n-  border-radius: 1px;\n-}\n-.wppm_bootstrap .navbar-toggle .icon-bar + .icon-bar {\n-  margin-top: 4px;\n-}\n-@media (min-width: 768px) {\n-  .navbar-toggle {\n-    display: none;\n-  }\n-}\n-.wppm_bootstrap .navbar-nav {\n-  margin: 7.5px -15px;\n-}\n-.wppm_bootstrap .navbar-nav > li > a {\n-  padding-top: 10px;\n-  padding-bottom: 10px;\n-  line-height: 20px;\n-}\n-@media (max-width: 767px) {\n-  .navbar-nav .open .dropdown-menu {\n-    position: static;\n-    float: none;\n-    width: auto;\n-    margin-top: 0;\n-    background-color: transparent;\n-    border: 0;\n-    -webkit-box-shadow: none;\n-            box-shadow: none;\n-  }\n-  .wppm_bootstrap .navbar-nav .open .dropdown-menu > li > a,\n-  .wppm_bootstrap .navbar-nav .open .dropdown-menu .dropdown-header {\n-    padding: 5px 15px 5px 25px;\n-  }\n-  .wppm_bootstrap .navbar-nav .open .dropdown-menu > li > a {\n-    line-height: 20px;\n-  }\n-  .wppm_bootstrap .navbar-nav .open .dropdown-menu > li > a:hover,\n-  .wppm_bootstrap .navbar-nav .open .dropdown-menu > li > a:focus {\n-    background-image: none;\n-  }\n-}\n-@media (min-width: 768px) {\n-  .navbar-nav {\n-    float: left;\n-    margin: 0;\n-  }\n-  .navbar-nav > li {\n-    float: left;\n-  }\n-  .navbar-nav > li > a {\n-    padding-top: 15px;\n-    padding-bottom: 15px;\n-  }\n-}\n-.wppm_bootstrap .navbar-form {\n-  padding: 10px 15px;\n-  margin-top: 8px;\n-  margin-right: -15px;\n-  margin-bottom: 8px;\n-  margin-left: -15px;\n-  border-top: 1px solid transparent;\n-  border-bottom: 1px solid transparent;\n-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n-          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n-}\n-@media (min-width: 768px) {\n-  .navbar-form .form-group {\n-    display: inline-block;\n-    margin-bottom: 0;\n-    vertical-align: middle;\n-  }\n-  .navbar-form .form-control {\n-    display: inline-block;\n-    width: auto;\n-    vertical-align: middle;\n-  }\n-  .navbar-form .form-control-static {\n-    display: inline-block;\n-  }\n-  .navbar-form .input-group {\n-    display: inline-table;\n-    vertical-align: middle;\n-  }\n-  .navbar-form .input-group .input-group-addon,\n-  .navbar-form .input-group .input-group-btn,\n-  .navbar-form .input-group .form-control {\n-    width: auto;\n-  }\n-  .navbar-form .input-group > .form-control {\n-    width: 100%;\n-  }\n-  .navbar-form .control-label {\n-    margin-bottom: 0;\n-    vertical-align: middle;\n-  }\n-  .navbar-form .radio,\n-  .navbar-form .checkbox {\n-    display: inline-block;\n-    margin-top: 0;\n-    margin-bottom: 0;\n-    vertical-align: middle;\n-  }\n-  .navbar-form .radio label,\n-  .navbar-form .checkbox label {\n-    padding-left: 0;\n-  }\n-  .navbar-form .radio input[type=\"radio\"],\n-  .navbar-form .checkbox input[type=\"checkbox\"] {\n-    position: relative;\n-    margin-left: 0;\n-  }\n-  .navbar-form .has-feedback .form-control-feedback {\n-    top: 0;\n-  }\n-}\n-@media (max-width: 767px) {\n-  .navbar-form .form-group {\n-    margin-bottom: 5px;\n-  }\n-  .navbar-form .form-group:last-child {\n-    margin-bottom: 0;\n-  }\n-}\n-@media (min-width: 768px) {\n-  .navbar-form {\n-    width: auto;\n-    padding-top: 0;\n-    padding-bottom: 0;\n-    margin-right: 0;\n-    margin-left: 0;\n-    border: 0;\n-    -webkit-box-shadow: none;\n-            box-shadow: none;\n-  }\n-}\n-.wppm_bootstrap .navbar-nav > li > .dropdown-menu {\n-  margin-top: 0;\n-  border-top-left-radius: 0;\n-  border-top-right-radius: 0;\n-}\n-.wppm_bootstrap .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n-  margin-bottom: 0;\n-  border-top-left-radius: 4px;\n-  border-top-right-radius: 4px;\n-  border-bottom-right-radius: 0;\n-  border-bottom-left-radius: 0;\n-}\n-.wppm_bootstrap .navbar-btn {\n-  margin-top: 8px;\n-  margin-bottom: 8px;\n-}\n-.wppm_bootstrap .navbar-btn.btn-sm {\n-  margin-top: 10px;\n-  margin-bottom: 10px;\n-}\n-.wppm_bootstrap .navbar-btn.btn-xs {\n-  margin-top: 14px;\n-  margin-bottom: 14px;\n-}\n-.wppm_bootstrap .navbar-text {\n-  margin-top: 15px;\n-  margin-bottom: 15px;\n-}\n-@media (min-width: 768px) {\n-  .navbar-text {\n-    float: left;\n-    margin-right: 15px;\n-    margin-left: 15px;\n-  }\n-}\n-@media (min-width: 768px) {\n-  .navbar-left {\n-    float: left !important;\n-  }\n-  .navbar-right {\n-    float: right !important;\n-    margin-right: -15px;\n-  }\n-  .navbar-right ~ .navbar-right {\n-    margin-right: 0;\n-  }\n-}\n-.wppm_bootstrap .navbar-default {\n-  background-color: #f8f8f8;\n-  border-color: #e7e7e7;\n-}\n-.wppm_bootstrap .navbar-default .navbar-brand {\n-  color: #777;\n-}\n-.wppm_bootstrap .navbar-default .navbar-brand:hover,\n-.wppm_bootstrap .navbar-default .navbar-brand:focus {\n-  color: #5e5e5e;\n-  background-color: transparent;\n-}\n-.wppm_bootstrap .navbar-default .navbar-text {\n-  color: #777;\n-}\n-.wppm_bootstrap .navbar-default .navbar-nav > li > a {\n-  color: #777;\n-}\n-.wppm_bootstrap .navbar-default .navbar-nav > li > a:hover,\n-.wppm_bootstrap .navbar-default .navbar-nav > li > a:focus {\n-  color: #333;\n-  background-color: transparent;\n-}\n-.wppm_bootstrap .navbar-default .navbar-nav > .active > a,\n-.wppm_bootstrap .navbar-default .navbar-nav > .active > a:hover,\n-.wppm_bootstrap .navbar-default .navbar-nav > .active > a:focus {\n-  color: #555;\n-  background-color: #e7e7e7;\n-}\n-.wppm_bootstrap .navbar-default .navbar-nav > .disabled > a,\n-.wppm_bootstrap .navbar-default .navbar-nav > .disabled > a:hover,\n-.wppm_bootstrap .navbar-default .navbar-nav > .disabled > a:focus {\n-  color: #ccc;\n-  background-color: transparent;\n-}\n-.wppm_bootstrap .navbar-default .navbar-toggle {\n-  border-color: #ddd;\n-}\n-.wppm_bootstrap .navbar-default .navbar-toggle:hover,\n-.wppm_bootstrap .navbar-default .navbar-toggle:focus {\n-  background-color: #ddd;\n-}\n-.wppm_bootstrap .navbar-default .navbar-toggle .icon-bar {\n-  background-color: #888;\n-}\n-.wppm_bootstrap .navbar-default .navbar-collapse,\n-.wppm_bootstrap .navbar-default .navbar-form {\n-  border-color: #e7e7e7;\n-}\n-.wppm_bootstrap .navbar-default .navbar-nav > .open > a,\n-.wppm_bootstrap .navbar-default .navbar-nav > .open > a:hover,\n-.wppm_bootstrap .navbar-default .navbar-nav > .open > a:focus {\n-  color: #555;\n-  background-color: #e7e7e7;\n-}\n-@media (max-width: 767px) {\n-  .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n-    color: #777;\n-  }\n-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n-    color: #333;\n-    background-color: transparent;\n-  }\n-  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n-  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n-  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n-    color: #555;\n-    background-color: #e7e7e7;\n-  }\n-  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n-  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n-  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n-    color: #ccc;\n-    background-color: transparent;\n-  }\n-}\n-.wppm_bootstrap .navbar-default .navbar-link {\n-  color: #777;\n-}\n-.wppm_bootstrap .navbar-default .navbar-link:hover {\n-  color: #333;\n-}\n-.wppm_bootstrap .navbar-default .btn-link {\n-  color: #777;\n-}\n-.wppm_bootstrap .navbar-default .btn-link:hover,\n-.wppm_bootstrap .navbar-default .btn-link:focus {\n-  color: #333;\n-}\n-.wppm_bootstrap .navbar-default .btn-link[disabled]:hover,\n-.wppm_bootstrap fieldset[disabled] .navbar-default .btn-link:hover,\n-.wppm_bootstrap .navbar-default .btn-link[disabled]:focus,\n-.wppm_bootstrap fieldset[disabled] .navbar-default .btn-link:focus {\n-  color: #ccc;\n-}\n-.wppm_bootstrap .navbar-inverse {\n-  background-color: #222;\n-  border-color: #080808;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-brand {\n-  color: #9d9d9d;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-brand:hover,\n-.wppm_bootstrap .navbar-inverse .navbar-brand:focus {\n-  color: #fff;\n-  background-color: transparent;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-text {\n-  color: #9d9d9d;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-nav > li > a {\n-  color: #9d9d9d;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-nav > li > a:hover,\n-.wppm_bootstrap .navbar-inverse .navbar-nav > li > a:focus {\n-  color: #fff;\n-  background-color: transparent;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-nav > .active > a,\n-.wppm_bootstrap .navbar-inverse .navbar-nav > .active > a:hover,\n-.wppm_bootstrap .navbar-inverse .navbar-nav > .active > a:focus {\n-  color: #fff;\n-  background-color: #080808;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-nav > .disabled > a,\n-.wppm_bootstrap .navbar-inverse .navbar-nav > .disabled > a:hover,\n-.wppm_bootstrap .navbar-inverse .navbar-nav > .disabled > a:focus {\n-  color: #444;\n-  background-color: transparent;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-toggle {\n-  border-color: #333;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-toggle:hover,\n-.wppm_bootstrap .navbar-inverse .navbar-toggle:focus {\n-  background-color: #333;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-toggle .icon-bar {\n-  background-color: #fff;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-collapse,\n-.wppm_bootstrap .navbar-inverse .navbar-form {\n-  border-color: #101010;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-nav > .open > a,\n-.wppm_bootstrap .navbar-inverse .navbar-nav > .open > a:hover,\n-.wppm_bootstrap .navbar-inverse .navbar-nav > .open > a:focus {\n-  color: #fff;\n-  background-color: #080808;\n-} \n-@media (max-width: 767px) {\n-  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n-    border-color: #080808;\n-  }\n-  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n-    background-color: #080808;\n-  }\n-  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n-    color: #9d9d9d;\n-  }\n-  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n-  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n-    color: #fff;\n-    background-color: transparent;\n-  }\n-  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n-  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n-  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n-    color: #fff;\n-    background-color: #080808;\n-  }\n-  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n-  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n-  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n-    color: #444;\n-    background-color: transparent;\n-  }\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-link {\n-  color: #9d9d9d;\n-}\n-.wppm_bootstrap .navbar-inverse .navbar-link:hover {\n-  color: #fff;\n-}\n-.wppm_bootstrap .navbar-inverse .btn-link {\n-  color: #9d9d9d;\n-}\n-.wppm_bootstrap .navbar-inverse .btn-link:hover,\n-.wppm_bootstrap .navbar-inverse .btn-link:focus {\n-  color: #fff;\n-}\n-.wppm_bootstrap .navbar-inverse .btn-link[disabled]:hover,\n-.wppm_bootstrap fieldset[disabled] .navbar-inverse .btn-link:hover,\n-.wppm_bootstrap .navbar-inverse .btn-link[disabled]:focus,\n-.wppm_bootstrap fieldset[disabled] .navbar-inverse .btn-link:focus {\n-  color: #444;\n-}\n-.wppm_bootstrap .breadcrumb {\n-  padding: 8px 15px;\n-  margin-bottom: 20px;\n-  list-style: none;\n-  background-color: #f5f5f5;\n-  border-radius: 4px;\n-}\n-.wppm_bootstrap .breadcrumb > li {\n-  display: inline-block;\n-}\n-.wppm_bootstrap .breadcrumb > li + li:before {\n-  padding: 0 5px;\n-  color: #ccc;\n-  content: \"\u002F\\00a0\";\n-}\n-.wppm_bootstrap .breadcrumb > .active {\n-  color: #777;\n-}\n-.wppm_bootstrap .pagination {\n-  display: inline-block;\n-  padding-left: 0;\n-  margin: 20px 0;\n-  border-radius: 4px;\n-}\n-.wppm_bootstrap .pagination > li {\n-  display: inline;\n-}\n-.wppm_bootstrap .pagination > li > a,\n-.wppm_bootstrap .pagination > li > span {\n-  position: relative;\n-  float: left;\n-  padding: 6px 12px;\n-  margin-left: -1px;\n-  line-height: 1.42857143;\n-  color: #337ab7;\n-  text-decoration: none;\n-  background-color: #fff;\n-  border: 1px solid #ddd;\n-}\n-.wppm_bootstrap .pagination > li:first-child > a,\n-.wppm_bootstrap .pagination > li:first-child > span {\n-  margin-left: 0;\n-  border-top-left-radius: 4px;\n-  border-bottom-left-radius: 4px;\n-}\n-.wppm_bootstrap .pagination > li:last-child > a,\n-.wppm_bootstrap .pagination > li:last-child > span {\n-  border-top-right-radius: 4px;\n-  border-bottom-right-radius: 4px;\n-}\n-.wppm_bootstrap .pagination > li > a:hover,\n-.wppm_bootstrap .pagination > li > span:hover,\n-.wppm_bootstrap .pagination > li > a:focus,\n-.wppm_bootstrap .pagination > li > span:focus {\n-  z-index: 2;\n-  color: #23527c;\n-  background-color: #eee;\n-  border-color: #ddd;\n-}\n-.wppm_bootstrap .pagination > .active > a,\n-.wppm_bootstrap .pagination > .active > span,\n-.wppm_bootstrap .pagination > .active > a:hover,\n-.wppm_bootstrap .pagination > .active > span:hover,\n-.wppm_bootstrap .pagination > .active > a:focus,\n-.wppm_bootstrap .pagination > .active > span:focus {\n-  z-index: 3;\n-  color: #fff;\n-  cursor: default;\n-  background-color: #337ab7;\n-  border-color: #337ab7;\n-}\n-.wppm_bootstrap .pagination > .disabled > span,\n-.wppm_bootstrap .pagination > .disabled > span:hover,\n-.wppm_bootstrap .pagination > .disabled > span:focus,\n-.wppm_bootstrap .pagination > .disabled > a,\n-.wppm_bootstrap .pagination > .disabled > a:hover,\n-.wppm_bootstrap .pagination > .disabled > a:focus {\n-  color: #777;\n-  cursor: not-allowed;\n-  background-color: #fff;\n-  border-color: #ddd;\n-}\n-.wppm_bootstrap .pagination-lg > li > a,\n-.wppm_bootstrap .pagination-lg > li > span {\n-  padding: 10px 16px;\n-  font-size: 18px;\n-  line-height: 1.3333333;\n-}\n-.wppm_bootstrap .pagination-lg > li:first-child > a,\n-.wppm_bootstrap .pagination-lg > li:first-child > span {\n-  border-top-left-radius: 6px;\n-  border-bottom-left-radius: 6px;\n-}\n-.wppm_bootstrap .pagination-lg > li:last-child > a,\n-.wppm_bootstrap .pagination-lg > li:last-child > span {\n-  border-top-right-radius: 6px;\n-  border-bottom-right-radius: 6px;\n-}\n-.wppm_bootstrap .pagination-sm > li > a,\n-.wppm_bootstrap .pagination-sm > li > span {\n-  padding: 5px 10px;\n-  font-size: 12px;\n-  line-height: 1.5;\n-}\n-.wppm_bootstrap .pagination-sm > li:first-child > a,\n-.wppm_bootstrap .pagination-sm > li:first-child > span {\n-  border-top-left-radius: 3px;\n-  border-bottom-left-radius: 3px;\n-}\n-.wppm_bootstrap .pagination-sm > li:last-child > a,\n-.wppm_bootstrap .pagination-sm > li:last-child > span {\n-  border-top-right-radius: 3px;\n-  border-bottom-right-radius: 3px;\n-}\n-.wppm_bootstrap .pager {\n-  padding-left: 0;\n-  margin: 20px 0;\n-  text-align: center;\n-  list-style: none;\n-}\n-.wppm_bootstrap .pager li {\n-  display: inline;\n-}\n-.wppm_bootstrap .pager li > a,\n-.wppm_bootstrap .pager li > span {\n-  display: inline-block;\n-  padding: 5px 14px;\n-  background-color: #fff;\n-  border: 1px solid #ddd;\n-  border-radius: 15px;\n-}\n-.wppm_bootstrap .pager li > a:hover,\n-.wppm_bootstrap .pager li > a:focus {\n-  text-decoration: none;\n-  background-color: #eee;\n-}\n-.wppm_bootstrap .pager .next > a,\n-.wppm_bootstrap .pager .next > span {\n-  float: right;\n-}\n-.wppm_bootstrap .pager .previous > a,\n-.wppm_bootstrap .pager .previous > span {\n-  float: left;\n-}\n-.wppm_bootstrap .pager .disabled > a,\n-.wppm_bootstrap .pager .disabled > a:hover,\n-.wppm_bootstrap .pager .disabled > a:focus,\n-.wppm_bootstrap .pager .disabled > span {\n-  color: #777;\n-  cursor: not-allowed;\n-  background-color: #fff;\n-}\n-.wppm_bootstrap .label {\n-  display: inline;\n-  padding: .2em .6em .3em;\n-  font-size: 75%;\n-  font-weight: bold;\n-  line-height: 1;\n-  color: #fff;\n-  text-align: center;\n-  white-space: nowrap;\n-  vertical-align: baseline;\n-  border-radius: .25em;\n-}\n-.wppm_bootstrap a.label:hover,\n-.wppm_bootstrap a.label:focus {\n-  color: #fff;\n-  text-decoration: none;\n-  cursor: pointer;\n-}\n-.wppm_bootstrap .label:empty {\n-  display: none;\n-}\n-.wppm_bootstrap .btn .label {\n-  position: relative;\n-  top: -1px;\n-}\n-.wppm_bootstrap .label-default {\n-  background-color: #777;\n-}\n-.wppm_bootstrap .label-default[href]:hover,\n-.wppm_bootstrap .label-default[href]:focus {\n-  background-color: #5e5e5e;\n-}\n-.wppm_bootstrap .label-primary {\n-  background-color: #337ab7;\n-}\n-.wppm_bootstrap .label-primary[href]:hover,\n-.wppm_bootstrap .label-primary[href]:focus {\n-  background-color: #286090;\n-}\n-.wppm_bootstrap .label-success {\n-  background-color: #5cb85c;\n-}\n-.wppm_bootstrap .label-success[href]:hover,\n-.wppm_bootstrap .label-success[href]:focus {\n-  background-color: #449d44;\n-}\n-.wppm_bootstrap .label-info {\n-  background-color: #5bc0de;\n-}\n-.wppm_bootstrap .label-info[href]:hover,\n-.wppm_bootstrap .label-info[href]:focus {\n-  background-color: #31b0d5;\n-}\n-.wppm_bootstrap .label-warning {\n-  background-color: #f0ad4e;\n-}\n-.wppm_bootstrap .label-warning[href]:hover,\n-.wppm_bootstrap .label-warning[href]:focus {\n-  background-color: #ec971f;\n-}\n-.wppm_bootstrap .label-danger {\n-  background-color: #d9534f;\n-}\n-.wppm_bootstrap .label-danger[href]:hover,\n-.wppm_bootstrap .label-danger[href]:focus {\n-  background-color: #c9302c;\n-}\n-.wppm_bootstrap .badge {\n-  display: inline-block;\n-  min-width: 10px;\n-  padding: 3px 7px;\n-  font-size: 12px;\n-  font-weight: bold;\n-  line-height: 1;\n-  color: #fff;\n-  text-align: center;\n-  white-space: nowrap;\n-  vertical-align: middle;\n-  background-color: #777;\n-  border-radius: 10px;\n-}\n-.wppm_bootstrap .badge:empty {\n-  display: none;\n-}\n-.wppm_bootstrap .btn .badge {\n-  position: relative;\n-  top: -1px;\n-}\n-.wppm_bootstrap .btn-xs .badge,\n-.wppm_bootstrap .btn-group-xs > .btn .badge {\n-  top: 0;\n-  padding: 1px 5px;\n-}\n-.wppm_bootstrap a.badge:hover,\n-.wppm_bootstrap a.badge:focus {\n-  color: #fff;\n-  text-decoration: none;\n-  cursor: pointer;\n-}\n-.wppm_bootstrap .list-group-item.active > .badge,\n-.wppm_bootstrap .nav-pills > .active > a > .badge {\n-  color: #337ab7;\n-  background-color: #fff;\n-}\n-.wppm_bootstrap .list-group-item > .badge {\n-  float: right;\n-}\n-.wppm_bootstrap .list-group-item > .badge + .badge {\n-  margin-right: 5px;\n-}\n-.wppm_bootstrap .nav-pills > li > a > .badge {\n-  margin-left: 3px;\n-}\n-.wppm_bootstrap .jumbotron {\n-  padding-top: 30px;\n-  padding-bottom: 30px;\n-  margin-bottom: 30px;\n-  color: inherit;\n-  background-color: #eee;\n-}\n-.wppm_bootstrap .jumbotron h1,\n-.wppm_bootstrap .jumbotron .h1 {\n-  color: inherit;\n-}\n-.wppm_bootstrap .jumbotron p {\n-  margin-bottom: 15px;\n-  font-size: 21px;\n-  font-weight: 200;\n-}\n-.wppm_bootstrap .jumbotron > hr {\n-  border-top-color: #d5d5d5;\n-}\n-.wppm_bootstrap .container .jumbotron,\n-.wppm_bootstrap .container-fluid .jumbotron {\n-  padding-right: 15px;\n-  padding-left: 15px;\n-  border-radius: 6px;\n-}\n-.wppm_bootstrap .jumbotron .container {\n-  max-width: 100%;\n-}\n-@media screen and (min-width: 768px) {\n-  .jumbotron {\n-    padding-top: 48px;\n-    padding-bottom: 48px;\n-  }\n-  .container .jumbotron,\n-  .container-fluid .jumbotron {\n-    padding-right: 60px;\n-    padding-left: 60px;\n-  }\n-  .jumbotron h1,\n-  .jumbotron .h1 {\n-    font-size: 63px;\n-  }\n-}\n-.wppm_bootstrap .thumbnail {\n-  display: block;\n-  padding: 4px;\n-  margin-bottom: 20px;\n-  line-height: 1.42857143;\n-  background-color: #fff;\n-  border: 1px solid #ddd;\n-  border-radius: 4px;\n-  -webkit-transition: border .2s ease-in-out;\n-       -o-transition: border .2s ease-in-out;\n-          transition: border .2s ease-in-out;\n-}\n-.wppm_bootstrap .thumbnail > img,\n-.wppm_bootstrap .thumbnail a > img {\n-  margin-right: auto;\n-  margin-left: auto;\n-}\n-.wppm_bootstrap a.thumbnail:hover,\n-.wppm_bootstrap a.thumbnail:focus,\n-.wppm_bootstrap a.thumbnail.active {\n-  border-color: #337ab7;\n-}\n-.wppm_bootstrap .thumbnail .caption {\n-  padding: 9px;\n-  color: #333;\n-}\n-.wppm_bootstrap .alert {\n-  padding: 15px;\n-  margin-bottom: 20px;\n-  border: 1px solid transparent;\n-  border-radius: 4px;\n-}\n-.wppm_bootstrap .alert h4 {\n-  margin-top: 0;\n-  color: inherit;\n-}\n-.wppm_bootstrap .alert .alert-link {\n-  font-weight: bold;\n-}\n-.wppm_bootstrap .alert > p,\n-.wppm_bootstrap .alert > ul {\n-  margin-bottom: 0;\n-}\n-.wppm_bootstrap .alert > p + p {\n-  margin-top: 5px;\n-}\n-.wppm_bootstrap .alert-dismissable,\n-.wppm_bootstrap .alert-dismissible {\n-  padding-right: 35px;\n-}\n-.wppm_bootstrap .alert-dismissable .close,\n-.wppm_bootstrap .alert-dismissible .close {\n-  position: relative;\n-  top: -2px;\n-  right: -21px;\n-  color: inherit;\n-}\n-.wppm_bootstrap .alert-success {\n-  color: #3c763d;\n-  background-color: #dff0d8;\n-  border-color: #d6e9c6;\n-}\n-.wppm_bootstrap .alert-success hr {\n-  border-top-color: #c9e2b3;\n-}\n-.wppm_bootstrap .alert-success .alert-link {\n-  color: #2b542c;\n-}\n-.wppm_bootstrap .alert-info {\n-  color: #31708f;\n-  background-color: #d9edf7;\n-  border-color: #bce8f1;\n-}\n-.wppm_bootstrap .alert-info hr {\n-  border-top-color: #a6e1ec;\n-}\n-.wppm_bootstrap .alert-info .alert-link {\n-  color: #245269;\n-}\n-.wppm_bootstrap .alert-warning {\n-  color: #8a6d3b;\n-  background-color: #fcf8e3;\n-  border-color: #faebcc;\n-}\n-.wppm_bootstrap .alert-warning hr {\n-  border-top-color: #f7e1b5;\n-}\n-.wppm_bootstrap .alert-warning .alert-link {\n-  color: #66512c;\n-}\n-.wppm_bootstrap .alert-danger {\n-  color: #a94442;\n-  background-color: #f2dede;\n-  border-color: #ebccd1;\n-}\n-.wppm_bootstrap .alert-danger hr {\n-  border-top-color: #e4b9c0;\n-}\n-.wppm_bootstrap .alert-danger .alert-link {\n-  color: #843534;\n-}\n-@-webkit-keyframes progress-bar-stripes {\n-  from {\n-    background-position: 40px 0;\n-  }\n-  to {\n-    background-position: 0 0;\n-  }\n-}\n-@-o-keyframes progress-bar-stripes {\n-  from {\n-    background-position: 40px 0;\n-  }\n-  to {\n-    background-position: 0 0;\n-  }\n-}\n-@keyframes progress-bar-stripes {\n-  from {\n-    background-position: 40px 0;\n-  }\n-  to {\n-    background-position: 0 0;\n-  }\n-}\n-.wppm_bootstrap .progress {\n-  height: 20px;\n-  margin-bottom: 20px;\n-  overflow: hidden;\n-  background-color: #f5f5f5;\n-  border-radius: 4px;\n-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\n-          box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\n-}\n-.wppm_bootstrap .progress-bar {\n-  float: left;\n-  width: 0;\n-  height: 100%;\n-  font-size: 12px;\n-  line-height: 20px;\n-  color: #fff;\n-  text-align: center;\n-  background-color: #337ab7;\n-  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\n-          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\n-  -webkit-transition: width .6s ease;\n-       -o-transition: width .6s ease;\n-          transition: width .6s ease;\n-}\n-.wppm_bootstrap .progress-striped .progress-bar,\n-.wppm_bootstrap .progress-bar-striped {\n-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-  -webkit-background-size: 40px 40px;\n-          background-size: 40px 40px;\n-}\n-.wppm_bootstrap .progress.active .progress-bar,\n-.wppm_bootstrap .progress-bar.active {\n-  -webkit-animation: progress-bar-stripes 2s linear infinite;\n-       -o-animation: progress-bar-stripes 2s linear infinite;\n-          animation: progress-bar-stripes 2s linear infinite;\n-}\n-.wppm_bootstrap .progress-bar-success {\n-  background-color: #5cb85c;\n-}\n-.wppm_bootstrap .progress-striped .progress-bar-success {\n-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-}\n-.wppm_bootstrap .progress-bar-info {\n-  background-color: #5bc0de;\n-}\n-.wppm_bootstrap .progress-striped .progress-bar-info {\n-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-}\n-.wppm_bootstrap .progress-bar-warning {\n-  background-color: #f0ad4e;\n-}\n-.wppm_bootstrap .progress-striped .progress-bar-warning {\n-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-}\n-.wppm_bootstrap .progress-bar-danger {\n-  background-color: #d9534f;\n-}\n-.wppm_bootstrap .progress-striped .progress-bar-danger {\n-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n-}\n-.wppm_bootstrap .media {\n-  margin-top: 15px;\n-}\n-.wppm_bootstrap .media:first-child {\n-  margin-top: 0;\n-}\n-.wppm_bootstrap .media,\n-.wppm_bootstrap .media-body {\n-  overflow: hidden;\n-  zoom: 1;\n-}\n-.wppm_bootstrap .media-body {\n-  width: 10000px;\n-}\n-.wppm_bootstrap .media-object {\n-  display: block;\n-}\n-.wppm_bootstrap .media-object.img-thumbnail {\n-  max-width: none;\n-}\n-.wppm_bootstrap .media-right,\n-.wppm_bootstrap .media > .pull-right {\n-  padding-left: 10px;\n-}\n-.wppm_bootstrap .media-left,\n-.wppm_bootstrap .media > .pull-left {\n-  padding-right: 10px;\n-}\n-.wppm_bootstrap .media-left,\n-.wppm_bootstrap .media-right,\n-.wppm_bootstrap .media-body {\n-  display: table-cell;\n-  vertical-align: top;\n-}\n-.wppm_bootstrap .media-middle {\n-  vertical-align: middle;\n-}\n-.wppm_bootstrap .media-bottom {\n-  vertical-align: bottom;\n-}\n-.wppm_bootstrap .media-heading {\n-  margin-top: 0;\n-  margin-bottom: 5px;\n-}\n-.wppm_bootstrap .media-list {\n-  padding-left: 0;\n-  list-style: none;\n-}\n-.wppm_bootstrap .list-group {\n-  padding-left: 0;\n-  margin-bottom: 20px;\n-}\n-.wppm_bootstrap .list-group-item {\n-  position: relative;\n-  display: block;\n-  padding: 10px 15px;\n-  margin-bottom: -1px;\n-  background-color: #fff;\n-  border: 1px solid #ddd;\n-}\n-.wppm_bootstrap .list-group-item:first-child {\n-  border-top-left-radius: 4px;\n-  border-top-right-radius: 4px;\n-}\n-.wppm_bootstrap .list-group-item:last-child {\n-  margin-bottom: 0;\n-  border-bottom-right-radius: 4px;\n-  border-bottom-left-radius: 4px;\n-}\n-.wppm_bootstrap a.list-group-item,\n-.wppm_bootstrap button.list-group-item {\n-  color: #555;\n-}\n-.wppm_bootstrap a.list-group-item .list-group-item-heading,\n-.wppm_bootstrap button.list-group-item .list-group-item-heading {\n-  color: #333;\n-}\n-.wppm_bootstrap a.list-group-item:hover,\n-.wppm_bootstrap button.list-group-item:hover,\n-.wppm_bootstrap a.list-group-item:focus,\n-.wppm_bootstrap button.list-group-item:focus {\n-  color: #555;\n-  text-decoration: none;\n-  background-color: #f5f5f5;\n-}\n-.wppm_bootstrap button.list-group-item {\n-  width: 100%;\n-  text-align: left;\n-}\n-.wppm_bootstrap .list-group-item.disabled,\n-.wppm_bootstrap .list-group-item.disabled:hover,\n-.wppm_bootstrap .list-group-item.disabled:focus {\n-  color: #777;\n-  cursor: not-allowed;\n-  background-color: #eee;\n-}\n-.wppm_bootstrap .list-group-item.disabled .list-group-item-heading,\n-.wppm_bootstrap .list-group-item.disabled:hover .list-group-item-heading,\n-.wppm_bootstrap .list-group-item.disabled:focus .list-group-item-heading {\n-  color: inherit;\n-}\n-.wppm_bootstrap .list-group-item.disabled .list-group-item-text,\n-.wppm_bootstrap .list-group-item.disabled:hover .list-group-item-text,\n-.wppm_bootstrap .list-group-item.disabled:focus .list-group-item-text {\n-  color: #777;\n-}\n-.wppm_bootstrap .list-group-item.active,\n-.wppm_bootstrap .list-group-item.active:hover,\n-.wppm_bootstrap .list-group-item.active:focus {\n-  z-index: 2;\n-  color: #fff;\n-  background-color: #337ab7;\n-  border-color: #337ab7;\n-}\n-.wppm_bootstrap .list-group-item.active .list-group-item-heading,\n-.wppm_bootstrap .list-group-item.active:hover .list-group-item-heading,\n-.wppm_bootstrap .list-group-item.active:focus .list-group-item-heading,\n-.wppm_bootstrap .list-group-item.active .list-group-item-heading > small,\n-.wppm_bootstrap .list-group-item.active:hover .list-group-item-heading > small,\n-.wppm_bootstrap .list-group-item.active:focus .list-group-item-heading > small,\n-.wppm_bootstrap .list-group-item.active .list-group-item-heading > .small,\n-.wppm_bootstrap .list-group-item.active:hover .list-group-item-heading > .small,\n-.wppm_bootstrap .list-group-item.active:focus .list-group-item-heading > .small {\n-  color: inherit;\n-}\n-.wppm_bootstrap .list-group-item.active .list-group-item-text,\n-.wppm_bootstrap .list-group-item.active:hover .list-group-item-text,\n-.wppm_bootstrap .list-group-item.active:focus .list-group-item-text {\n-  color: #c7ddef;\n-}\n-.wppm_bootstrap .list-group-item-success {\n-  color: #3c763d;\n-  background-color: #dff0d8;\n-}\n-.wppm_bootstrap a.list-group-item-success,\n-.wppm_bootstrap button.list-group-item-success {\n-  color: #3c763d;\n-}\n-.wppm_bootstrap a.list-group-item-success .list-group-item-heading,\n-.wppm_bootstrap button.list-group-item-success .list-group-item-heading {\n-  color: inherit;\n-}\n-.wppm_bootstrap a.list-group-item-success:hover,\n-.wppm_bootstrap button.list-group-item-success:hover,\n-.wppm_bootstrap a.list-group-item-success:focus,\n-.wppm_bootstrap button.list-group-item-success:focus {\n-  color: #3c763d;\n-  background-color: #d0e9c6;\n-}\n-.wppm_bootstrap a.list-group-item-success.active,\n-.wppm_bootstrap button.list-group-item-success.active,\n-.wppm_bootstrap a.list-group-item-success.active:hover,\n-.wppm_bootstrap button.list-group-item-success.active:hover,\n-.wppm_bootstrap a.list-group-item-success.active:focus,\n-.wppm_bootstrap button.list-group-item-success.active:focus {\n-  color: #fff;\n-  background-color: #3c763d;\n-  border-color: #3c763d;\n-}\n-.wppm_bootstrap .list-group-item-info {\n-  color: #31708f;\n-  background-color: #d9edf7;\n-}\n-.wppm_bootstrap a.list-group-item-info,\n-.wppm_bootstrap button.list-group-item-info {\n-  color: #31708f;\n-}\n-.wppm_bootstrap a.list-group-item-info .list-group-item-heading,\n-.wppm_bootstrap button.list-group-item-info .list-group-item-heading {\n-  color: inherit;\n-}\n-.wppm_bootstrap a.list-group-item-info:hover,\n-.wppm_bootstrap button.list-group-item-info:hover,\n-.wppm_bootstrap a.list-group-item-info:focus,\n-.wppm_bootstrap button.list-group-item-info:focus {\n-  color: #31708f;\n-  background-color: #c4e3f3;\n-}\n-.wppm_bootstrap a.list-group-item-info.active,\n-.wppm_bootstrap button.list-group-item-info.active,\n-.wppm_bootstrap a.list-group-item-info.active:hover,\n-.wppm_bootstrap button.list-group-item-info.active:hover,\n-.wppm_bootstrap a.list-group-item-info.active:focus,\n-.wppm_bootstrap button.list-group-item-info.active:focus {\n-  color: #fff;\n-  background-color: #31708f;\n-  border-color: #31708f;\n-}\n-.wppm_bootstrap .list-group-item-warning {\n-  color: #8a6d3b;\n-  background-color: #fcf8e3;\n-}\n-.wppm_bootstrap a.list-group-item-warning,\n-.wppm_bootstrap button.list-group-item-warning {\n-  color: #8a6d3b;\n-}\n-.wppm_bootstrap a.list-group-item-warning .list-group-item-heading,\n-.wppm_bootstrap button.list-group-item-warning .list-group-item-heading {\n-  color: inherit;\n-}\n-.wppm_bootstrap a.list-group-item-warning:hover,\n-.wppm_bootstrap button.list-group-item-warning:hover,\n-.wppm_bootstrap a.list-group-item-warning:focus,\n-.wppm_bootstrap button.list-group-item-warning:focus {\n-  color: #8a6d3b;\n-  background-color: #faf2cc;\n-}\n-.wppm_bootstrap a.list-group-item-warning.active,\n-.wppm_bootstrap button.list-group-item-warning.active,\n-.wppm_bootstrap a.list-group-item-warning.active:hover,\n-.wppm_bootstrap button.list-group-item-warning.active:hover,\n-.wppm_bootstrap a.list-group-item-warning.active:focus,\n-.wppm_bootstrap button.list-group-item-warning.active:focus {\n-  color: #fff;\n-  background-color: #8a6d3b;\n-  border-color: #8a6d3b;\n-}\n-.wppm_bootstrap .list-group-item-danger {\n-  color: #a94442;\n-  background-color: #f2dede;\n-}\n-.wppm_bootstrap a.list-group-item-danger,\n-.wppm_bootstrap button.list-group-item-danger {\n-  color: #a94442;\n-}\n-.wppm_bootstrap a.list-group-item-danger .list-group-item-heading,\n-.wppm_bootstrap button.list-group-item-danger .list-group-item-heading {\n-  color: inherit;\n-}\n-.wppm_bootstrap a.list-group-item-danger:hover,\n-.wppm_bootstrap button.list-group-item-danger:hover,\n-.wppm_bootstrap a.list-group-item-danger:focus,\n-.wppm_bootstrap button.list-group-item-danger:focus {\n-  color: #a94442;\n-  background-color: #ebcccc;\n-}\n-.wppm_bootstrap a.list-group-item-danger.active,\n-.wppm_bootstrap button.list-group-item-danger.active,\n-.wppm_bootstrap a.list-group-item-danger.active:hover,\n-.wppm_bootstrap button.list-group-item-danger.active:hover,\n-.wppm_bootstrap a.list-group-item-danger.active:focus,\n-.wppm_bootstrap button.list-group-item-danger.active:focus {\n-  color: #fff;\n-  background-color: #a94442;\n-  border-color: #a94442;\n-}\n-.wppm_bootstrap .list-group-item-heading {\n-  margin-top: 0;\n-  margin-bottom: 5px;\n-}\n-.wppm_bootstrap .list-group-item-text {\n-  margin-bottom: 0;\n-  line-height: 1.3;\n-}\n-.wppm_bootstrap .panel {\n-  margin-bottom: 20px;\n-  background-color: #fff;\n-  border: 1px solid transparent;\n-  border-radius: 4px;\n-  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\n-          box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\n-}\n-.wppm_bootstrap .panel-body {\n-  padding: 15px;\n-}\n-.wppm_bootstrap .panel-heading {\n-  padding: 10px 15px;\n-  border-bottom: 1px solid transparent;\n-  border-top-left-radius: 3px;\n-  border-top-right-radius: 3px;\n-}\n-.wppm_bootstrap .panel-heading > .dropdown .dropdown-toggle {\n-  color: inherit;\n-}\n-.wppm_bootstrap .panel-title {\n-  margin-top: 0;\n-  margin-bottom: 0;\n-  font-size: 16px;\n-  color: inherit;\n-}\n-.wppm_bootstrap .panel-title > a,\n-.wppm_bootstrap .panel-title > small,\n-.wppm_bootstrap .panel-title > .small,\n-.wppm_bootstrap .panel-title > small > a,\n-.wppm_bootstrap .panel-title > .small > a {\n-  color: inherit;\n-}\n-.wppm_bootstrap .panel-footer {\n-  padding: 10px 15px;\n-  background-color: #f5f5f5;\n-  border-top: 1px solid #ddd;\n-  border-bottom-right-radius: 3px;\n-  border-bottom-left-radius: 3px;\n-}\n-.wppm_bootstrap .panel > .list-group,\n-.wppm_bootstrap .panel > .panel-collapse > .list-group {\n-  margin-bottom: 0;\n-}\n-.wppm_bootstrap .panel > .list-group .list-group-item,\n-.wppm_bootstrap .panel > .panel-collapse > .list-group .list-group-item {\n-  border-width: 1px 0;\n-  border-radius: 0;\n-}\n-.wppm_bootstrap .panel > .list-group:first-child .list-group-item:first-child,\n-.wppm_bootstrap .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n-  border-top: 0;\n-  border-top-left-radius: 3px;\n-  border-top-right-radius: 3px;\n-}\n-.wppm_bootstrap .panel > .list-group:last-child .list-group-item:last-child,\n-.wppm_bootstrap .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n-  border-bottom: 0;\n-  border-bottom-right-radius: 3px;\n-  border-bottom-left-radius: 3px;\n-}\n-.wppm_bootstrap .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n-  border-top-left-radius: 0;\n-  border-top-right-radius: 0;\n-}\n-.wppm_bootstrap .panel-heading + .list-group .list-group-item:first-child {\n-  border-top-width: 0;\n-}\n-.wppm_bootstrap .list-group + .panel-footer {\n-  border-top-width: 0;\n-}\n-.wppm_bootstrap .panel > .table,\n-.wppm_bootstrap .panel > .table-responsive > .table,\n-.wppm_bootstrap .panel > .panel-collapse > .table {\n-  margin-bottom: 0;\n-}\n-.wppm_bootstrap .panel > .table caption,\n-.wppm_bootstrap .panel > .table-responsive > .table caption,\n-.wppm_bootstrap .panel > .panel-collapse > .table caption {\n-  padding-right: 15px;\n-  padding-left: 15px;\n-}\n-.wppm_bootstrap .panel > .table:first-child,\n-.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child {\n-  border-top-left-radius: 3px;\n-  border-top-right-radius: 3px;\n-}\n-.wppm_bootstrap .panel > .table:first-child > thead:first-child > tr:first-child,\n-.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n-.wppm_bootstrap .panel > .table:first-child > tbody:first-child > tr:first-child,\n-.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n-  border-top-left-radius: 3px;\n-  border-top-right-radius: 3px;\n-}\n-.wppm_bootstrap .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n-.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n-.wppm_bootstrap .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n-.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n-.wppm_bootstrap .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n-.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n-.wppm_bootstrap .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n-.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n-  border-top-left-radius: 3px;\n-}\n-.wppm_bootstrap .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n-.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n-.wppm_bootstrap .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n-.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n-.wppm_bootstrap .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n-.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n-.wppm_bootstrap .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n-.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n-  border-top-right-radius: 3px;\n-}\n-.wppm_bootstrap .panel > .table:last-child,\n-.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child {\n-  border-bottom-right-radius: 3px;\n-  border-bottom-left-radius: 3px;\n-}\n-.wppm_bootstrap .panel > .table:last-child > tbody:last-child > tr:last-child,\n-.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n-.wppm_bootstrap .panel > .table:last-child > tfoot:last-child > tr:last-child,\n-.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n-  border-bottom-right-radius: 3px;\n-  border-bottom-left-radius: 3px;\n-}\n-.wppm_bootstrap .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n-.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n-.wppm_bootstrap .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n-.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n-.wppm_bootstrap .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n-.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n-.wppm_bootstrap .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n-.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n-  border-bottom-left-radius: 3px;\n-}\n-.wppm_bootstrap .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n-.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n-.wppm_bootstrap .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n-.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n-.wppm_bootstrap .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n-.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n-.wppm_bootstrap .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n-.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n-  border-bottom-right-radius: 3px;\n-}\n-.wppm_bootstrap .panel > .panel-body + .table,\n-.wppm_bootstrap .panel > .panel-body + .table-responsive,\n-.wppm_bootstrap .panel > .table + .panel-body,\n-.wppm_bootstrap .panel > .table-responsive + .panel-body {\n-  border-top: 1px solid #ddd;\n-}\n-.wppm_bootstrap .panel > .table > tbody:first-child > tr:first-child th,\n-.wppm_bootstrap .panel > .table > tbody:first-child > tr:first-child td {\n-  border-top: 0;\n-}\n-.wppm_bootstrap .panel > .table-bordered,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered {\n-  border: 0;\n-}\n-.wppm_bootstrap .panel > .table-bordered > thead > tr > th:first-child,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n-.wppm_bootstrap .panel > .table-bordered > tbody > tr > th:first-child,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n-.wppm_bootstrap .panel > .table-bordered > tfoot > tr > th:first-child,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n-.wppm_bootstrap .panel > .table-bordered > thead > tr > td:first-child,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n-.wppm_bootstrap .panel > .table-bordered > tbody > tr > td:first-child,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n-.wppm_bootstrap .panel > .table-bordered > tfoot > tr > td:first-child,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n-  border-left: 0;\n-}\n-.wppm_bootstrap .panel > .table-bordered > thead > tr > th:last-child,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n-.wppm_bootstrap .panel > .table-bordered > tbody > tr > th:last-child,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n-.wppm_bootstrap .panel > .table-bordered > tfoot > tr > th:last-child,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n-.wppm_bootstrap .panel > .table-bordered > thead > tr > td:last-child,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n-.wppm_bootstrap .panel > .table-bordered > tbody > tr > td:last-child,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n-.wppm_bootstrap .panel > .table-bordered > tfoot > tr > td:last-child,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n-  border-right: 0;\n-}\n-.wppm_bootstrap .panel > .table-bordered > thead > tr:first-child > td,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n-.wppm_bootstrap .panel > .table-bordered > tbody > tr:first-child > td,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n-.wppm_bootstrap .panel > .table-bordered > thead > tr:first-child > th,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n-.wppm_bootstrap .panel > .table-bordered > tbody > tr:first-child > th,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n-  border-bottom: 0;\n-}\n-.wppm_bootstrap .panel > .table-bordered > tbody > tr:last-child > td,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n-.wppm_bootstrap .panel > .table-bordered > tfoot > tr:last-child > td,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n-.wppm_bootstrap .panel > .table-bordered > tbody > tr:last-child > th,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n-.wppm_bootstrap .panel > .table-bordered > tfoot > tr:last-child > th,\n-.wppm_bootstrap .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n-  border-bottom: 0;\n-}\n-.wppm_bootstrap .panel > .table-responsive {\n-  margin-bottom: 0;\n-  border: 0;\n-}\n-.wppm_bootstrap .panel-group {\n-  margin-bottom: 20px;\n-}\n-.wppm_bootstrap .panel-group .panel {\n-  margin-bottom: 0;\n-  border-radius: 4px;\n-}\n-.wppm_bootstrap .panel-group .panel + .panel {\n-  margin-top: 5px;\n-}\n-.wppm_bootstrap .panel-group .panel-heading {\n-  border-bottom: 0;\n-}\n-.wppm_bootstrap .panel-group .panel-heading + .panel-collapse > .panel-body,\n-.wppm_bootstrap .panel-group .panel-heading + .panel-collapse > .list-group {\n-  border-top: 1px solid #ddd;\n-}\n-.wppm_bootstrap .panel-group .panel-footer {\n-  border-top: 0;\n-}\n-.wppm_bootstrap .panel-group .panel-footer + .panel-collapse .panel-body {\n-  border-bottom: 1px solid #ddd;\n-}\n-.wppm_bootstrap .panel-default {\n-  border-color: #ddd;\n-}\n-.wppm_bootstrap .panel-default > .panel-heading {\n-  color: #333;\n-  background-color: #f5f5f5;\n-  border-color: #ddd;\n-}\n-.wppm_bootstrap .panel-default > .panel-heading + .panel-collapse > .panel-body {\n-  border-top-color: #ddd;\n-}\n-.wppm_bootstrap .panel-default > .panel-heading .badge {\n-  color: #f5f5f5;\n-  background-color: #333;\n-}\n-.wppm_bootstrap .panel-default > .panel-footer + .panel-collapse > .panel-body {\n-  border-bottom-color: #ddd;\n-}\n-.wppm_bootstrap .panel-primary {\n-  border-color: #337ab7;\n-}\n-.wppm_bootstrap .panel-primary > .panel-heading {\n-  color: #fff;\n-  background-color: #337ab7;\n-  border-color: #337ab7;\n-}\n-.wppm_bootstrap .panel-primary > .panel-heading + .panel-collapse > .panel-body {\n-  border-top-color: #337ab7;\n-}\n-.wppm_bootstrap .panel-primary > .panel-heading .badge {\n-  color: #337ab7;\n-  background-color: #fff;\n-}\n-.wppm_bootstrap .panel-primary > .panel-footer + .panel-collapse > .panel-body {\n-  border-bottom-color: #337ab7;\n-}\n-.wppm_bootstrap .panel-success {\n-  border-color: #d6e9c6;\n-}\n-.wppm_bootstrap .panel-success > .panel-heading {\n-  color: #3c763d;\n-  background-color: #dff0d8;\n-  border-color: #d6e9c6;\n-}\n-.wppm_bootstrap .panel-success > .panel-heading + .panel-collapse > .panel-body {\n-  border-top-color: #d6e9c6;\n-}\n-.wppm_bootstrap .panel-success > .panel-heading .badge {\n-  color: #dff0d8;\n-  background-color: #3c763d;\n-}\n-.wppm_bootstrap .panel-success > .panel-footer + .panel-collapse > .panel-body {\n-  border-bottom-color: #d6e9c6;\n-}\n-.wppm_bootstrap .panel-info {\n-  border-color: #bce8f1;\n-}\n-.wppm_bootstrap .panel-info > .panel-heading {\n-  color: #31708f;\n-  background-color: #d9edf7;\n-  border-color: #bce8f1;\n-}\n-.wppm_bootstrap .panel-info > .panel-heading + .panel-collapse > .panel-body {\n-  border-top-color: #bce8f1;\n-}\n-.wppm_bootstrap .panel-info > .panel-heading .badge {\n-  color: #d9edf7;\n-  background-color: #31708f;\n-}\n-.wppm_bootstrap .panel-info > .panel-footer + .panel-collapse > .panel-body {\n-  border-bottom-color: #bce8f1;\n-}\n-.wppm_bootstrap .panel-warning {\n-  border-color: #faebcc;\n-}\n-.wppm_bootstrap .panel-warning > .panel-heading {\n-  color: #8a6d3b;\n-  background-color: #fcf8e3;\n-  border-color: #faebcc;\n-}\n-.wppm_bootstrap .panel-warning > .panel-heading + .panel-collapse > .panel-body {\n-  border-top-color: #faebcc;\n-}\n-.wppm_bootstrap .panel-warning > .panel-heading .badge {\n-  color: #fcf8e3;\n-  background-color: #8a6d3b;\n-}\n-.wppm_bootstrap .panel-warning > .panel-footer + .panel-collapse > .panel-body {\n-  border-bottom-color: #faebcc;\n-}\n-.wppm_bootstrap .panel-danger {\n-  border-color: #ebccd1;\n-}\n-.wppm_bootstrap .panel-danger > .panel-heading {\n-  color: #a94442;\n-  background-color: #f2dede;\n-  border-color: #ebccd1;\n-}\n-.wppm_bootstrap .panel-danger > .panel-heading + .panel-collapse > .panel-body {\n-  border-top-color: #ebccd1;\n-}\n-.wppm_bootstrap .panel-danger > .panel-heading .badge {\n-  color: #f2dede;\n-  background-color: #a94442;\n-}\n-.wppm_bootstrap .panel-danger > .panel-footer + .panel-collapse > .panel-body {\n-  border-bottom-color: #ebccd1;\n-}\n-.wppm_bootstrap .embed-responsive {\n-  position: relative;\n-  display: block;\n-  height: 0;\n-  padding: 0;\n-  overflow: hidden;\n-}\n-.wppm_bootstrap .embed-responsive .embed-responsive-item,\n-.wppm_bootstrap .embed-responsive iframe,\n-.wppm_bootstrap .embed-responsive embed,\n-.wppm_bootstrap .embed-responsive object,\n-.wppm_bootstrap .embed-responsive video {\n-  position: absolute;\n-  top: 0;\n-  bottom: 0;\n-  left: 0;\n-  width: 100%;\n-  height: 100%;\n-  border: 0;\n-}\n-.wppm_bootstrap .embed-responsive-16by9 {\n-  padding-bottom: 56.25%;\n-}\n-.wppm_bootstrap .embed-responsive-4by3 {\n-  padding-bottom: 75%;\n-}\n-.wppm_bootstrap .well {\n-  min-height: 20px;\n-  padding: 19px;\n-  margin-bottom: 20px;\n-  background-color: #f5f5f5;\n-  border: 1px solid #e3e3e3;\n-  border-radius: 4px;\n-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\n-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\n-}\n-.wppm_bootstrap .well blockquote {\n-  border-color: #ddd;\n-  border-color: rgba(0, 0, 0, .15);\n-}\n-.wppm_bootstrap .well-lg {\n-  padding: 24px;\n-  border-radius: 6px;\n-}\n-.wppm_bootstrap .well-sm {\n-  padding: 9px;\n-  border-radius: 3px;\n-}\n-.wppm_bootstrap .close {\n-  float: right;\n-  font-size: 21px;\n-  font-weight: bold;\n-  line-height: 1;\n-  color: #000;\n-  text-shadow: 0 1px 0 #fff;\n-  filter: alpha(opacity=20);\n-  opacity: .2;\n-}\n-.wppm_bootstrap .close:hover,\n-.wppm_bootstrap .close:focus {\n-  color: #000;\n-  text-decoration: none;\n-  cursor: pointer;\n-  filter: alpha(opacity=50);\n-  opacity: .5;\n-}\n-.wppm_bootstrap button.close {\n-  -webkit-appearance: none;\n-  padding: 0;\n-  cursor: pointer;\n-  background: transparent;\n-  border: 0;\n-}\n-.wppm_bootstrap .modal-open {\n-  overflow: hidden;\n-}\n-.wppm_bootstrap .modal {\n-  position: fixed;\n-  top: 0;\n-  right: 0;\n-  bottom: 0;\n-  left: 0;\n-  z-index: 1050;\n-  display: none;\n-  overflow: hidden;\n-  -webkit-overflow-scrolling: touch;\n-  outline: 0;\n-}\n-.wppm_bootstrap .modal.fade .modal-dialog {\n-  -webkit-transition: -webkit-transform .3s ease-out;\n-       -o-transition:      -o-transform .3s ease-out;\n-          transition:         transform .3s ease-out;\n-  -webkit-transform: translate(0, -25%);\n-      -ms-transform: translate(0, -25%);\n-       -o-transform: translate(0, -25%);\n-          transform: translate(0, -25%);\n-}\n-.wppm_bootstrap .modal.in .modal-dialog {\n-  -webkit-transform: translate(0, 0);\n-      -ms-transform: translate(0, 0);\n-       -o-transform: translate(0, 0);\n-          transform: translate(0, 0);\n-}\n-.wppm_bootstrap .modal-open .modal {\n-  overflow-x: hidden;\n-  overflow-y: auto;\n-}\n-.wppm_bootstrap .modal-dialog {\n-  position: relative;\n-  width: auto;\n-  margin: 10px;\n-}\n-.wppm_bootstrap .modal-content {\n-  position: relative;\n-  background-color: #fff;\n-  -webkit-background-clip: padding-box;\n-          background-clip: padding-box;\n-  border: 1px solid #999;\n-  border: 1px solid rgba(0, 0, 0, .2);\n-  border-radius: 6px;\n-  outline: 0;\n-  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\n-          box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\n-}\n-.wppm_bootstrap .modal-backdrop {\n-  position: fixed;\n-  top: 0;\n-  right: 0;\n-  bottom: 0;\n-  left: 0;\n-  z-index: 1040;\n-  background-color: #000;\n-}\n-.wppm_bootstrap .modal-backdrop.fade {\n-  filter: alpha(opacity=0);\n-  opacity: 0;\n-}\n-.wppm_bootstrap .modal-backdrop.in {\n-  filter: alpha(opacity=50);\n-  opacity: .5;\n-}\n-.wppm_bootstrap .modal-header {\n-  padding: 15px;\n-  border-bottom: 1px solid #e5e5e5;\n-}\n-.wppm_bootstrap .modal-header .close {\n-  margin-top: -2px;\n-}\n-.wppm_bootstrap .modal-title {\n-  margin: 0;\n-  line-height: 1.42857143;\n-}\n-.wppm_bootstrap .modal-body {\n-  position: relative;\n-  padding: 15px;\n-}\n-.wppm_bootstrap .modal-footer {\n-  padding: 15px;\n-  text-align: right;\n-  border-top: 1px solid #e5e5e5;\n-}\n-.wppm_bootstrap .modal-footer .btn + .btn {\n-  margin-bottom: 0;\n-  margin-left: 5px;\n-}\n-.wppm_bootstrap .modal-footer .btn-group .btn + .btn {\n-  margin-left: -1px;\n-}\n-.wppm_bootstrap .modal-footer .btn-block + .btn-block {\n-  margin-left: 0;\n-}\n-.wppm_bootstrap .modal-scrollbar-measure {\n-  position: absolute;\n-  top: -9999px;\n-  width: 50px;\n-  height: 50px;\n-  overflow: scroll;\n-}\n-@media (min-width: 768px) {\n-  .modal-dialog {\n-    width: 600px;\n-    margin: 30px auto;\n-  }\n-  .modal-content {\n-    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\n-            box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\n-  }\n-  .modal-sm {\n-    width: 300px;\n-  }\n-}\n-@media (min-width: 992px) {\n-  .modal-lg {\n-    width: 900px;\n-  }\n-}\n-.wppm_bootstrap .tooltip {\n-  position: absolute;\n-  z-index: 1070;\n-  display: block;\n-  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n-  font-size: 12px;\n-  font-style: normal;\n-  font-weight: normal;\n-  line-height: 1.42857143;\n-  text-align: left;\n-  text-align: start;\n-  text-decoration: none;\n-  text-shadow: none;\n-  text-transform: none;\n-  letter-spacing: normal;\n-  word-break: normal;\n-  word-spacing: normal;\n-  word-wrap: normal;\n-  white-space: normal;\n-  filter: alpha(opacity=0);\n-  opacity: 0;\n-\n-  line-break: auto;\n-}\n-.wppm_bootstrap .tooltip.in {\n-  filter: alpha(opacity=90);\n-  opacity: .9;\n-}\n-.wppm_bootstrap .tooltip.top {\n-  padding: 5px 0;\n-  margin-top: -3px;\n-}\n-.wppm_bootstrap .tooltip.right {\n-  padding: 0 5px;\n-  margin-left: 3px;\n-}\n-.wppm_bootstrap .tooltip.bottom {\n-  padding: 5px 0;\n-  margin-top: 3px;\n-}\n-.wppm_bootstrap .tooltip.left {\n-  padding: 0 5px;\n-  margin-left: -3px;\n-}\n-.wppm_bootstrap .tooltip-inner {\n-  max-width: 200px;\n-  padding: 3px 8px;\n-  color: #fff;\n-  text-align: center;\n-  background-color: #000;\n-  border-radius: 4px;\n-}\n-.wppm_bootstrap .tooltip-arrow {\n-  position: absolute;\n-  width: 0;\n-  height: 0;\n-  border-color: transparent;\n-  border-style: solid;\n-}\n-.wppm_bootstrap .tooltip.top .tooltip-arrow {\n-  bottom: 0;\n-  left: 50%;\n-  margin-left: -5px;\n-  border-width: 5px 5px 0;\n-  border-top-color: #000;\n-}\n-.wppm_bootstrap .tooltip.top-left .tooltip-arrow {\n-  right: 5px;\n-  bottom: 0;\n-  margin-bottom: -5px;\n-  border-width: 5px 5px 0;\n-  border-top-color: #000;\n-}\n-.wppm_bootstrap .tooltip.top-right .tooltip-arrow {\n-  bottom: 0;\n-  left: 5px;\n-  margin-bottom: -5px;\n-  border-width: 5px 5px 0;\n-  border-top-color: #000;\n-}\n-.wppm_bootstrap .tooltip.right .tooltip-arrow {\n-  top: 50%;\n-  left: 0;\n-  margin-top: -5px;\n-  border-width: 5px 5px 5px 0;\n-  border-right-color: #000;\n-}\n-.wppm_bootstrap .tooltip.left .tooltip-arrow {\n-  top: 50%;\n-  right: 0;\n-  margin-top: -5px;\n-  border-width: 5px 0 5px 5px;\n-  border-left-color: #000;\n-}\n-.wppm_bootstrap .tooltip.bottom .tooltip-arrow {\n-  top: 0;\n-  left: 50%;\n-  margin-left: -5px;\n-  border-width: 0 5px 5px;\n-  border-bottom-color: #000;\n-}\n-.wppm_bootstrap .tooltip.bottom-left .tooltip-arrow {\n-  top: 0;\n-  right: 5px;\n-  margin-top: -5px;\n-  border-width: 0 5px 5px;\n-  border-bottom-color: #000;\n-}\n-.wppm_bootstrap .tooltip.bottom-right .tooltip-arrow {\n-  top: 0;\n-  left: 5px;\n-  margin-top: -5px;\n-  border-width: 0 5px 5px;\n-  border-bottom-color: #000;\n-}\n-.wppm_bootstrap .popover {\n-  position: absolute;\n-  top: 0;\n-  left: 0;\n-  z-index: 1060;\n-  display: none;\n-  max-width: 276px;\n-  padding: 1px;\n-  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n-  font-size: 14px;\n-  font-style: normal;\n-  font-weight: normal;\n-  line-height: 1.42857143;\n-  text-align: left;\n-  text-align: start;\n-  text-decoration: none;\n-  text-shadow: none;\n-  text-transform: none;\n-  letter-spacing: normal;\n-  word-break: normal;\n-  word-spacing: normal;\n-  word-wrap: normal;\n-  white-space: normal;\n-  background-color: #fff;\n-  -webkit-background-clip: padding-box;\n-          background-clip: padding-box;\n-  border: 1px solid #ccc;\n-  border: 1px solid rgba(0, 0, 0, .2);\n-  border-radius: 6px;\n-  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\n-          box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\n-\n-  line-break: auto;\n-}\n-.wppm_bootstrap .popover.top {\n-  margin-top: -10px;\n-}\n-.wppm_bootstrap .popover.right {\n-  margin-left: 10px;\n-}\n-.wppm_bootstrap .popover.bottom {\n-  margin-top: 10px;\n-}\n-.wppm_bootstrap .popover.left {\n-  margin-left: -10px;\n-}\n-.wppm_bootstrap .popover-title {\n-  padding: 8px 14px;\n-  margin: 0;\n-  font-size: 14px;\n-  background-color: #f7f7f7;\n-  border-bottom: 1px solid #ebebeb;\n-  border-radius: 5px 5px 0 0;\n-}\n-.wppm_bootstrap .popover-content {\n-  padding: 9px 14px;\n-}\n-.wppm_bootstrap .popover > .arrow,\n-.wppm_bootstrap .popover > .arrow:after {\n-  position: absolute;\n-  display: block;\n-  width: 0;\n-  height: 0;\n-  border-color: transparent;\n-  border-style: solid;\n-}\n-.wppm_bootstrap .popover > .arrow {\n-  border-width: 11px;\n-}\n-.wppm_bootstrap .popover > .arrow:after {\n-  content: \"\";\n-  border-width: 10px;\n-}\n-.wppm_bootstrap .popover.top > .arrow {\n-  bottom: -11px;\n-  left: 50%;\n-  margin-left: -11px;\n-  border-top-color: #999;\n-  border-top-color: rgba(0, 0, 0, .25);\n-  border-bottom-width: 0;\n-}\n-.wppm_bootstrap .popover.top > .arrow:after {\n-  bottom: 1px;\n-  margin-left: -10px;\n-  content: \" \";\n-  border-top-color: #fff;\n-  border-bottom-width: 0;\n-}\n-.wppm_bootstrap .popover.right > .arrow {\n-  top: 50%;\n-  left: -11px;\n-  margin-top: -11px;\n-  border-right-color: #999;\n-  border-right-color: rgba(0, 0, 0, .25);\n-  border-left-width: 0;\n-}\n-.wppm_bootstrap .popover.right > .arrow:after {\n-  bottom: -10px;\n-  left: 1px;\n-  content: \" \";\n-  border-right-color: #fff;\n-  border-left-width: 0;\n-}\n-.wppm_bootstrap .popover.bottom > .arrow {\n-  top: -11px;\n-  left: 50%;\n-  margin-left: -11px;\n-  border-top-width: 0;\n-  border-bottom-color: #999;\n-  border-bottom-color: rgba(0, 0, 0, .25);\n-}\n-.wppm_bootstrap .popover.bottom > .arrow:after {\n-  top: 1px;\n-  margin-left: -10px;\n-  content: \" \";\n-  border-top-width: 0;\n-  border-bottom-color: #fff;\n-}\n-.wppm_bootstrap .popover.left > .arrow {\n-  top: 50%;\n-  right: -11px;\n-  margin-top: -11px;\n-  border-right-width: 0;\n-  border-left-color: #999;\n-  border-left-color: rgba(0, 0, 0, .25);\n-}\n-.wppm_bootstrap .popover.left > .arrow:after {\n-  right: 1px;\n-  bottom: -10px;\n-  content: \" \";\n-  border-right-width: 0;\n-  border-left-color: #fff;\n-}\n-.wppm_bootstrap .carousel {\n-  position: relative;\n-}\n-.wppm_bootstrap .carousel-inner {\n-  position: relative;\n-  width: 100%;\n-  overflow: hidden;\n-}\n-.wppm_bootstrap .carousel-inner > .item {\n-  position: relative;\n-  display: none;\n-  -webkit-transition: .6s ease-in-out left;\n-       -o-transition: .6s ease-in-out left;\n-          transition: .6s ease-in-out left;\n-}\n-.wppm_bootstrap .carousel-inner > .item > img,\n-.wppm_bootstrap .carousel-inner > .item > a > img {\n-  line-height: 1;\n-}\n-@media all and (transform-3d), (-webkit-transform-3d) {\n-  .carousel-inner > .item {\n-    -webkit-transition: -webkit-transform .6s ease-in-out;\n-         -o-transition:      -o-transform .6s ease-in-out;\n-            transition:         transform .6s ease-in-out;\n-\n-    -webkit-backface-visibility: hidden;\n-            backface-visibility: hidden;\n-    -webkit-perspective: 1000px;\n-            perspective: 1000px;\n-  }\n-  .carousel-inner > .item.next,\n-  .carousel-inner > .item.active.right {\n-    left: 0;\n-    -webkit-transform: translate3d(100%, 0, 0);\n-            transform: translate3d(100%, 0, 0);\n-  }\n-  .carousel-inner > .item.prev,\n-  .carousel-inner > .item.active.left {\n-    left: 0;\n-    -webkit-transform: translate3d(-100%, 0, 0);\n-            transform: translate3d(-100%, 0, 0);\n-  }\n-  .carousel-inner > .item.next.left,\n-  .carousel-inner > .item.prev.right,\n-  .carousel-inner > .item.active {\n-    left: 0;\n-    -webkit-transform: translate3d(0, 0, 0);\n-            transform: translate3d(0, 0, 0);\n-  }\n-}\n-.wppm_bootstrap .carousel-inner > .active,\n-.wppm_bootstrap .carousel-inner > .next,\n-.wppm_bootstrap .carousel-inner > .prev {\n-  display: block;\n-}\n-.wppm_bootstrap .carousel-inner > .active {\n-  left: 0;\n-}\n-.wppm_bootstrap .carousel-inner > .next,\n-.wppm_bootstrap .carousel-inner > .prev {\n-  position: absolute;\n-  top: 0;\n-  width: 100%;\n-}\n-.wppm_bootstrap .carousel-inner > .next {\n-  left: 100%;\n-}\n-.wppm_bootstrap .carousel-inner > .prev {\n-  left: -100%;\n-}\n-.wppm_bootstrap .carousel-inner > .next.left,\n-.wppm_bootstrap .carousel-inner > .prev.right {\n-  left: 0;\n-}\n-.wppm_bootstrap .carousel-inner > .active.left {\n-  left: -100%;\n-}\n-.wppm_bootstrap .carousel-inner > .active.right {\n-  left: 100%;\n-}\n-.wppm_bootstrap .carousel-control {\n-  position: absolute;\n-  top: 0;\n-  bottom: 0;\n-  left: 0;\n-  width: 15%;\n-  font-size: 20px;\n-  color: #fff;\n-  text-align: center;\n-  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\n-  background-color: rgba(0, 0, 0, 0);\n-  filter: alpha(opacity=50);\n-  opacity: .5;\n-}\n-.wppm_bootstrap .carousel-control.left {\n-  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n-  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n-  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));\n-  background-image:         linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n-  background-repeat: repeat-x;\n-}\n-.wppm_bootstrap .carousel-control.right {\n-  right: 0;\n-  left: auto;\n-  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n-  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n-  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));\n-  background-image:         linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n-  background-repeat: repeat-x;\n-}\n-.wppm_bootstrap .carousel-control:hover,\n-.wppm_bootstrap .carousel-control:focus {\n-  color: #fff;\n-  text-decoration: none;\n-  filter: alpha(opacity=90);\n-  outline: 0;\n-  opacity: .9;\n-}\n-.wppm_bootstrap .carousel-control .icon-prev,\n-.wppm_bootstrap .carousel-control .icon-next,\n-.wppm_bootstrap .carousel-control .glyphicon-chevron-left,\n-.wppm_bootstrap .carousel-control .glyphicon-chevron-right {\n-  position: absolute;\n-  top: 50%;\n-  z-index: 5;\n-  display: inline-block;\n-  margin-top: -10px;\n-}\n-.wppm_bootstrap .carousel-control .icon-prev,\n-.wppm_bootstrap .carousel-control .glyphicon-chevron-left {\n-  left: 50%;\n-  margin-left: -10px;\n-}\n-.wppm_bootstrap .carousel-control .icon-next,\n-.wppm_bootstrap .carousel-control .glyphicon-chevron-right {\n-  right: 50%;\n-  margin-right: -10px;\n-}\n-.wppm_bootstrap .carousel-control .icon-prev,\n-.wppm_bootstrap .carousel-control .icon-next {\n-  width: 20px;\n-  height: 20px;\n-  font-family: serif;\n-  line-height: 1;\n-}\n-.wppm_bootstrap .carousel-control .icon-prev:before {\n-  content: '\\2039';\n-}\n-.wppm_bootstrap .carousel-control .icon-next:before {\n-  content: '\\203a';\n-}\n-.wppm_bootstrap .carousel-indicators {\n-  position: absolute;\n-  bottom: 10px;\n-  left: 50%;\n-  z-index: 15;\n-  width: 60%;\n-  padding-left: 0;\n-  margin-left: -30%;\n-  text-align: center;\n-  list-style: none;\n-}\n-.wppm_bootstrap .carousel-indicators li {\n-  display: inline-block;\n-  width: 10px;\n-  height: 10px;\n-  margin: 1px;\n-  text-indent: -999px;\n-  cursor: pointer;\n-  background-color: #000 \\9;\n-  background-color: rgba(0, 0, 0, 0);\n-  border: 1px solid #fff;\n-  border-radius: 10px;\n-}\n-.wppm_bootstrap .carousel-indicators .active {\n-  width: 12px;\n-  height: 12px;\n-  margin: 0;\n-  background-color: #fff;\n-}\n-.wppm_bootstrap .carousel-caption {\n-  position: absolute;\n-  right: 15%;\n-  bottom: 20px;\n-  left: 15%;\n-  z-index: 10;\n-  padding-top: 20px;\n-  padding-bottom: 20px;\n-  color: #fff;\n-  text-align: center;\n-  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\n-}\n-.wppm_bootstrap .carousel-caption .btn {\n-  text-shadow: none;\n-}\n-@media screen and (min-width: 768px) {\n-  .carousel-control .glyphicon-chevron-left,\n-  .carousel-control .glyphicon-chevron-right,\n-  .carousel-control .icon-prev,\n-  .carousel-control .icon-next {\n-    width: 30px;\n-    height: 30px;\n-    margin-top: -10px;\n-    font-size: 30px;\n-  }\n-  .carousel-control .glyphicon-chevron-left,\n-  .carousel-control .icon-prev {\n-    margin-left: -10px;\n-  }\n-  .carousel-control .glyphicon-chevron-right,\n-  .carousel-control .icon-next {\n-    margin-right: -10px;\n-  }\n-  .carousel-caption {\n-    right: 20%;\n-    left: 20%;\n-    padding-bottom: 30px;\n-  }\n-  .carousel-indicators {\n-    bottom: 20px;\n-  }\n-}\n-.wppm_bootstrap .clearfix:before,\n-.wppm_bootstrap .clearfix:after,\n-.wppm_bootstrap .dl-horizontal dd:before,\n-.wppm_bootstrap .dl-horizontal dd:after,\n-.wppm_bootstrap .container:before,\n-.wppm_bootstrap .container:after,\n-.wppm_bootstrap .container-fluid:before,\n-.wppm_bootstrap .container-fluid:after,\n-.wppm_bootstrap .row:before,\n-.wppm_bootstrap .row:after,\n-.wppm_bootstrap .form-horizontal .form-group:before,\n-.wppm_bootstrap .form-horizontal .form-group:after,\n-.wppm_bootstrap .btn-toolbar:before,\n-.wppm_bootstrap .btn-toolbar:after,\n-.wppm_bootstrap .btn-group-vertical > .btn-group:before,\n-.wppm_bootstrap .btn-group-vertical > .btn-group:after,\n-.wppm_bootstrap .nav:before,\n-.wppm_bootstrap .nav:after,\n-.wppm_bootstrap .navbar:before,\n-.wppm_bootstrap .navbar:after,\n-.wppm_bootstrap .navbar-header:before,\n-.wppm_bootstrap .navbar-header:after,\n-.wppm_bootstrap .navbar-collapse:before,\n-.wppm_bootstrap .navbar-collapse:after,\n-.wppm_bootstrap .pager:before,\n-.wppm_bootstrap .pager:after,\n-.wppm_bootstrap .panel-body:before,\n-.wppm_bootstrap .panel-body:after,\n-.wppm_bootstrap .modal-header:before,\n-.wppm_bootstrap .modal-header:after,\n-.wppm_bootstrap .modal-footer:before,\n-.wppm_bootstrap .modal-footer:after {\n-  display: table;\n-  content: \" \";\n-}\n-.wppm_bootstrap .clearfix:after,\n-.wppm_bootstrap .dl-horizontal dd:after,\n-.wppm_bootstrap .container:after,\n-.wppm_bootstrap .container-fluid:after,\n-.wppm_bootstrap .row:after,\n-.wppm_bootstrap .form-horizontal .form-group:after,\n-.wppm_bootstrap .btn-toolbar:after,\n-.wppm_bootstrap .btn-group-vertical > .btn-group:after,\n-.wppm_bootstrap .nav:after,\n-.wppm_bootstrap .navbar:after,\n-.wppm_bootstrap .navbar-header:after,\n-.wppm_bootstrap .navbar-collapse:after,\n-.wppm_bootstrap .pager:after,\n-.wppm_bootstrap .panel-body:after,\n-.wppm_bootstrap .modal-header:after,\n-.wppm_bootstrap .modal-footer:after {\n-  clear: both;\n-}\n-.wppm_bootstrap .center-block {\n-  display: block;\n-  margin-right: auto;\n-  margin-left: auto;\n-}\n-.wppm_bootstrap .pull-right {\n-  float: right !important;\n-}\n-.wppm_bootstrap .pull-left {\n-  float: left !important;\n-}\n-.wppm_bootstrap .hide {\n-  display: none !important;\n-}\n-.wppm_bootstrap .show {\n-  display: block !important;\n-}\n-.wppm_bootstrap .invisible {\n-  visibility: hidden;\n-}\n-.wppm_bootstrap .text-hide {\n-  font: 0\u002F0 a;\n-  color: transparent;\n-  text-shadow: none;\n-  background-color: transparent;\n-  border: 0;\n-}\n-.wppm_bootstrap .hidden {\n-  display: none !important;\n-}\n-.wppm_bootstrap .affix {\n-  position: fixed;\n-}\n-@-ms-viewport {\n-  width: device-width;\n-}\n-.wppm_bootstrap .visible-xs,\n-.wppm_bootstrap .visible-sm,\n-.wppm_bootstrap .visible-md,\n-.wppm_bootstrap .visible-lg {\n-  display: none !important;\n-}\n-.wppm_bootstrap .visible-xs-block,\n-.wppm_bootstrap .visible-xs-inline,\n-.wppm_bootstrap .visible-xs-inline-block,\n-.wppm_bootstrap .visible-sm-block,\n-.wppm_bootstrap .visible-sm-inline,\n-.wppm_bootstrap .visible-sm-inline-block,\n-.wppm_bootstrap .visible-md-block,\n-.wppm_bootstrap .visible-md-inline,\n-.wppm_bootstrap .visible-md-inline-block,\n-.wppm_bootstrap .visible-lg-block,\n-.wppm_bootstrap .visible-lg-inline,\n-.wppm_bootstrap .visible-lg-inline-block {\n-  display: none !important;\n-}\n-@media (max-width: 767px) {\n-  .visible-xs {\n-    display: block !important;\n-  }\n-  table.visible-xs {\n-    display: table !important;\n-  }\n-  tr.visible-xs {\n-    display: table-row !important;\n-  }\n-  th.visible-xs,\n-  td.visible-xs {\n-    display: table-cell !important;\n-  }\n-}\n-@media (max-width: 767px) {\n-  .visible-xs-block {\n-    display: block !important;\n-  }\n-}\n-@media (max-width: 767px) {\n-  .visible-xs-inline {\n-    display: inline !important;\n-  }\n-}\n-@media (max-width: 767px) {\n-  .visible-xs-inline-block {\n-    display: inline-block !important;\n-  }\n-}\n-@media (min-width: 768px) and (max-width: 991px) {\n-  .visible-sm {\n-    display: block !important;\n-  }\n-  table.visible-sm {\n-    display: table !important;\n-  }\n-  tr.visible-sm {\n-    display: table-row !important;\n-  }\n-  th.visible-sm,\n-  td.visible-sm {\n-    display: table-cell !important;\n-  }\n-}\n-@media (min-width: 768px) and (max-width: 991px) {\n-  .visible-sm-block {\n-    display: block !important;\n-  }\n-}\n-@media (min-width: 768px) and (max-width: 991px) {\n-  .visible-sm-inline {\n-    display: inline !important;\n-  }\n-}\n-@media (min-width: 768px) and (max-width: 991px) {\n-  .visible-sm-inline-block {\n-    display: inline-block !important;\n-  }\n-}\n-@media (min-width: 992px) and (max-width: 1199px) {\n-  .visible-md {\n-    display: block !important;\n-  }\n-  table.visible-md {\n-    display: table !important;\n-  }\n-  tr.visible-md {\n-    display: table-row !important;\n-  }\n-  th.visible-md,\n-  td.visible-md {\n-    display: table-cell !important;\n-  }\n-}\n-@media (min-width: 992px) and (max-width: 1199px) {\n-  .visible-md-block {\n-    display: block !important;\n-  }\n-}\n-@media (min-width: 992px) and (max-width: 1199px) {\n-  .visible-md-inline {\n-    display: inline !important;\n-  }\n-}\n-@media (min-width: 992px) and (max-width: 1199px) {\n-  .visible-md-inline-block {\n-    display: inline-block !important;\n-  }\n-}\n-@media (min-width: 1200px) {\n-  .visible-lg {\n-    display: block !important;\n-  }\n-  table.visible-lg {\n-    display: table !important;\n-  }\n-  tr.visible-lg {\n-    display: table-row !important;\n-  }\n-  th.visible-lg,\n-  td.visible-lg {\n-    display: table-cell !important;\n-  }\n-}\n-@media (min-width: 1200px) {\n-  .visible-lg-block {\n-    display: block !important;\n-  }\n-}\n-@media (min-width: 1200px) {\n-  .visible-lg-inline {\n-    display: inline !important;\n-  }\n-}\n-@media (min-width: 1200px) {\n-  .visible-lg-inline-block {\n-    display: inline-block !important;\n-  }\n-}\n-@media (max-width: 767px) {\n-  .hidden-xs {\n-    display: none !important;\n-  }\n-}\n-@media (min-width: 768px) and (max-width: 991px) {\n-  .hidden-sm {\n-    display: none !important;\n-  }\n-}\n-@media (min-width: 992px) and (max-width: 1199px) {\n-  .hidden-md {\n-    display: none !important;\n-  }\n-}\n-@media (min-width: 1200px) {\n-  .hidden-lg {\n-    display: none !important;\n-  }\n-}\n-.visible-print {\n-  display: none !important;\n-}\n-@media print {\n-  .visible-print {\n-    display: block !important;\n-  }\n-  table.visible-print {\n-    display: table !important;\n-  }\n-  tr.visible-print {\n-    display: table-row !important;\n-  }\n-  th.visible-print,\n-  td.visible-print {\n-    display: table-cell !important;\n-  }\n-}\n-.visible-print-block {\n-  display: none !important;\n-}\n-@media print {\n-  .visible-print-block {\n-    display: block !important;\n-  }\n-}\n-.visible-print-inline {\n-  display: none !important;\n-}\n-@media print {\n-  .visible-print-inline {\n-    display: inline !important;\n-  }\n-}\n-.visible-print-inline-block {\n-  display: none !important;\n-}\n-@media print {\n-  .visible-print-inline-block {\n-    display: inline-block !important;\n-  }\n-}\n-@media print {\n-  .hidden-print {\n-    display: none !important;\n-  }\n-}\n-.wppm_bootstrap .ui-state-default{\n-  background-color: #fff !important;\n-  color:#000 !important;\n-  border: none !important;\n-  background : none !important;\n-}\n+.wppm_bootstrap html {\r\n+  font-family: sans-serif;\r\n+  -webkit-text-size-adjust: 100%;\r\n+      -ms-text-size-adjust: 100%;\r\n+}\r\n+.wppm_bootstrap body {\r\n+  margin: 0;\r\n+}\r\n+.wppm_bootstrap article,\r\n+.wppm_bootstrap aside,\r\n+.wppm_bootstrap details,\r\n+.wppm_bootstrap figcaption,\r\n+.wppm_bootstrap figure,\r\n+.wppm_bootstrap footer,\r\n+.wppm_bootstrap header,\r\n+.wppm_bootstrap hgroup,\r\n+.wppm_bootstrap main,\r\n+.wppm_bootstrap menu,\r\n+.wppm_bootstrap nav,\r\n+.wppm_bootstrap section,\r\n+.wppm_bootstrap summary {\r\n+  display: block;\r\n+}\r\n+.wppm_bootstrap audio,\r\n+.wppm_bootstrap canvas,\r\n+.wppm_bootstrap progress,\r\n+.wppm_bootstrap video {\r\n+  display: inline-block;\r\n+  vertical-align: baseline;\r\n+}\r\n+.wppm_bootstrap audio:not([controls]) {\r\n+  display: none;\r\n+  height: 0;\r\n+}\r\n+[hidden],\r\n+.wppm_bootstrap template {\r\n+  display: none;\r\n+}\r\n+.wppm_bootstrap a {\r\n+  background-color: transparent;\r\n+}\r\n+.wppm_bootstrap a:active,\r\n+.wppm_bootstrap a:hover {\r\n+  outline: 0;\r\n+}\r\n+.wppm_bootstrap abbr[title] {\r\n+  border-bottom: 1px dotted;\r\n+}\r\n+.wppm_bootstrap b,\r\n+.wppm_bootstrap strong {\r\n+  font-weight: bold;\r\n+}\r\n+.wppm_bootstrap dfn {\r\n+  font-style: italic;\r\n+}\r\n+.wppm_bootstrap h1 {\r\n+  margin: .67em 0;\r\n+  font-size: 2em;\r\n+}\r\n+.wppm_bootstrap mark {\r\n+  color: #000;\r\n+  background: #ff0;\r\n+}\r\n+.wppm_bootstrap small {\r\n+  font-size: 80%;\r\n+}\r\n+.wppm_bootstrap sub,\r\n+.wppm_bootstrap sup {\r\n+  position: relative;\r\n+  font-size: 75%;\r\n+  line-height: 0;\r\n+  vertical-align: baseline;\r\n+}\r\n+.wppm_bootstrap sup {\r\n+  top: -.5em;\r\n+}\r\n+.wppm_bootstrap sub {\r\n+  bottom: -.25em;\r\n+}\r\n+.wppm_bootstrap img {\r\n+  border: 0;\r\n+}\r\n+.wppm_bootstrap svg:not(:root) {\r\n+  overflow: hidden;\r\n+}\r\n+.wppm_bootstrap figure {\r\n+  margin: 1em 40px;\r\n+}\r\n+.wppm_bootstrap hr {\r\n+  height: 0;\r\n+  -webkit-box-sizing: content-box;\r\n+     -moz-box-sizing: content-box;\r\n+          box-sizing: content-box;\r\n+}\r\n+.wppm_bootstrap pre {\r\n+  overflow: auto;\r\n+}\r\n+.wppm_bootstrap code,\r\n+.wppm_bootstrap kbd,\r\n+.wppm_bootstrap pre,\r\n+.wppm_bootstrap samp {\r\n+  font-family: monospace, monospace;\r\n+  font-size: 1em;\r\n+}\r\n+.wppm_bootstrap button,\r\n+.wppm_bootstrap input,\r\n+.wppm_bootstrap optgroup,\r\n+.wppm_bootstrap select,\r\n+.wppm_bootstrap textarea {\r\n+  margin: 0;\r\n+  font: inherit;\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap button {\r\n+  overflow: visible;\r\n+}\r\n+.wppm_bootstrap button,\r\n+.wppm_bootstrap select {\r\n+  text-transform: none;\r\n+}\r\n+.wppm_bootstrap button,\r\n+.wppm_bootstrap html input[type=\"button\"],\r\n+.wppm_bootstrap input[type=\"reset\"],\r\n+.wppm_bootstrap input[type=\"submit\"] {\r\n+  -webkit-appearance: button;\r\n+  cursor: pointer;\r\n+}\r\n+.wppm_bootstrap button[disabled],\r\n+.wppm_bootstrap html input[disabled] {\r\n+  cursor: default;\r\n+}\r\n+.wppm_bootstrap button::-moz-focus-inner,\r\n+.wppm_bootstrap input::-moz-focus-inner {\r\n+  padding: 0;\r\n+  border: 0;\r\n+}\r\n+.wppm_bootstrap input {\r\n+  line-height: normal;\r\n+}\r\n+.wppm_bootstrap input[type=\"checkbox\"],\r\n+.wppm_bootstrap input[type=\"radio\"] {\r\n+  -webkit-box-sizing: border-box;\r\n+     -moz-box-sizing: border-box;\r\n+          box-sizing: border-box;\r\n+  padding: 0;\r\n+}\r\n+.wppm_bootstrap input[type=\"number\"]::-webkit-inner-spin-button,\r\n+.wppm_bootstrap input[type=\"number\"]::-webkit-outer-spin-button {\r\n+  height: auto;\r\n+}\r\n+.wppm_bootstrap input[type=\"search\"] {\r\n+  -webkit-box-sizing: content-box;\r\n+     -moz-box-sizing: content-box;\r\n+          box-sizing: content-box;\r\n+  -webkit-appearance: textfield;\r\n+}\r\n+.wppm_bootstrap input[type=\"search\"]::-webkit-search-cancel-button,\r\n+.wppm_bootstrap input[type=\"search\"]::-webkit-search-decoration {\r\n+  -webkit-appearance: none;\r\n+}\r\n+.wppm_bootstrap fieldset {\r\n+  padding: .35em .625em .75em;\r\n+  margin: 0 2px;\r\n+  border: 1px solid #c0c0c0;\r\n+}\r\n+.wppm_bootstrap legend {\r\n+  padding: 0;\r\n+  border: 0;\r\n+}\r\n+.wppm_bootstrap textarea {\r\n+  overflow: auto;\r\n+}\r\n+.wppm_bootstrap optgroup {\r\n+  font-weight: bold;\r\n+}\r\n+.wppm_bootstrap table {\r\n+  border-spacing: 0;\r\n+  border-collapse: collapse;\r\n+}\r\n+.wppm_bootstrap td,\r\n+.wppm_bootstrap th {\r\n+  padding: 0;\r\n+}\r\n+\u002F*! Source: https:\u002F\u002Fgithub.com\u002Fh5bp\u002Fhtml5-boilerplate\u002Fblob\u002Fmaster\u002Fsrc\u002Fcss\u002Fmain.css *\u002F\r\n+@media print {\r\n+  *,\r\n+  .wppm_bootstrap *:before,\r\n+  .wppm_bootstrap *:after {\r\n+    color: #000 !important;\r\n+    text-shadow: none !important;\r\n+    background: transparent !important;\r\n+    -webkit-box-shadow: none !important;\r\n+            box-shadow: none !important;\r\n+  }\r\n+  .wppm_bootstrap a,\r\n+  .wppm_bootstrap a:visited {\r\n+    text-decoration: underline;\r\n+  }\r\n+  .wppm_bootstrap a[href]:after {\r\n+    content: \" (\" attr(href) \")\";\r\n+  }\r\n+  .wppm_bootstrap abbr[title]:after {\r\n+    content: \" (\" attr(title) \")\";\r\n+  }\r\n+  .wppm_bootstrap a[href^=\"#\"]:after,\r\n+  .wppm_bootstrap a[href^=\"javascript:\"]:after {\r\n+    content: \"\";\r\n+  }\r\n+  .wppm_bootstrap pre,\r\n+  .wppm_bootstrap blockquote {\r\n+    border: 1px solid #999;\r\n+\r\n+    page-break-inside: avoid;\r\n+  }\r\n+  .wppm_bootstrap thead {\r\n+    display: table-header-group;\r\n+  }\r\n+  .wppm_bootstrap tr,\r\n+  .wppm_bootstrap img {\r\n+    page-break-inside: avoid;\r\n+  }\r\n+  .wppm_bootstrap img {\r\n+    max-width: 100% !important;\r\n+  }\r\n+  .wppm_bootstrap p,\r\n+  .wppm_bootstrap h2,\r\n+  .wppm_bootstrap h3 {\r\n+    orphans: 3;\r\n+    widows: 3;\r\n+  }\r\n+  .wppm_bootstrap h2,\r\n+  .wppm_bootstrap h3 {\r\n+    page-break-after: avoid;\r\n+  }\r\n+  .wppm_bootstrap .navbar {\r\n+    display: none;\r\n+  }\r\n+  .wppm_bootstrap .btn > .caret,\r\n+  .wppm_bootstrap .dropup > .btn > .caret {\r\n+    border-top-color: #000 !important;\r\n+  }\r\n+  .wppm_bootstrap .label {\r\n+    border: 1px solid #000;\r\n+  }\r\n+  \u002F* .wppm_bootstrap .table {\r\n+    border-collapse: collapse !important;\r\n+  }\r\n+  .wppm_bootstrap .table td,\r\n+  .wppm_bootstrap .table th {\r\n+    background-color: #fff !important;\r\n+  } *\u002F\r\n+\r\n+  .wppm_bootstrap .wppm_table th{\r\n+    border-bottom: 1px solid #555c64;\r\n+    line-height: 2.2em;\r\n+    font-weight: 400;\r\n+    text-align: left;\r\n+    font-size: 14px;\r\n+    display: table-cell;\r\n+    vertical-align: inherit;\r\n+    background-color:#304FFE;\r\n+    color: #FFFFFF;\r\n+    width:2.2em;\r\n+    padding:0 0 0 3px;\r\n+  }\r\n+\r\n+  \u002F* .wppm_bootstrap .table-bordered th,\r\n+  .wppm_bootstrap .table-bordered td {\r\n+    border: 1px solid #ddd !important;\r\n+  } *\u002F\r\n+}\r\n+@font-face {\r\n+  font-family: 'Glyphicons Halflings';\r\n+\r\n+  src: url('..\u002Ffonts\u002Fglyphicons-halflings-regular.eot');\r\n+  src: url('..\u002Ffonts\u002Fglyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('..\u002Ffonts\u002Fglyphicons-halflings-regular.woff2') format('woff2'), url('..\u002Ffonts\u002Fglyphicons-halflings-regular.woff') format('woff'), url('..\u002Ffonts\u002Fglyphicons-halflings-regular.ttf') format('truetype'), url('..\u002Ffonts\u002Fglyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\r\n+}\r\n+.wppm_bootstrap .glyphicon {\r\n+  position: relative;\r\n+  top: 1px;\r\n+  display: inline-block;\r\n+  font-family: 'Glyphicons Halflings';\r\n+  font-style: normal;\r\n+  font-weight: normal;\r\n+  line-height: 1;\r\n+\r\n+  -webkit-font-smoothing: antialiased;\r\n+  -moz-osx-font-smoothing: grayscale;\r\n+}\r\n+.wppm_bootstrap .glyphicon-asterisk:before {\r\n+  content: \"\\002a\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-plus:before {\r\n+  content: \"\\002b\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-euro:before,\r\n+.wppm_bootstrap .glyphicon-eur:before {\r\n+  content: \"\\20ac\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-minus:before {\r\n+  content: \"\\2212\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-cloud:before {\r\n+  content: \"\\2601\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-envelope:before {\r\n+  content: \"\\2709\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-pencil:before {\r\n+  content: \"\\270f\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-glass:before {\r\n+  content: \"\\e001\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-music:before {\r\n+  content: \"\\e002\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-search:before {\r\n+  content: \"\\e003\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-heart:before {\r\n+  content: \"\\e005\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-star:before {\r\n+  content: \"\\e006\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-star-empty:before {\r\n+  content: \"\\e007\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-user:before {\r\n+  content: \"\\e008\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-film:before {\r\n+  content: \"\\e009\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-th-large:before {\r\n+  content: \"\\e010\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-th:before {\r\n+  content: \"\\e011\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-th-list:before {\r\n+  content: \"\\e012\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-ok:before {\r\n+  content: \"\\e013\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-remove:before {\r\n+  content: \"\\e014\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-zoom-in:before {\r\n+  content: \"\\e015\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-zoom-out:before {\r\n+  content: \"\\e016\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-off:before {\r\n+  content: \"\\e017\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-signal:before {\r\n+  content: \"\\e018\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-cog:before {\r\n+  content: \"\\e019\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-trash:before {\r\n+  content: \"\\e020\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-home:before {\r\n+  content: \"\\e021\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-file:before {\r\n+  content: \"\\e022\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-time:before {\r\n+  content: \"\\e023\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-road:before {\r\n+  content: \"\\e024\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-download-alt:before {\r\n+  content: \"\\e025\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-download:before {\r\n+  content: \"\\e026\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-upload:before {\r\n+  content: \"\\e027\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-inbox:before {\r\n+  content: \"\\e028\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-play-circle:before {\r\n+  content: \"\\e029\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-repeat:before {\r\n+  content: \"\\e030\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-refresh:before {\r\n+  content: \"\\e031\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-list-alt:before {\r\n+  content: \"\\e032\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-lock:before {\r\n+  content: \"\\e033\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-flag:before {\r\n+  content: \"\\e034\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-headphones:before {\r\n+  content: \"\\e035\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-volume-off:before {\r\n+  content: \"\\e036\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-volume-down:before {\r\n+  content: \"\\e037\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-volume-up:before {\r\n+  content: \"\\e038\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-qrcode:before {\r\n+  content: \"\\e039\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-barcode:before {\r\n+  content: \"\\e040\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-tag:before {\r\n+  content: \"\\e041\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-tags:before {\r\n+  content: \"\\e042\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-book:before {\r\n+  content: \"\\e043\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-bookmark:before {\r\n+  content: \"\\e044\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-print:before {\r\n+  content: \"\\e045\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-camera:before {\r\n+  content: \"\\e046\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-font:before {\r\n+  content: \"\\e047\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-bold:before {\r\n+  content: \"\\e048\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-italic:before {\r\n+  content: \"\\e049\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-text-height:before {\r\n+  content: \"\\e050\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-text-width:before {\r\n+  content: \"\\e051\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-align-left:before {\r\n+  content: \"\\e052\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-align-center:before {\r\n+  content: \"\\e053\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-align-right:before {\r\n+  content: \"\\e054\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-align-justify:before {\r\n+  content: \"\\e055\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-list:before {\r\n+  content: \"\\e056\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-indent-left:before {\r\n+  content: \"\\e057\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-indent-right:before {\r\n+  content: \"\\e058\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-facetime-video:before {\r\n+  content: \"\\e059\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-picture:before {\r\n+  content: \"\\e060\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-map-marker:before {\r\n+  content: \"\\e062\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-adjust:before {\r\n+  content: \"\\e063\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-tint:before {\r\n+  content: \"\\e064\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-edit:before {\r\n+  content: \"\\e065\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-share:before {\r\n+  content: \"\\e066\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-check:before {\r\n+  content: \"\\e067\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-move:before {\r\n+  content: \"\\e068\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-step-backward:before {\r\n+  content: \"\\e069\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-fast-backward:before {\r\n+  content: \"\\e070\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-backward:before {\r\n+  content: \"\\e071\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-play:before {\r\n+  content: \"\\e072\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-pause:before {\r\n+  content: \"\\e073\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-stop:before {\r\n+  content: \"\\e074\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-forward:before {\r\n+  content: \"\\e075\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-fast-forward:before {\r\n+  content: \"\\e076\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-step-forward:before {\r\n+  content: \"\\e077\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-eject:before {\r\n+  content: \"\\e078\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-chevron-left:before {\r\n+  content: \"\\e079\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-chevron-right:before {\r\n+  content: \"\\e080\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-plus-sign:before {\r\n+  content: \"\\e081\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-minus-sign:before {\r\n+  content: \"\\e082\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-remove-sign:before {\r\n+  content: \"\\e083\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-ok-sign:before {\r\n+  content: \"\\e084\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-question-sign:before {\r\n+  content: \"\\e085\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-info-sign:before {\r\n+  content: \"\\e086\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-screenshot:before {\r\n+  content: \"\\e087\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-remove-circle:before {\r\n+  content: \"\\e088\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-ok-circle:before {\r\n+  content: \"\\e089\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-ban-circle:before {\r\n+  content: \"\\e090\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-arrow-left:before {\r\n+  content: \"\\e091\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-arrow-right:before {\r\n+  content: \"\\e092\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-arrow-up:before {\r\n+  content: \"\\e093\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-arrow-down:before {\r\n+  content: \"\\e094\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-share-alt:before {\r\n+  content: \"\\e095\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-resize-full:before {\r\n+  content: \"\\e096\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-resize-small:before {\r\n+  content: \"\\e097\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-exclamation-sign:before {\r\n+  content: \"\\e101\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-gift:before {\r\n+  content: \"\\e102\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-leaf:before {\r\n+  content: \"\\e103\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-fire:before {\r\n+  content: \"\\e104\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-eye-open:before {\r\n+  content: \"\\e105\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-eye-close:before {\r\n+  content: \"\\e106\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-warning-sign:before {\r\n+  content: \"\\e107\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-plane:before {\r\n+  content: \"\\e108\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-calendar:before {\r\n+  content: \"\\e109\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-random:before {\r\n+  content: \"\\e110\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-comment:before {\r\n+  content: \"\\e111\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-magnet:before {\r\n+  content: \"\\e112\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-chevron-up:before {\r\n+  content: \"\\e113\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-chevron-down:before {\r\n+  content: \"\\e114\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-retweet:before {\r\n+  content: \"\\e115\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-shopping-cart:before {\r\n+  content: \"\\e116\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-folder-close:before {\r\n+  content: \"\\e117\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-folder-open:before {\r\n+  content: \"\\e118\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-resize-vertical:before {\r\n+  content: \"\\e119\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-resize-horizontal:before {\r\n+  content: \"\\e120\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-hdd:before {\r\n+  content: \"\\e121\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-bullhorn:before {\r\n+  content: \"\\e122\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-bell:before {\r\n+  content: \"\\e123\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-certificate:before {\r\n+  content: \"\\e124\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-thumbs-up:before {\r\n+  content: \"\\e125\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-thumbs-down:before {\r\n+  content: \"\\e126\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-hand-right:before {\r\n+  content: \"\\e127\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-hand-left:before {\r\n+  content: \"\\e128\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-hand-up:before {\r\n+  content: \"\\e129\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-hand-down:before {\r\n+  content: \"\\e130\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-circle-arrow-right:before {\r\n+  content: \"\\e131\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-circle-arrow-left:before {\r\n+  content: \"\\e132\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-circle-arrow-up:before {\r\n+  content: \"\\e133\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-circle-arrow-down:before {\r\n+  content: \"\\e134\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-globe:before {\r\n+  content: \"\\e135\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-wrench:before {\r\n+  content: \"\\e136\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-tasks:before {\r\n+  content: \"\\e137\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-filter:before {\r\n+  content: \"\\e138\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-briefcase:before {\r\n+  content: \"\\e139\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-fullscreen:before {\r\n+  content: \"\\e140\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-dashboard:before {\r\n+  content: \"\\e141\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-paperclip:before {\r\n+  content: \"\\e142\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-heart-empty:before {\r\n+  content: \"\\e143\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-link:before {\r\n+  content: \"\\e144\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-phone:before {\r\n+  content: \"\\e145\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-pushpin:before {\r\n+  content: \"\\e146\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-usd:before {\r\n+  content: \"\\e148\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-gbp:before {\r\n+  content: \"\\e149\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sort:before {\r\n+  content: \"\\e150\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sort-by-alphabet:before {\r\n+  content: \"\\e151\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sort-by-alphabet-alt:before {\r\n+  content: \"\\e152\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sort-by-order:before {\r\n+  content: \"\\e153\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sort-by-order-alt:before {\r\n+  content: \"\\e154\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sort-by-attributes:before {\r\n+  content: \"\\e155\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sort-by-attributes-alt:before {\r\n+  content: \"\\e156\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-unchecked:before {\r\n+  content: \"\\e157\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-expand:before {\r\n+  content: \"\\e158\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-collapse-down:before {\r\n+  content: \"\\e159\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-collapse-up:before {\r\n+  content: \"\\e160\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-log-in:before {\r\n+  content: \"\\e161\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-flash:before {\r\n+  content: \"\\e162\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-log-out:before {\r\n+  content: \"\\e163\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-new-window:before {\r\n+  content: \"\\e164\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-record:before {\r\n+  content: \"\\e165\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-save:before {\r\n+  content: \"\\e166\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-open:before {\r\n+  content: \"\\e167\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-saved:before {\r\n+  content: \"\\e168\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-import:before {\r\n+  content: \"\\e169\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-export:before {\r\n+  content: \"\\e170\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-send:before {\r\n+  content: \"\\e171\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-floppy-disk:before {\r\n+  content: \"\\e172\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-floppy-saved:before {\r\n+  content: \"\\e173\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-floppy-remove:before {\r\n+  content: \"\\e174\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-floppy-save:before {\r\n+  content: \"\\e175\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-floppy-open:before {\r\n+  content: \"\\e176\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-credit-card:before {\r\n+  content: \"\\e177\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-transfer:before {\r\n+  content: \"\\e178\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-cutlery:before {\r\n+  content: \"\\e179\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-header:before {\r\n+  content: \"\\e180\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-compressed:before {\r\n+  content: \"\\e181\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-earphone:before {\r\n+  content: \"\\e182\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-phone-alt:before {\r\n+  content: \"\\e183\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-tower:before {\r\n+  content: \"\\e184\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-stats:before {\r\n+  content: \"\\e185\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sd-video:before {\r\n+  content: \"\\e186\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-hd-video:before {\r\n+  content: \"\\e187\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-subtitles:before {\r\n+  content: \"\\e188\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sound-stereo:before {\r\n+  content: \"\\e189\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sound-dolby:before {\r\n+  content: \"\\e190\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sound-5-1:before {\r\n+  content: \"\\e191\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sound-6-1:before {\r\n+  content: \"\\e192\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sound-7-1:before {\r\n+  content: \"\\e193\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-copyright-mark:before {\r\n+  content: \"\\e194\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-registration-mark:before {\r\n+  content: \"\\e195\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-cloud-download:before {\r\n+  content: \"\\e197\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-cloud-upload:before {\r\n+  content: \"\\e198\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-tree-conifer:before {\r\n+  content: \"\\e199\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-tree-deciduous:before {\r\n+  content: \"\\e200\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-cd:before {\r\n+  content: \"\\e201\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-save-file:before {\r\n+  content: \"\\e202\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-open-file:before {\r\n+  content: \"\\e203\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-level-up:before {\r\n+  content: \"\\e204\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-copy:before {\r\n+  content: \"\\e205\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-paste:before {\r\n+  content: \"\\e206\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-alert:before {\r\n+  content: \"\\e209\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-equalizer:before {\r\n+  content: \"\\e210\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-king:before {\r\n+  content: \"\\e211\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-queen:before {\r\n+  content: \"\\e212\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-pawn:before {\r\n+  content: \"\\e213\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-bishop:before {\r\n+  content: \"\\e214\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-knight:before {\r\n+  content: \"\\e215\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-baby-formula:before {\r\n+  content: \"\\e216\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-tent:before {\r\n+  content: \"\\26fa\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-blackboard:before {\r\n+  content: \"\\e218\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-bed:before {\r\n+  content: \"\\e219\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-apple:before {\r\n+  content: \"\\f8ff\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-erase:before {\r\n+  content: \"\\e221\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-hourglass:before {\r\n+  content: \"\\231b\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-lamp:before {\r\n+  content: \"\\e223\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-duplicate:before {\r\n+  content: \"\\e224\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-piggy-bank:before {\r\n+  content: \"\\e225\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-scissors:before {\r\n+  content: \"\\e226\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-bitcoin:before {\r\n+  content: \"\\e227\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-btc:before {\r\n+  content: \"\\e227\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-xbt:before {\r\n+  content: \"\\e227\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-yen:before {\r\n+  content: \"\\00a5\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-jpy:before {\r\n+  content: \"\\00a5\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-ruble:before {\r\n+  content: \"\\20bd\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-rub:before {\r\n+  content: \"\\20bd\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-scale:before {\r\n+  content: \"\\e230\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-ice-lolly:before {\r\n+  content: \"\\e231\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-ice-lolly-tasted:before {\r\n+  content: \"\\e232\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-education:before {\r\n+  content: \"\\e233\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-option-horizontal:before {\r\n+  content: \"\\e234\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-option-vertical:before {\r\n+  content: \"\\e235\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-menu-hamburger:before {\r\n+  content: \"\\e236\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-modal-window:before {\r\n+  content: \"\\e237\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-oil:before {\r\n+  content: \"\\e238\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-grain:before {\r\n+  content: \"\\e239\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-sunglasses:before {\r\n+  content: \"\\e240\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-text-size:before {\r\n+  content: \"\\e241\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-text-color:before {\r\n+  content: \"\\e242\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-text-background:before {\r\n+  content: \"\\e243\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-object-align-top:before {\r\n+  content: \"\\e244\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-object-align-bottom:before {\r\n+  content: \"\\e245\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-object-align-horizontal:before {\r\n+  content: \"\\e246\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-object-align-left:before {\r\n+  content: \"\\e247\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-object-align-vertical:before {\r\n+  content: \"\\e248\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-object-align-right:before {\r\n+  content: \"\\e249\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-triangle-right:before {\r\n+  content: \"\\e250\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-triangle-left:before {\r\n+  content: \"\\e251\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-triangle-bottom:before {\r\n+  content: \"\\e252\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-triangle-top:before {\r\n+  content: \"\\e253\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-console:before {\r\n+  content: \"\\e254\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-superscript:before {\r\n+  content: \"\\e255\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-subscript:before {\r\n+  content: \"\\e256\";\r\n+} \r\n+.wppm_bootstrap .glyphicon-menu-left:before {\r\n+  content: \"\\e257\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-menu-right:before {\r\n+  content: \"\\e258\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-menu-down:before {\r\n+  content: \"\\e259\";\r\n+}\r\n+.wppm_bootstrap .glyphicon-menu-up:before {\r\n+  content: \"\\e260\";\r\n+}\r\n+* {\r\n+  -webkit-box-sizing: border-box;\r\n+     -moz-box-sizing: border-box;\r\n+          box-sizing: border-box;\r\n+}\r\n+.wppm_bootstrap *:before,\r\n+.wppm_bootstrap *:after {\r\n+  -webkit-box-sizing: border-box;\r\n+     -moz-box-sizing: border-box;\r\n+          box-sizing: border-box;\r\n+}\r\n+.wppm_bootstrap html {\r\n+  font-size: 10px;\r\n+\r\n+  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n+}\r\n+.wppm_bootstrap body {\r\n+  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n+  font-size: 14px;\r\n+  line-height: 1.42857143;\r\n+  color: #333;\r\n+  background-color: #fff;\r\n+}\r\n+.wppm_bootstrap input,\r\n+.wppm_bootstrap button,\r\n+.wppm_bootstrap select,\r\n+.wppm_bootstrap textarea {\r\n+  font-family: inherit;\r\n+  font-size: inherit;\r\n+  line-height: inherit;\r\n+}\r\n+.wppm_bootstrap a {\r\n+  color: #337ab7;\r\n+  text-decoration: none;\r\n+}\r\n+.wppm_bootstrap a:hover,\r\n+.wppm_bootstrap a:focus {\r\n+  color: #23527c;\r\n+  text-decoration: underline;\r\n+}\r\n+.wppm_bootstrap a:focus {\r\n+  outline: 5px auto -webkit-focus-ring-color;\r\n+  outline-offset: -2px;\r\n+}\r\n+.wppm_bootstrap figure {\r\n+  margin: 0;\r\n+}\r\n+.wppm_bootstrap img {\r\n+  vertical-align: middle;\r\n+}\r\n+.wppm_bootstrap .img-responsive,\r\n+.wppm_bootstrap .thumbnail > img,\r\n+.wppm_bootstrap .thumbnail a > img,\r\n+.wppm_bootstrap .carousel-inner > .item > img,\r\n+.wppm_bootstrap .carousel-inner > .item > a > img {\r\n+  display: block;\r\n+  max-width: 100%;\r\n+  height: auto;\r\n+}\r\n+.wppm_bootstrap .img-rounded {\r\n+  border-radius: 6px;\r\n+}\r\n+.wppm_bootstrap .img-thumbnail {\r\n+  display: inline-block;\r\n+  max-width: 100%;\r\n+  height: auto;\r\n+  padding: 4px;\r\n+  line-height: 1.42857143;\r\n+  background-color: #fff;\r\n+  border: 1px solid #ddd;\r\n+  border-radius: 4px;\r\n+  -webkit-transition: all .2s ease-in-out;\r\n+       -o-transition: all .2s ease-in-out;\r\n+          transition: all .2s ease-in-out;\r\n+}\r\n+.wppm_bootstrap .img-circle {\r\n+  border-radius: 50%;\r\n+}\r\n+.wppm_bootstrap hr {\r\n+  margin-top: 20px;\r\n+  margin-bottom: 20px;\r\n+  border: 0;\r\n+  border-top: 1px solid #eee;\r\n+}\r\n+.wppm_bootstrap .sr-only {\r\n+  position: absolute;\r\n+  width: 1px;\r\n+  height: 1px;\r\n+  padding: 0;\r\n+  margin: -1px;\r\n+  overflow: hidden;\r\n+  clip: rect(0, 0, 0, 0);\r\n+  border: 0;\r\n+}\r\n+.wppm_bootstrap .sr-only-focusable:active,\r\n+.wppm_bootstrap .sr-only-focusable:focus {\r\n+  position: static;\r\n+  width: auto;\r\n+  height: auto;\r\n+  margin: 0;\r\n+  overflow: visible;\r\n+  clip: auto;\r\n+}\r\n+[role=\"button\"] {\r\n+  cursor: pointer;\r\n+}\r\n+.wppm_bootstrap h1,\r\n+.wppm_bootstrap h2,\r\n+.wppm_bootstrap h3,\r\n+.wppm_bootstrap h4,\r\n+.wppm_bootstrap h5,\r\n+.wppm_bootstrap h6,\r\n+.wppm_bootstrap .h1,\r\n+.wppm_bootstrap .h2,\r\n+.wppm_bootstrap .h3,\r\n+.wppm_bootstrap .h4,\r\n+.wppm_bootstrap .h5,\r\n+.wppm_bootstrap .h6 {\r\n+  font-family: inherit;\r\n+  font-weight: 500;\r\n+  line-height: 1.1;\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap h1 small,\r\n+.wppm_bootstrap h2 small,\r\n+.wppm_bootstrap h3 small,\r\n+.wppm_bootstrap h4 small,\r\n+.wppm_bootstrap h5 small,\r\n+.wppm_bootstrap h6 small,\r\n+.wppm_bootstrap .h1 small,\r\n+.wppm_bootstrap .h2 small,\r\n+.wppm_bootstrap .h3 small,\r\n+.wppm_bootstrap .h4 small,\r\n+.wppm_bootstrap .h5 small,\r\n+.wppm_bootstrap .h6 small,\r\n+.wppm_bootstrap h1 .small,\r\n+.wppm_bootstrap h2 .small,\r\n+.wppm_bootstrap h3 .small,\r\n+.wppm_bootstrap h4 .small,\r\n+.wppm_bootstrap h5 .small,\r\n+.wppm_bootstrap h6 .small,\r\n+.wppm_bootstrap .h1 .small,\r\n+.wppm_bootstrap .h2 .small,\r\n+.wppm_bootstrap .h3 .small,\r\n+.wppm_bootstrap .h4 .small,\r\n+.wppm_bootstrap .h5 .small,\r\n+.wppm_bootstrap .h6 .small {\r\n+  font-weight: normal;\r\n+  line-height: 1;\r\n+  color: #777;\r\n+}\r\n+.wppm_bootstrap h1,\r\n+.wppm_bootstrap .h1,\r\n+.wppm_bootstrap h2,\r\n+.wppm_bootstrap .h2,\r\n+.wppm_bootstrap h3,\r\n+.wppm_bootstrap .h3 {\r\n+  margin-top: 20px;\r\n+  margin-bottom: 10px;\r\n+}\r\n+.wppm_bootstrap h1 small,\r\n+.wppm_bootstrap .h1 small,\r\n+.wppm_bootstrap h2 small,\r\n+.wppm_bootstrap .h2 small,\r\n+.wppm_bootstrap h3 small,\r\n+.wppm_bootstrap .h3 small,\r\n+.wppm_bootstrap h1 .small,\r\n+.wppm_bootstrap .h1 .small,\r\n+.wppm_bootstrap h2 .small,\r\n+.wppm_bootstrap .h2 .small,\r\n+.wppm_bootstrap h3 .small,\r\n+.wppm_bootstrap .h3 .small {\r\n+  font-size: 65%;\r\n+}\r\n+.wppm_bootstrap h4,\r\n+.wppm_bootstrap .h4,\r\n+.wppm_bootstrap h5,\r\n+.wppm_bootstrap .h5,\r\n+.wppm_bootstrap h6,\r\n+.wppm_bootstrap .h6 {\r\n+  margin-top: 10px;\r\n+  margin-bottom: 10px;\r\n+}\r\n+.wppm_bootstrap h4 small,\r\n+.wppm_bootstrap .h4 small,\r\n+.wppm_bootstrap h5 small,\r\n+.wppm_bootstrap .h5 small,\r\n+.wppm_bootstrap h6 small,\r\n+.wppm_bootstrap .h6 small,\r\n+.wppm_bootstrap h4 .small,\r\n+.wppm_bootstrap .h4 .small,\r\n+.wppm_bootstrap h5 .small,\r\n+.wppm_bootstrap .h5 .small,\r\n+.wppm_bootstrap h6 .small,\r\n+.wppm_bootstrap .h6 .small {\r\n+  font-size: 75%;\r\n+}\r\n+.wppm_bootstrap h1,\r\n+.wppm_bootstrap .h1 {\r\n+  font-size: 36px;\r\n+}\r\n+.wppm_bootstrap h2,\r\n+.wppm_bootstrap .h2 {\r\n+  font-size: 30px;\r\n+}\r\n+.wppm_bootstrap h3,\r\n+.wppm_bootstrap .h3 {\r\n+  font-size: 24px;\r\n+}\r\n+.wppm_bootstrap h4,\r\n+.wppm_bootstrap .h4 {\r\n+  font-size: 18px;\r\n+}\r\n+.wppm_bootstrap h5,\r\n+.wppm_bootstrap .h5 {\r\n+  font-size: 14px;\r\n+}\r\n+.wppm_bootstrap h6,\r\n+.wppm_bootstrap .h6 {\r\n+  font-size: 12px;\r\n+}\r\n+.wppm_bootstrap p {\r\n+  margin: 0 0 10px;\r\n+}\r\n+.wppm_bootstrap .lead {\r\n+  margin-bottom: 20px;\r\n+  font-size: 16px;\r\n+  font-weight: 300;\r\n+  line-height: 1.4;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .lead {\r\n+    font-size: 21px;\r\n+  }\r\n+}\r\n+.wppm_bootstrap small,\r\n+.wppm_bootstrap .small {\r\n+  font-size: 85%;\r\n+}\r\n+.wppm_bootstrap mark,\r\n+.wppm_bootstrap .mark {\r\n+  padding: .2em;\r\n+  background-color: #fcf8e3;\r\n+}\r\n+.wppm_bootstrap .text-left {\r\n+  text-align: left;\r\n+}\r\n+.wppm_bootstrap .text-right {\r\n+  text-align: right;\r\n+}\r\n+.wppm_bootstrap .text-center {\r\n+  text-align: center;\r\n+}\r\n+.wppm_bootstrap .text-justify {\r\n+  text-align: justify;\r\n+}\r\n+.wppm_bootstrap .text-nowrap {\r\n+  white-space: nowrap;\r\n+}\r\n+.wppm_bootstrap .text-lowercase {\r\n+  text-transform: lowercase;\r\n+}\r\n+.wppm_bootstrap .text-uppercase {\r\n+  text-transform: uppercase;\r\n+}\r\n+.wppm_bootstrap .text-capitalize {\r\n+  text-transform: capitalize;\r\n+}\r\n+.wppm_bootstrap .text-muted {\r\n+  color: #777;\r\n+}\r\n+.wppm_bootstrap .text-primary {\r\n+  color: #337ab7;\r\n+}\r\n+.wppm_bootstrap a.text-primary:hover,\r\n+.wppm_bootstrap a.text-primary:focus {\r\n+  color: #286090;\r\n+}\r\n+.wppm_bootstrap .text-success {\r\n+  color: #3c763d;\r\n+}\r\n+.wppm_bootstrap a.text-success:hover,\r\n+.wppm_bootstrap a.text-success:focus {\r\n+  color: #2b542c;\r\n+}\r\n+.wppm_bootstrap .text-info {\r\n+  color: #31708f;\r\n+}\r\n+.wppm_bootstrap a.text-info:hover,\r\n+.wppm_bootstrap a.text-info:focus {\r\n+  color: #245269;\r\n+}\r\n+.wppm_bootstrap .text-warning {\r\n+  color: #8a6d3b;\r\n+}\r\n+.wppm_bootstrap a.text-warning:hover,\r\n+.wppm_bootstrap a.text-warning:focus {\r\n+  color: #66512c;\r\n+}\r\n+.wppm_bootstrap .text-danger {\r\n+  color: #a94442;\r\n+}\r\n+.wppm_bootstrap a.text-danger:hover,\r\n+.wppm_bootstrap a.text-danger:focus {\r\n+  color: #843534;\r\n+}\r\n+.wppm_bootstrap .bg-primary {\r\n+  color: #fff;\r\n+  background-color: #337ab7;\r\n+}\r\n+.wppm_bootstrap a.bg-primary:hover,\r\n+.wppm_bootstrap a.bg-primary:focus {\r\n+  background-color: #286090;\r\n+}\r\n+.wppm_bootstrap .bg-success {\r\n+  background-color: #dff0d8;\r\n+}\r\n+.wppm_bootstrap a.bg-success:hover,\r\n+.wppm_bootstrap a.bg-success:focus {\r\n+  background-color: #c1e2b3;\r\n+}\r\n+.wppm_bootstrap .bg-info {\r\n+  background-color: #d9edf7;\r\n+}\r\n+.wppm_bootstrap a.bg-info:hover,\r\n+.wppm_bootstrap a.bg-info:focus {\r\n+  background-color: #afd9ee;\r\n+}\r\n+.wppm_bootstrap .bg-warning {\r\n+  background-color: #fcf8e3;\r\n+}\r\n+.wppm_bootstrap a.bg-warning:hover,\r\n+.wppm_bootstrap a.bg-warning:focus {\r\n+  background-color: #f7ecb5;\r\n+}\r\n+.wppm_bootstrap .bg-danger {\r\n+  background-color: #f2dede;\r\n+}\r\n+.wppm_bootstrap a.bg-danger:hover,\r\n+.wppm_bootstrap a.bg-danger:focus {\r\n+  background-color: #e4b9b9;\r\n+}\r\n+.wppm_bootstrap .page-header {\r\n+  padding-bottom: 9px;\r\n+  margin: 40px 0 20px;\r\n+  border-bottom: 1px solid #eee;\r\n+}\r\n+.wppm_bootstrap ul,\r\n+.wppm_bootstrap ol {\r\n+  margin-top: 0;\r\n+  margin-bottom: 10px;\r\n+}\r\n+.wppm_bootstrap ul .wppm_bootstrap ul,\r\n+.wppm_bootstrap ol .wppm_bootstrap ul,\r\n+.wppm_bootstrap ul .wppm_bootstrap ol,\r\n+.wppm_bootstrap ol .wppm_bootstrap ol {\r\n+  margin-bottom: 0;\r\n+}\r\n+.wppm_bootstrap .list-unstyled {\r\n+  padding-left: 0;\r\n+  list-style: none;\r\n+}\r\n+.wppm_bootstrap .list-inline {\r\n+  padding-left: 0;\r\n+  margin-left: -5px;\r\n+  list-style: none;\r\n+}\r\n+.wppm_bootstrap .list-inline > li {\r\n+  display: inline-block;\r\n+  padding-right: 5px;\r\n+  padding-left: 5px;\r\n+}\r\n+.wppm_bootstrap dl {\r\n+  margin-top: 0;\r\n+  margin-bottom: 20px;\r\n+}\r\n+.wppm_bootstrap dt,\r\n+.wppm_bootstrap dd {\r\n+  line-height: 1.42857143;\r\n+}\r\n+.wppm_bootstrap dt {\r\n+  font-weight: bold;\r\n+}\r\n+.wppm_bootstrap dd {\r\n+  margin-left: 0;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .dl-horizontal dt {\r\n+    float: left;\r\n+    width: 160px;\r\n+    overflow: hidden;\r\n+    clear: left;\r\n+    text-align: right;\r\n+    text-overflow: ellipsis;\r\n+    white-space: nowrap;\r\n+  }\r\n+  .wppm_bootstrap .dl-horizontal dd {\r\n+    margin-left: 180px;\r\n+  }\r\n+}\r\n+.wppm_bootstrap abbr[title],\r\n+.wppm_bootstrap abbr[data-original-title] {\r\n+  cursor: help;\r\n+  border-bottom: 1px dotted #777;\r\n+}\r\n+.wppm_bootstrap .initialism {\r\n+  font-size: 90%;\r\n+  text-transform: uppercase;\r\n+}\r\n+.wppm_bootstrap blockquote {\r\n+  padding: 10px 20px;\r\n+  margin: 0 0 20px;\r\n+  font-size: 17.5px;\r\n+  border-left: 5px solid #eee;\r\n+}\r\n+.wppm_bootstrap blockquote p:last-child,\r\n+.wppm_bootstrap blockquote ul:last-child,\r\n+.wppm_bootstrap blockquote ol:last-child {\r\n+  margin-bottom: 0;\r\n+}\r\n+.wppm_bootstrap blockquote footer,\r\n+.wppm_bootstrap blockquote small,\r\n+.wppm_bootstrap blockquote .small {\r\n+  display: block;\r\n+  font-size: 80%;\r\n+  line-height: 1.42857143;\r\n+  color: #777;\r\n+}\r\n+.wppm_bootstrap blockquote footer:before,\r\n+.wppm_bootstrap blockquote small:before,\r\n+.wppm_bootstrap blockquote .small:before {\r\n+  content: '\\2014 \\00A0';\r\n+}\r\n+.wppm_bootstrap .blockquote-reverse,\r\n+.wppm_bootstrap blockquote.pull-right {\r\n+  padding-right: 15px;\r\n+  padding-left: 0;\r\n+  text-align: right;\r\n+  border-right: 5px solid #eee;\r\n+  border-left: 0;\r\n+}\r\n+.wppm_bootstrap .blockquote-reverse footer:before,\r\n+.wppm_bootstrap blockquote.pull-right footer:before,\r\n+.wppm_bootstrap .blockquote-reverse small:before,\r\n+.wppm_bootstrap blockquote.pull-right small:before,\r\n+.wppm_bootstrap .blockquote-reverse .small:before,\r\n+.wppm_bootstrap blockquote.pull-right .small:before {\r\n+  content: '';\r\n+}\r\n+.wppm_bootstrap .blockquote-reverse footer:after,\r\n+.wppm_bootstrap blockquote.pull-right footer:after,\r\n+.wppm_bootstrap .blockquote-reverse small:after,\r\n+.wppm_bootstrap blockquote.pull-right small:after,\r\n+.wppm_bootstrap .blockquote-reverse .small:after,\r\n+.wppm_bootstrap blockquote.pull-right .small:after {\r\n+  content: '\\00A0 \\2014';\r\n+}\r\n+.wppm_bootstrap address {\r\n+  margin-bottom: 20px;\r\n+  font-style: normal;\r\n+  line-height: 1.42857143;\r\n+}\r\n+.wppm_bootstrap code,\r\n+.wppm_bootstrap kbd,\r\n+.wppm_bootstrap pre,\r\n+.wppm_bootstrap samp {\r\n+  font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\r\n+}\r\n+.wppm_bootstrap code {\r\n+  padding: 2px 4px;\r\n+  font-size: 90%;\r\n+  color: #c7254e;\r\n+  background-color: #f9f2f4;\r\n+  border-radius: 4px;\r\n+}\r\n+.wppm_bootstrap kbd {\r\n+  padding: 2px 4px;\r\n+  font-size: 90%;\r\n+  color: #fff;\r\n+  background-color: #333;\r\n+  border-radius: 3px;\r\n+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\r\n+          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\r\n+}\r\n+.wppm_bootstrap kbd .wppm_bootstrap kbd {\r\n+  padding: 0;\r\n+  font-size: 100%;\r\n+  font-weight: bold;\r\n+  -webkit-box-shadow: none;\r\n+          box-shadow: none;\r\n+}\r\n+.wppm_bootstrap pre {\r\n+  display: block;\r\n+  padding: 9.5px;\r\n+  margin: 0 0 10px;\r\n+  font-size: 13px;\r\n+  line-height: 1.42857143;\r\n+  color: #333;\r\n+  word-break: break-all;\r\n+  word-wrap: break-word;\r\n+  background-color: #f5f5f5;\r\n+  border: 1px solid #ccc;\r\n+  border-radius: 4px;\r\n+}\r\n+.wppm_bootstrap pre .wppm_bootstrap code {\r\n+  padding: 0;\r\n+  font-size: inherit;\r\n+  color: inherit;\r\n+  white-space: pre-wrap;\r\n+  background-color: transparent;\r\n+  border-radius: 0;\r\n+}\r\n+.wppm_bootstrap .pre-scrollable {\r\n+  max-height: 340px;\r\n+  overflow-y: scroll;\r\n+}\r\n+.wppm_bootstrap .container {\r\n+  padding-right: 15px;\r\n+  padding-left: 15px;\r\n+  margin-right: auto;\r\n+  margin-left: auto;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .container {\r\n+    width: 750px;\r\n+  }\r\n+}\r\n+@media (min-width: 992px) {\r\n+  .container {\r\n+    width: 970px;\r\n+  }\r\n+}\r\n+@media (min-width: 1200px) {\r\n+  .container {\r\n+    width: 1170px;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .container-fluid {\r\n+  padding-right: 15px;\r\n+  padding-left: 15px;\r\n+  margin-right: auto;\r\n+  margin-left: auto;\r\n+}\r\n+.wppm_bootstrap .row {\r\n+  margin-left: 0px !important;\r\n+  margin-right: 0px !important;\r\n+}\r\n+.wppm_bootstrap .col-xs-1, .wppm_bootstrap .col-sm-1, .wppm_bootstrap .col-md-1, .wppm_bootstrap .col-lg-1, .wppm_bootstrap .col-xs-2, .wppm_bootstrap .col-sm-2, .wppm_bootstrap .col-md-2, .wppm_bootstrap .col-lg-2, .wppm_bootstrap .col-xs-3, .wppm_bootstrap .col-sm-3, .wppm_bootstrap .col-md-3, .wppm_bootstrap .col-lg-3, .wppm_bootstrap .col-xs-4, .wppm_bootstrap .col-sm-4, .wppm_bootstrap .col-md-4, .wppm_bootstrap .col-lg-4, .wppm_bootstrap .col-xs-5, .wppm_bootstrap .col-sm-5, .wppm_bootstrap .col-md-5, .wppm_bootstrap .col-lg-5, .wppm_bootstrap .col-xs-6, .wppm_bootstrap .col-sm-6, .wppm_bootstrap .col-md-6, .wppm_bootstrap .col-lg-6, .wppm_bootstrap .col-xs-7, .wppm_bootstrap .col-sm-7, .wppm_bootstrap .col-md-7, .wppm_bootstrap .col-lg-7, .wppm_bootstrap .col-xs-8, .wppm_bootstrap .col-sm-8, .wppm_bootstrap .col-md-8, .wppm_bootstrap .col-lg-8, .wppm_bootstrap .col-xs-9, .wppm_bootstrap .col-sm-9, .wppm_bootstrap .col-md-9, .wppm_bootstrap .col-lg-9, .wppm_bootstrap .col-xs-10, .wppm_bootstrap .col-sm-10, .wppm_bootstrap .col-md-10, .wppm_bootstrap .col-lg-10, .wppm_bootstrap .col-xs-11, .wppm_bootstrap .col-sm-11, .wppm_bootstrap .col-md-11, .wppm_bootstrap .col-lg-11, .wppm_bootstrap .col-xs-12, .wppm_bootstrap .col-sm-12, .wppm_bootstrap .col-md-12, .wppm_bootstrap .col-lg-12 {\r\n+  position: relative;\r\n+  min-height: 1px;\r\n+  padding-right: 15px;\r\n+  padding-left: 15px;\r\n+}\r\n+.wppm_bootstrap .col-xs-1, .wppm_bootstrap .col-xs-2, .wppm_bootstrap .col-xs-3, .wppm_bootstrap .col-xs-4, .wppm_bootstrap .col-xs-5, .wppm_bootstrap .col-xs-6, .wppm_bootstrap .col-xs-7, .wppm_bootstrap .col-xs-8, .wppm_bootstrap .col-xs-9, .wppm_bootstrap .col-xs-10, .wppm_bootstrap .col-xs-11, .wppm_bootstrap .col-xs-12 {\r\n+  float: left;\r\n+}\r\n+.wppm_bootstrap .col-xs-12 {\r\n+  width: 100%;\r\n+}\r\n+.wppm_bootstrap .col-xs-11 {\r\n+  width: 91.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-10 {\r\n+  width: 83.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-9 {\r\n+  width: 75%;\r\n+}\r\n+.wppm_bootstrap .col-xs-8 {\r\n+  width: 66.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-7 {\r\n+  width: 58.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-6 {\r\n+  width: 50%;\r\n+}\r\n+.wppm_bootstrap .col-xs-5 {\r\n+  width: 41.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-4 {\r\n+  width: 33.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-3 {\r\n+  width: 25%;\r\n+}\r\n+.wppm_bootstrap .col-xs-2 {\r\n+  width: 16.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-1 {\r\n+  width: 8.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-12 {\r\n+  right: 100%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-11 {\r\n+  right: 91.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-10 {\r\n+  right: 83.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-9 {\r\n+  right: 75%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-8 {\r\n+  right: 66.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-7 {\r\n+  right: 58.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-6 {\r\n+  right: 50%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-5 {\r\n+  right: 41.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-4 {\r\n+  right: 33.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-3 {\r\n+  right: 25%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-2 {\r\n+  right: 16.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-1 {\r\n+  right: 8.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-pull-0 {\r\n+  right: auto;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-12 {\r\n+  left: 100%;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-11 {\r\n+  left: 91.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-10 {\r\n+  left: 83.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-9 {\r\n+  left: 75%;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-8 {\r\n+  left: 66.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-7 {\r\n+  left: 58.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-6 {\r\n+  left: 50%;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-5 {\r\n+  left: 41.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-4 {\r\n+  left: 33.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-3 {\r\n+  left: 25%;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-2 {\r\n+  left: 16.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-1 {\r\n+  left: 8.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-push-0 {\r\n+  left: auto;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-12 {\r\n+  margin-left: 100%;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-11 {\r\n+  margin-left: 91.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-10 {\r\n+  margin-left: 83.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-9 {\r\n+  margin-left: 75%;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-8 {\r\n+  margin-left: 66.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-7 {\r\n+  margin-left: 58.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-6 {\r\n+  margin-left: 50%;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-5 {\r\n+  margin-left: 41.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-4 {\r\n+  margin-left: 33.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-3 {\r\n+  margin-left: 25%;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-2 {\r\n+  margin-left: 16.66666667%;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-1 {\r\n+  margin-left: 8.33333333%;\r\n+}\r\n+.wppm_bootstrap .col-xs-offset-0 {\r\n+  margin-left: 0;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\r\n+    float: left;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-12 {\r\n+    width: 100%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-11 {\r\n+    width: 91.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-10 {\r\n+    width: 83.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-9 {\r\n+    width: 75%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-8 {\r\n+    width: 66.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-7 {\r\n+    width: 58.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-6 {\r\n+    width: 50%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-5 {\r\n+    width: 41.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-4 {\r\n+    width: 33.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-3 {\r\n+    width: 25%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-2 {\r\n+    width: 16.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-1 {\r\n+    width: 8.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-12 {\r\n+    right: 100%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-11 {\r\n+    right: 91.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-10 {\r\n+    right: 83.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-9 {\r\n+    right: 75%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-8 {\r\n+    right: 66.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-7 {\r\n+    right: 58.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-6 {\r\n+    right: 50%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-5 {\r\n+    right: 41.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-4 {\r\n+    right: 33.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-3 {\r\n+    right: 25%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-2 {\r\n+    right: 16.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-1 {\r\n+    right: 8.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-pull-0 {\r\n+    right: auto;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-12 {\r\n+    left: 100%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-11 {\r\n+    left: 91.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-10 {\r\n+    left: 83.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-9 {\r\n+    left: 75%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-8 {\r\n+    left: 66.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-7 {\r\n+    left: 58.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-6 {\r\n+    left: 50%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-5 {\r\n+    left: 41.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-4 {\r\n+    left: 33.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-3 {\r\n+    left: 25%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-2 {\r\n+    left: 16.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-1 {\r\n+    left: 8.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-push-0 {\r\n+    left: auto;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-offset-12 {\r\n+    margin-left: 100%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-offset-11 {\r\n+    margin-left: 91.66666667%;\r\n+  }\r\n+  .col-sm-offset-10 {\r\n+    margin-left: 83.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-offset-9 {\r\n+    margin-left: 75%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-offset-8 {\r\n+    margin-left: 66.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-offset-7 {\r\n+    margin-left: 58.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-offset-6 {\r\n+    margin-left: 50%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-offset-5 {\r\n+    margin-left: 41.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-offset-4 {\r\n+    margin-left: 33.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-offset-3 {\r\n+    margin-left: 25%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-offset-2 {\r\n+    margin-left: 16.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-offset-1 {\r\n+    margin-left: 8.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-sm-offset-0 {\r\n+    margin-left: 0;\r\n+  }\r\n+}\r\n+@media (min-width: 992px) {\r\n+  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\r\n+    float: left;\r\n+  }\r\n+  .wppm_bootstrap .col-md-12 {\r\n+    width: 100%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-11 {\r\n+    width: 91.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-10 {\r\n+    width: 83.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-9 {\r\n+    width: 75%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-8 {\r\n+    width: 66.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-7 {\r\n+    width: 58.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-6 {\r\n+    width: 50%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-5 {\r\n+    width: 41.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-4 {\r\n+    width: 33.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-3 {\r\n+    width: 25%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-2 {\r\n+    width: 16.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-1 {\r\n+    width: 8.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-12 {\r\n+    right: 100%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-11 {\r\n+    right: 91.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-10 {\r\n+    right: 83.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-9 {\r\n+    right: 75%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-8 {\r\n+    right: 66.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-7 {\r\n+    right: 58.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-6 {\r\n+    right: 50%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-5 {\r\n+    right: 41.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-4 {\r\n+    right: 33.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-3 {\r\n+    right: 25%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-2 {\r\n+    right: 16.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-1 {\r\n+    right: 8.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-pull-0 {\r\n+    right: auto;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-12 {\r\n+    left: 100%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-11 {\r\n+    left: 91.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-10 {\r\n+    left: 83.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-9 {\r\n+    left: 75%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-8 {\r\n+    left: 66.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-7 {\r\n+    left: 58.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-6 {\r\n+    left: 50%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-5 {\r\n+    left: 41.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-4 {\r\n+    left: 33.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-3 {\r\n+    left: 25%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-2 {\r\n+    left: 16.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-1 {\r\n+    left: 8.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-push-0 {\r\n+    left: auto;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-12 {\r\n+    margin-left: 100%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-11 {\r\n+    margin-left: 91.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-10 {\r\n+    margin-left: 83.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-9 {\r\n+    margin-left: 75%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-8 {\r\n+    margin-left: 66.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-7 {\r\n+    margin-left: 58.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-6 {\r\n+    margin-left: 50%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-5 {\r\n+    margin-left: 41.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-4 {\r\n+    margin-left: 33.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-3 {\r\n+    margin-left: 25%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-2 {\r\n+    margin-left: 16.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-1 {\r\n+    margin-left: 8.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-md-offset-0 {\r\n+    margin-left: 0;\r\n+  }\r\n+}\r\n+@media (min-width: 1200px) {\r\n+  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\r\n+    float: left;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-12 {\r\n+    width: 100%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-11 {\r\n+    width: 91.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-10 {\r\n+    width: 83.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-9 {\r\n+    width: 75%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-8 {\r\n+    width: 66.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-7 {\r\n+    width: 58.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-6 {\r\n+    width: 50%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-5 {\r\n+    width: 41.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-4 {\r\n+    width: 33.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-3 {\r\n+    width: 25%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-2 {\r\n+    width: 16.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-1 {\r\n+    width: 8.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-12 {\r\n+    right: 100%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-11 {\r\n+    right: 91.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-10 {\r\n+    right: 83.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-9 {\r\n+    right: 75%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-8 {\r\n+    right: 66.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-7 {\r\n+    right: 58.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-6 {\r\n+    right: 50%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-5 {\r\n+    right: 41.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-4 {\r\n+    right: 33.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-3 {\r\n+    right: 25%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-2 {\r\n+    right: 16.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-1 {\r\n+    right: 8.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-pull-0 {\r\n+    right: auto;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-12 {\r\n+    left: 100%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-11 {\r\n+    left: 91.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-10 {\r\n+    left: 83.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-9 {\r\n+    left: 75%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-8 {\r\n+    left: 66.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-7 {\r\n+    left: 58.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-6 {\r\n+    left: 50%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-5 {\r\n+    left: 41.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-4 {\r\n+    left: 33.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-3 {\r\n+    left: 25%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-2 {\r\n+    left: 16.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-1 {\r\n+    left: 8.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-push-0 {\r\n+    left: auto;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-12 {\r\n+    margin-left: 100%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-11 {\r\n+    margin-left: 91.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-10 {\r\n+    margin-left: 83.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-9 {\r\n+    margin-left: 75%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-8 {\r\n+    margin-left: 66.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-7 {\r\n+    margin-left: 58.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-6 {\r\n+    margin-left: 50%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-5 {\r\n+    margin-left: 41.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-4 {\r\n+    margin-left: 33.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-3 {\r\n+    margin-left: 25%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-2 {\r\n+    margin-left: 16.66666667%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-1 {\r\n+    margin-left: 8.33333333%;\r\n+  }\r\n+  .wppm_bootstrap .col-lg-offset-0 {\r\n+    margin-left: 0;\r\n+  }\r\n+}\r\n+\u002F* .wppm_bootstrap table {\r\n+  background-color: transparent;\r\n+} *\u002F\r\n+.wppm_bootstrap caption {\r\n+  padding-top: 8px;\r\n+  padding-bottom: 8px;\r\n+  color: #777;\r\n+  text-align: left;\r\n+}\r\n+.wppm_bootstrap th {\r\n+  text-align: left;\r\n+}\r\n+.wppm_bootstrap .table {\r\n+  width: 100%;\r\n+  max-width: 100%;\r\n+  margin-bottom: 20px;\r\n+}\r\n+.wppm_bootstrap .table > thead > tr > th,\r\n+.wppm_bootstrap .table > tbody > tr > th,\r\n+.wppm_bootstrap .table > tfoot > tr > th,\r\n+.wppm_bootstrap .table > thead > tr > td,\r\n+.wppm_bootstrap .table > tbody > tr > td,\r\n+.wppm_bootstrap .table > tfoot > tr > td {\r\n+  padding: 5px;\r\n+  line-height: 1.42857143;\r\n+  vertical-align: top;\r\n+  border-top: 1px solid #ddd;\r\n+}\r\n+.wppm_bootstrap .table > thead > tr > th {\r\n+  vertical-align: top;\r\n+  border-bottom: 2px solid #ddd;\r\n+}\r\n+.wppm_bootstrap .table > caption + thead > tr:first-child > th,\r\n+.wppm_bootstrap .table > colgroup + thead > tr:first-child > th,\r\n+.wppm_bootstrap .table > thead:first-child > tr:first-child > th,\r\n+.wppm_bootstrap .table > caption + thead > tr:first-child > td,\r\n+.wppm_bootstrap .table > colgroup + thead > tr:first-child > td,\r\n+.wppm_bootstrap .table > thead:first-child > tr:first-child > td {\r\n+  border-top: 0;\r\n+}\r\n+.wppm_bootstrap .table > tbody + tbody {\r\n+  border-top: 2px solid #ddd;\r\n+}\r\n+.wppm_bootstrap .table .table {\r\n+  background-color: #fff;\r\n+}\r\n+.wppm_bootstrap .table-condensed > thead > tr > th,\r\n+.wppm_bootstrap .table-condensed > tbody > tr > th,\r\n+.wppm_bootstrap .table-condensed > tfoot > tr > th,\r\n+.wppm_bootstrap .table-condensed > thead > tr > td,\r\n+.wppm_bootstrap .table-condensed > tbody > tr > td,\r\n+.wppm_bootstrap .table-condensed > tfoot > tr > td {\r\n+  padding: 5px;\r\n+}\r\n+.wppm_bootstrap .table-bordered {\r\n+  border: 1px solid #ddd;\r\n+}\r\n+.wppm_bootstrap .table-bordered > thead > tr > th,\r\n+.wppm_bootstrap .table-bordered > tbody > tr > th,\r\n+.wppm_bootstrap .table-bordered > tfoot > tr > th,\r\n+.wppm_bootstrap .table-bordered > thead > tr > td,\r\n+.wppm_bootstrap .table-bordered > tbody > tr > td,\r\n+.wppm_bootstrap .table-bordered > tfoot > tr > td {\r\n+  border: 1px solid #ddd;\r\n+}\r\n+.wppm_bootstrap .table-bordered > thead > tr > th,\r\n+.wppm_bootstrap .table-bordered > thead > tr > td {\r\n+  border-bottom-width: 2px;\r\n+}\r\n+.wppm_bootstrap .table-striped > tbody > tr:nth-of-type(odd) {\r\n+  background-color: #f9f9f9;\r\n+}\r\n+.wppm_bootstrap .table-hover > tbody > tr:hover {\r\n+  background-color: #f5f5f5;\r\n+}\r\n+.wppm_bootstrap table col[class*=\"col-\"] {\r\n+  position: static;\r\n+  display: table-column;\r\n+  float: none;\r\n+}\r\n+.wppm_bootstrap table td[class*=\"col-\"],\r\n+.wppm_bootstrap table th[class*=\"col-\"] {\r\n+  position: static;\r\n+  display: table-cell;\r\n+  float: none;\r\n+}\r\n+.wppm_bootstrap .table > thead > tr > td.active,\r\n+.wppm_bootstrap .table > tbody > tr > td.active,\r\n+.wppm_bootstrap .table > tfoot > tr > td.active,\r\n+.wppm_bootstrap .table > thead > tr > th.active,\r\n+.wppm_bootstrap .table > tbody > tr > th.active,\r\n+.wppm_bootstrap .table > tfoot > tr > th.active,\r\n+.wppm_bootstrap .table > thead > tr.active > td,\r\n+.wppm_bootstrap .table > tbody > tr.active > td,\r\n+.wppm_bootstrap .table > tfoot > tr.active > td,\r\n+.wppm_bootstrap .table > thead > tr.active > th,\r\n+.wppm_bootstrap .table > tbody > tr.active > th,\r\n+.wppm_bootstrap .table > tfoot > tr.active > th {\r\n+  background-color: #f5f5f5;\r\n+}\r\n+.wppm_bootstrap .table-hover > tbody > tr > td.active:hover,\r\n+.wppm_bootstrap .table-hover > tbody > tr > th.active:hover,\r\n+.wppm_bootstrap .table-hover > tbody > tr.active:hover > td,\r\n+.wppm_bootstrap .table-hover > tbody > tr:hover > .active,\r\n+.wppm_bootstrap .table-hover > tbody > tr.active:hover > th {\r\n+  background-color: #e8e8e8;\r\n+}\r\n+.wppm_bootstrap .table > thead > tr > td.success,\r\n+.wppm_bootstrap .table > tbody > tr > td.success,\r\n+.wppm_bootstrap .table > tfoot > tr > td.success,\r\n+.wppm_bootstrap .table > thead > tr > th.success,\r\n+.wppm_bootstrap .table > tbody > tr > th.success,\r\n+.wppm_bootstrap .table > tfoot > tr > th.success,\r\n+.wppm_bootstrap .table > thead > tr.success > td,\r\n+.wppm_bootstrap .table > tbody > tr.success > td,\r\n+.wppm_bootstrap .table > tfoot > tr.success > td,\r\n+.wppm_bootstrap .table > thead > tr.success > th,\r\n+.wppm_bootstrap .table > tbody > tr.success > th,\r\n+.wppm_bootstrap .table > tfoot > tr.success > th {\r\n+  background-color: #dff0d8;\r\n+}\r\n+.wppm_bootstrap .table-hover > tbody > tr > td.success:hover,\r\n+.wppm_bootstrap .table-hover > tbody > tr > th.success:hover,\r\n+.wppm_bootstrap .table-hover > tbody > tr.success:hover > td,\r\n+.wppm_bootstrap .table-hover > tbody > tr:hover > .success,\r\n+.wppm_bootstrap .table-hover > tbody > tr.success:hover > th {\r\n+  background-color: #d0e9c6;\r\n+}\r\n+.wppm_bootstrap .table > thead > tr > td.info,\r\n+.wppm_bootstrap .table > tbody > tr > td.info,\r\n+.wppm_bootstrap .table > tfoot > tr > td.info,\r\n+.wppm_bootstrap .table > thead > tr > th.info,\r\n+.wppm_bootstrap .table > tbody > tr > th.info,\r\n+.wppm_bootstrap .table > tfoot > tr > th.info,\r\n+.wppm_bootstrap .table > thead > tr.info > td,\r\n+.wppm_bootstrap .table > tbody > tr.info > td,\r\n+.wppm_bootstrap .table > tfoot > tr.info > td,\r\n+.wppm_bootstrap .table > thead > tr.info > th,\r\n+.wppm_bootstrap .table > tbody > tr.info > th,\r\n+.wppm_bootstrap .table > tfoot > tr.info > th {\r\n+  background-color: #d9edf7;\r\n+}\r\n+.wppm_bootstrap .table-hover > tbody > tr > td.info:hover,\r\n+.wppm_bootstrap .table-hover > tbody > tr > th.info:hover,\r\n+.wppm_bootstrap .table-hover > tbody > tr.info:hover > td,\r\n+.wppm_bootstrap .table-hover > tbody > tr:hover > .info,\r\n+.wppm_bootstrap .table-hover > tbody > tr.info:hover > th {\r\n+  background-color: #c4e3f3;\r\n+}\r\n+.wppm_bootstrap .table > thead > tr > td.warning,\r\n+.wppm_bootstrap .table > tbody > tr > td.warning,\r\n+.wppm_bootstrap .table > tfoot > tr > td.warning,\r\n+.wppm_bootstrap .table > thead > tr > th.warning,\r\n+.wppm_bootstrap .table > tbody > tr > th.warning,\r\n+.wppm_bootstrap .table > tfoot > tr > th.warning,\r\n+.wppm_bootstrap .table > thead > tr.warning > td,\r\n+.wppm_bootstrap .table > tbody > tr.warning > td,\r\n+.wppm_bootstrap .table > tfoot > tr.warning > td,\r\n+.wppm_bootstrap .table > thead > tr.warning > th,\r\n+.wppm_bootstrap .table > tbody > tr.warning > th,\r\n+.wppm_bootstrap .table > tfoot > tr.warning > th {\r\n+  background-color: #fcf8e3;\r\n+}\r\n+.wppm_bootstrap .table-hover > tbody > tr > td.warning:hover,\r\n+.wppm_bootstrap .table-hover > tbody > tr > th.warning:hover,\r\n+.wppm_bootstrap .table-hover > tbody > tr.warning:hover > td,\r\n+.wppm_bootstrap .table-hover > tbody > tr:hover > .warning,\r\n+.wppm_bootstrap .table-hover > tbody > tr.warning:hover > th {\r\n+  background-color: #faf2cc;\r\n+}\r\n+.wppm_bootstrap .table > thead > tr > td.danger,\r\n+.wppm_bootstrap .table > tbody > tr > td.danger,\r\n+.wppm_bootstrap .table > tfoot > tr > td.danger,\r\n+.wppm_bootstrap .table > thead > tr > th.danger,\r\n+.wppm_bootstrap .table > tbody > tr > th.danger,\r\n+.wppm_bootstrap .table > tfoot > tr > th.danger,\r\n+.wppm_bootstrap .table > thead > tr.danger > td,\r\n+.wppm_bootstrap .table > tbody > tr.danger > td,\r\n+.wppm_bootstrap .table > tfoot > tr.danger > td,\r\n+.wppm_bootstrap .table > thead > tr.danger > th,\r\n+.wppm_bootstrap .table > tbody > tr.danger > th,\r\n+.wppm_bootstrap .table > tfoot > tr.danger > th {\r\n+  background-color: #f2dede;\r\n+}\r\n+.wppm_bootstrap .table-hover > tbody > tr > td.danger:hover,\r\n+.wppm_bootstrap .table-hover > tbody > tr > th.danger:hover,\r\n+.wppm_bootstrap .table-hover > tbody > tr.danger:hover > td,\r\n+.wppm_bootstrap .table-hover > tbody > tr:hover > .danger,\r\n+.wppm_bootstrap .table-hover > tbody > tr.danger:hover > th {\r\n+  background-color: #ebcccc;\r\n+}\r\n+.wppm_bootstrap .table-responsive {\r\n+  min-height: .01%;\r\n+  overflow-x: auto;\r\n+}\r\n+\r\n+@media screen and (max-width: 767px) {\r\n+  .table-responsive {\r\n+    width: 100%;\r\n+    margin-bottom: 15px;\r\n+    overflow-y: hidden;\r\n+    -ms-overflow-style: -ms-autohiding-scrollbar;\r\n+    border: 1px solid #ddd;\r\n+  }\r\n+  .wppm_bootstrap .table-responsive > .table {\r\n+    margin-bottom: 0;\r\n+  }\r\n+  .wppm_bootstrap .table-responsive > .table > thead > tr > th,\r\n+  .wppm_bootstrap .table-responsive > .table > tbody > tr > th,\r\n+  .wppm_bootstrap .table-responsive > .table > tfoot > tr > th,\r\n+  .wppm_bootstrap .table-responsive > .table > thead > tr > td,\r\n+  .wppm_bootstrap .table-responsive > .table > tbody > tr > td,\r\n+  .wppm_bootstrap .table-responsive > .table > tfoot > tr > td {\r\n+    white-space: nowrap;\r\n+  }\r\n+  .wppm_bootstrap .table-responsive > .table-bordered {\r\n+    border: 0;\r\n+  }\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > thead > tr > th:first-child,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > tbody > tr > th:first-child,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > tfoot > tr > th:first-child,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > thead > tr > td:first-child,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > tbody > tr > td:first-child,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > tfoot > tr > td:first-child {\r\n+    border-left: 0;\r\n+  }\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > thead > tr > th:last-child,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > tbody > tr > th:last-child,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > tfoot > tr > th:last-child,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > thead > tr > td:last-child,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > tbody > tr > td:last-child,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > tfoot > tr > td:last-child {\r\n+    border-right: 0;\r\n+  }\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > tbody > tr:last-child > th,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > tfoot > tr:last-child > th,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > tbody > tr:last-child > td,\r\n+  .wppm_bootstrap .table-responsive > .table-bordered > tfoot > tr:last-child > td {\r\n+    border-bottom: 0;\r\n+  }\r\n+}\r\n+.wppm_bootstrap fieldset {\r\n+  min-width: 0;\r\n+  padding: 0;\r\n+  margin: 0;\r\n+  border: 0;\r\n+}\r\n+.wppm_bootstrap legend {\r\n+  display: block;\r\n+  width: 100%;\r\n+  padding: 0;\r\n+  margin-bottom: 20px;\r\n+  font-size: 21px;\r\n+  line-height: inherit;\r\n+  color: #333;\r\n+  border: 0;\r\n+  border-bottom: 1px solid #e5e5e5;\r\n+}\r\n+.wppm_bootstrap label {\r\n+  display: inline-block;\r\n+  max-width: 100%;\r\n+  margin-bottom: 5px;\r\n+  font-weight: bold;\r\n+}\r\n+.wppm_bootstrap input[type=\"search\"] {\r\n+  -webkit-box-sizing: border-box;\r\n+     -moz-box-sizing: border-box;\r\n+          box-sizing: border-box;\r\n+}\r\n+.wppm_bootstrap input[type=\"radio\"],\r\n+.wppm_bootstrap input[type=\"checkbox\"] {\r\n+  margin: 4px 0 0;\r\n+  margin-top: 1px \\9;\r\n+  line-height: normal;\r\n+}\r\n+.wppm_bootstrap input[type=\"file\"] {\r\n+  display: block;\r\n+}\r\n+.wppm_bootstrap input[type=\"range\"] {\r\n+  display: block;\r\n+  width: 100%;\r\n+}\r\n+.wppm_bootstrap select[multiple],\r\n+.wppm_bootstrap select[size] {\r\n+  height: auto;\r\n+}\r\n+.wppm_bootstrap input[type=\"file\"]:focus,\r\n+.wppm_bootstrap input[type=\"radio\"]:focus,\r\n+.wppm_bootstrap input[type=\"checkbox\"]:focus {\r\n+  outline: 5px auto -webkit-focus-ring-color;\r\n+  outline-offset: -2px;\r\n+}\r\n+.wppm_bootstrap output {\r\n+  display: block;\r\n+  padding-top: 7px;\r\n+  font-size: 14px;\r\n+  line-height: 1.42857143;\r\n+  color: #555;\r\n+}\r\n+.wppm_bootstrap .form-control {\r\n+  display: block;\r\n+  width: 100%;\r\n+  height: 34px;\r\n+  padding: 6px 12px;\r\n+  font-size: 12px;\r\n+  line-height: 1.42857143;\r\n+  color: #555;\r\n+  background-color: #fff;\r\n+  background-image: none;\r\n+  border: 1px solid #ccc;\r\n+  border-radius: 4px;\r\n+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\r\n+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\r\n+  -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\r\n+       -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\r\n+          transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\r\n+}\r\n+.wppm_bootstrap .form-control:focus {\r\n+  border-color: #66afe9;\r\n+  outline: 0;\r\n+  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\r\n+          box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\r\n+}\r\n+.wppm_bootstrap .form-control::-moz-placeholder {\r\n+  color: #999;\r\n+  opacity: 1;\r\n+}\r\n+.wppm_bootstrap .form-control:-ms-input-placeholder {\r\n+  color: #999;\r\n+}\r\n+.wppm_bootstrap .form-control::-webkit-input-placeholder {\r\n+  color: #999;\r\n+}\r\n+.wppm_bootstrap .form-control::-ms-expand {\r\n+  background-color: transparent;\r\n+  border: 0;\r\n+}\r\n+.wppm_bootstrap .form-control[disabled],\r\n+.wppm_bootstrap .form-control[readonly],\r\n+.wppm_bootstrap fieldset[disabled] .form-control {\r\n+  background-color: #eee;\r\n+  opacity: 1;\r\n+}\r\n+.wppm_bootstrap .form-control[disabled],\r\n+.wppm_bootstrap fieldset[disabled] .form-control {\r\n+  cursor: not-allowed;\r\n+}\r\n+.wppm_bootstrap textarea.form-control {\r\n+  height: auto;\r\n+}\r\n+.wppm_bootstrap input[type=\"search\"] {\r\n+  -webkit-appearance: none;\r\n+}\r\n+@media screen and (-webkit-min-device-pixel-ratio: 0) {\r\n+  input[type=\"date\"].form-control,\r\n+  input[type=\"time\"].form-control,\r\n+  input[type=\"datetime-local\"].form-control,\r\n+  input[type=\"month\"].form-control {\r\n+    line-height: 34px;\r\n+  }\r\n+  input[type=\"date\"].input-sm,\r\n+  input[type=\"time\"].input-sm,\r\n+  input[type=\"datetime-local\"].input-sm,\r\n+  input[type=\"month\"].input-sm,\r\n+  .input-group-sm input[type=\"date\"],\r\n+  .input-group-sm input[type=\"time\"],\r\n+  .input-group-sm input[type=\"datetime-local\"],\r\n+  .input-group-sm input[type=\"month\"] {\r\n+    line-height: 30px;\r\n+  }\r\n+  input[type=\"date\"].input-lg,\r\n+  input[type=\"time\"].input-lg,\r\n+  input[type=\"datetime-local\"].input-lg,\r\n+  input[type=\"month\"].input-lg,\r\n+  .input-group-lg input[type=\"date\"],\r\n+  .input-group-lg input[type=\"time\"],\r\n+  .input-group-lg input[type=\"datetime-local\"],\r\n+  .input-group-lg input[type=\"month\"] {\r\n+    line-height: 46px;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .form-group {\r\n+  margin-bottom: 15px;\r\n+}\r\n+.wppm_bootstrap .radio,\r\n+.wppm_bootstrap .checkbox {\r\n+  position: relative !important;\r\n+  display: block !important;\r\n+  margin-top: 10px !important;\r\n+  margin-bottom: 10px !important;\r\n+}\r\n+.wppm_bootstrap .radio label,\r\n+.wppm_bootstrap .checkbox label {\r\n+  min-height: 20px !important;\r\n+  padding-left: 20px !important;\r\n+  margin-bottom: 0 !important;\r\n+  font-weight: normal !important;\r\n+  cursor: pointer !important;\r\n+}\r\n+.wppm_bootstrap .radio input[type=\"radio\"],\r\n+.wppm_bootstrap .radio-inline input[type=\"radio\"],\r\n+.wppm_bootstrap .checkbox input[type=\"checkbox\"],\r\n+.wppm_bootstrap .checkbox-inline input[type=\"checkbox\"] {\r\n+  position: absolute;\r\n+  margin-top: 4px \\9;\r\n+  margin-left: -20px;\r\n+}\r\n+.wppm_bootstrap .radio + .radio,\r\n+.wppm_bootstrap .checkbox + .checkbox {\r\n+  margin-top: -5px;\r\n+}\r\n+.wppm_bootstrap .radio-inline,\r\n+.wppm_bootstrap .checkbox-inline {\r\n+  position: relative;\r\n+  display: inline-block;\r\n+  padding-left: 20px;\r\n+  margin-bottom: 0;\r\n+  font-weight: normal;\r\n+  vertical-align: middle;\r\n+  cursor: pointer;\r\n+}\r\n+.wppm_bootstrap .radio-inline + .radio-inline,\r\n+.wppm_bootstrap .checkbox-inline + .checkbox-inline {\r\n+  margin-top: 0;\r\n+  margin-left: 10px;\r\n+}\r\n+.wppm_bootstrap input[type=\"radio\"][disabled],\r\n+.wppm_bootstrap input[type=\"checkbox\"][disabled],\r\n+.wppm_bootstrap input[type=\"radio\"].disabled,\r\n+.wppm_bootstrap input[type=\"checkbox\"].disabled,\r\n+.wppm_bootstrap fieldset[disabled] input[type=\"radio\"],\r\n+.wppm_bootstrap fieldset[disabled] input[type=\"checkbox\"] {\r\n+  cursor: not-allowed;\r\n+}\r\n+.wppm_bootstrap .radio-inline.disabled,\r\n+.wppm_bootstrap .checkbox-inline.disabled,\r\n+.wppm_bootstrap fieldset[disabled] .radio-inline,\r\n+.wppm_bootstrap fieldset[disabled] .checkbox-inline {\r\n+  cursor: not-allowed;\r\n+}\r\n+.wppm_bootstrap .radio.disabled label,\r\n+.wppm_bootstrap .checkbox.disabled label,\r\n+.wppm_bootstrap fieldset[disabled] .radio label,\r\n+.wppm_bootstrap fieldset[disabled] .checkbox label {\r\n+  cursor: not-allowed;\r\n+}\r\n+.wppm_bootstrap .form-control-static {\r\n+  min-height: 34px;\r\n+  padding-top: 7px;\r\n+  padding-bottom: 7px;\r\n+  margin-bottom: 0;\r\n+}\r\n+.wppm_bootstrap .form-control-static.input-lg,\r\n+.wppm_bootstrap .form-control-static.input-sm {\r\n+  padding-right: 0;\r\n+  padding-left: 0;\r\n+}\r\n+.wppm_bootstrap .input-sm {\r\n+  height: 30px;\r\n+  padding: 5px 10px;\r\n+  font-size: 12px;\r\n+  line-height: 1.5;\r\n+  border-radius: 3px;\r\n+}\r\n+.wppm_bootstrap select.input-sm {\r\n+  height: 30px;\r\n+  line-height: 30px;\r\n+}\r\n+.wppm_bootstrap textarea.input-sm,\r\n+.wppm_bootstrap select[multiple].input-sm {\r\n+  height: auto;\r\n+}\r\n+.wppm_bootstrap .form-group-sm .form-control {\r\n+  height: 30px;\r\n+  padding: 5px 10px;\r\n+  font-size: 12px;\r\n+  line-height: 1.5;\r\n+  border-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .form-group-sm select.form-control {\r\n+  height: 30px;\r\n+  line-height: 30px;\r\n+}\r\n+.wppm_bootstrap .form-group-sm textarea.form-control,\r\n+.wppm_bootstrap .form-group-sm select[multiple].form-control {\r\n+  height: auto;\r\n+}\r\n+.wppm_bootstrap .form-group-sm .form-control-static {\r\n+  height: 30px;\r\n+  min-height: 32px;\r\n+  padding: 6px 10px;\r\n+  font-size: 12px;\r\n+  line-height: 1.5;\r\n+}\r\n+.wppm_bootstrap .input-lg {\r\n+  height: 46px;\r\n+  padding: 10px 16px;\r\n+  font-size: 18px;\r\n+  line-height: 1.3333333;\r\n+  border-radius: 6px;\r\n+}\r\n+.wppm_bootstrap select.input-lg {\r\n+  height: 46px;\r\n+  line-height: 46px;\r\n+}\r\n+.wppm_bootstrap textarea.input-lg,\r\n+.wppm_bootstrap select[multiple].input-lg {\r\n+  height: auto;\r\n+}\r\n+.wppm_bootstrap .form-group-lg .form-control {\r\n+  height: 46px;\r\n+  padding: 10px 16px;\r\n+  font-size: 18px;\r\n+  line-height: 1.3333333;\r\n+  border-radius: 6px;\r\n+}\r\n+.wppm_bootstrap .form-group-lg select.form-control {\r\n+  height: 46px;\r\n+  line-height: 46px;\r\n+}\r\n+.wppm_bootstrap .form-group-lg textarea.form-control,\r\n+.wppm_bootstrap .form-group-lg select[multiple].form-control {\r\n+  height: auto;\r\n+}\r\n+.wppm_bootstrap .form-group-lg .form-control-static {\r\n+  height: 46px;\r\n+  min-height: 38px;\r\n+  padding: 11px 16px;\r\n+  font-size: 18px;\r\n+  line-height: 1.3333333;\r\n+}\r\n+.wppm_bootstrap .has-feedback {\r\n+  position: relative;\r\n+}\r\n+.wppm_bootstrap .has-feedback .form-control {\r\n+  padding-right: 42.5px;\r\n+}\r\n+.wppm_bootstrap .form-control-feedback {\r\n+  position: absolute;\r\n+  top: 0;\r\n+  right: 0;\r\n+  z-index: 2;\r\n+  display: block;\r\n+  width: 34px;\r\n+  height: 34px;\r\n+  line-height: 34px;\r\n+  text-align: center;\r\n+  pointer-events: none;\r\n+}\r\n+.wppm_bootstrap .input-lg + .form-control-feedback,\r\n+.wppm_bootstrap .input-group-lg + .form-control-feedback,\r\n+.wppm_bootstrap .form-group-lg .form-control + .form-control-feedback {\r\n+  width: 46px;\r\n+  height: 46px;\r\n+  line-height: 46px;\r\n+}\r\n+.wppm_bootstrap .input-sm + .form-control-feedback,\r\n+.wppm_bootstrap .input-group-sm + .form-control-feedback,\r\n+.wppm_bootstrap .form-group-sm .form-control + .form-control-feedback {\r\n+  width: 30px;\r\n+  height: 30px;\r\n+  line-height: 30px;\r\n+}\r\n+.wppm_bootstrap .has-success .help-block,\r\n+.wppm_bootstrap .has-success .control-label,\r\n+.wppm_bootstrap .has-success .radio,\r\n+.wppm_bootstrap .has-success .checkbox,\r\n+.wppm_bootstrap .has-success .radio-inline,\r\n+.wppm_bootstrap .has-success .checkbox-inline,\r\n+.wppm_bootstrap .has-success.radio label,\r\n+.wppm_bootstrap .has-success.checkbox label,\r\n+.wppm_bootstrap .has-success.radio-inline label,\r\n+.wppm_bootstrap .has-success.checkbox-inline label {\r\n+  color: #3c763d;\r\n+}\r\n+.wppm_bootstrap .has-success .form-control {\r\n+  border-color: #3c763d;\r\n+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\r\n+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\r\n+}\r\n+.wppm_bootstrap .has-success .form-control:focus {\r\n+  border-color: #2b542c;\r\n+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\r\n+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\r\n+}\r\n+.wppm_bootstrap .has-success .input-group-addon {\r\n+  color: #3c763d;\r\n+  background-color: #dff0d8;\r\n+  border-color: #3c763d;\r\n+}\r\n+.wppm_bootstrap .has-success .form-control-feedback {\r\n+  color: #3c763d;\r\n+}\r\n+.wppm_bootstrap .has-warning .help-block,\r\n+.wppm_bootstrap .has-warning .control-label,\r\n+.wppm_bootstrap .has-warning .radio,\r\n+.wppm_bootstrap .has-warning .checkbox,\r\n+.wppm_bootstrap .has-warning .radio-inline,\r\n+.wppm_bootstrap .has-warning .checkbox-inline,\r\n+.wppm_bootstrap .has-warning.radio label,\r\n+.wppm_bootstrap .has-warning.checkbox label,\r\n+.wppm_bootstrap .has-warning.radio-inline label,\r\n+.wppm_bootstrap .has-warning.checkbox-inline label {\r\n+  color: #8a6d3b;\r\n+}\r\n+.wppm_bootstrap .has-warning .form-control {\r\n+  border-color: #8a6d3b;\r\n+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\r\n+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\r\n+}\r\n+.wppm_bootstrap .has-warning .form-control:focus {\r\n+  border-color: #66512c;\r\n+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\r\n+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\r\n+}\r\n+.wppm_bootstrap .has-warning .input-group-addon {\r\n+  color: #8a6d3b;\r\n+  background-color: #fcf8e3;\r\n+  border-color: #8a6d3b;\r\n+}\r\n+.wppm_bootstrap .has-warning .form-control-feedback {\r\n+  color: #8a6d3b;\r\n+}\r\n+.wppm_bootstrap .has-error .help-block,\r\n+.wppm_bootstrap .has-error .control-label,\r\n+.wppm_bootstrap .has-error .radio,\r\n+.wppm_bootstrap .has-error .checkbox,\r\n+.wppm_bootstrap .has-error .radio-inline,\r\n+.wppm_bootstrap .has-error .checkbox-inline,\r\n+.wppm_bootstrap .has-error.radio label,\r\n+.wppm_bootstrap .has-error.checkbox label,\r\n+.wppm_bootstrap .has-error.radio-inline label,\r\n+.wppm_bootstrap .has-error.checkbox-inline label {\r\n+  color: #a94442;\r\n+}\r\n+.wppm_bootstrap .has-error .form-control {\r\n+  border-color: #a94442;\r\n+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\r\n+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\r\n+}\r\n+.wppm_bootstrap .has-error .form-control:focus {\r\n+  border-color: #843534;\r\n+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\r\n+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\r\n+}\r\n+.wppm_bootstrap .has-error .input-group-addon {\r\n+  color: #a94442;\r\n+  background-color: #f2dede;\r\n+  border-color: #a94442;\r\n+}\r\n+.wppm_bootstrap .has-error .form-control-feedback {\r\n+  color: #a94442;\r\n+}\r\n+.wppm_bootstrap .has-feedback label ~ .form-control-feedback {\r\n+  top: 25px;\r\n+}\r\n+.wppm_bootstrap .has-feedback label.sr-only ~ .form-control-feedback {\r\n+  top: 0;\r\n+}\r\n+.wppm_bootstrap .help-block {\r\n+  display: block;\r\n+  margin-top: 5px;\r\n+  margin-bottom: 10px;\r\n+  color: #737373;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .form-inline .form-group {\r\n+    display: inline-block;\r\n+    margin-bottom: 0;\r\n+    vertical-align: middle;\r\n+  }\r\n+  .wppm_bootstrap .form-inline .form-control {\r\n+    display: inline-block;\r\n+    width: auto;\r\n+    vertical-align: middle;\r\n+  }\r\n+  .wppm_bootstrap .form-inline .form-control-static {\r\n+    display: inline-block;\r\n+  }\r\n+  .wppm_bootstrap .form-inline .input-group {\r\n+    display: inline-table;\r\n+    vertical-align: middle;\r\n+  }\r\n+  .wppm_bootstrap .form-inline .input-group .input-group-addon,\r\n+  .wppm_bootstrap .form-inline .input-group .input-group-btn,\r\n+  .wppm_bootstrap .form-inline .input-group .form-control {\r\n+    width: auto;\r\n+  }\r\n+  .wppm_bootstrap .form-inline .input-group > .form-control {\r\n+    width: 100%;\r\n+  }\r\n+  .wppm_bootstrap .form-inline .control-label {\r\n+    margin-bottom: 0;\r\n+    vertical-align: middle;\r\n+  }\r\n+  .wppm_bootstrap .form-inline .radio,\r\n+  .wppm_bootstrap .form-inline .checkbox {\r\n+    display: inline-block;\r\n+    margin-top: 0;\r\n+    margin-bottom: 0;\r\n+    vertical-align: middle;\r\n+  }\r\n+  .wppm_bootstrap .form-inline .radio label,\r\n+  .wppm_bootstrap .form-inline .checkbox label {\r\n+    padding-left: 0;\r\n+  }\r\n+  .wppm_bootstrap .form-inline .radio input[type=\"radio\"],\r\n+  .wppm_bootstrap .form-inline .checkbox input[type=\"checkbox\"] {\r\n+    position: relative;\r\n+    margin-left: 0;\r\n+  }\r\n+  .wppm_bootstrap .form-inline .has-feedback .form-control-feedback {\r\n+    top: 0;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .form-horizontal .radio,\r\n+.wppm_bootstrap .form-horizontal .checkbox,\r\n+.wppm_bootstrap .form-horizontal .radio-inline,\r\n+.wppm_bootstrap .form-horizontal .checkbox-inline {\r\n+  padding-top: 7px;\r\n+  margin-top: 0;\r\n+  margin-bottom: 0;\r\n+}\r\n+.wppm_bootstrap .form-horizontal .radio,\r\n+.wppm_bootstrap .form-horizontal .checkbox {\r\n+  min-height: 27px;\r\n+}\r\n+.wppm_bootstrap .form-horizontal .form-group {\r\n+  margin-right: -15px;\r\n+  margin-left: -15px;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .form-horizontal .control-label {\r\n+    padding-top: 7px;\r\n+    margin-bottom: 0;\r\n+    text-align: right;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .form-horizontal .has-feedback .form-control-feedback {\r\n+  right: 15px;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .form-horizontal .form-group-lg .control-label {\r\n+    padding-top: 11px;\r\n+    font-size: 18px;\r\n+  }\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .form-horizontal .form-group-sm .control-label {\r\n+    padding-top: 6px;\r\n+    font-size: 12px;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .btn {\r\n+  display: inline-block;\r\n+  padding: 6px 12px;\r\n+  margin-bottom: 0;\r\n+  font-size: 14px;\r\n+  font-weight: normal;\r\n+  line-height: 1.42857143;\r\n+  text-align: center;\r\n+  white-space: nowrap;\r\n+  vertical-align: middle;\r\n+  -ms-touch-action: manipulation;\r\n+      touch-action: manipulation;\r\n+  cursor: pointer;\r\n+  -webkit-user-select: none;\r\n+     -moz-user-select: none;\r\n+      -ms-user-select: none;\r\n+          user-select: none;\r\n+  background-image: none;\r\n+  border: 1px solid transparent;\r\n+  border-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .btn:focus,\r\n+.wppm_bootstrap .btn:active:focus,\r\n+.wppm_bootstrap .btn.active:focus,\r\n+.wppm_bootstrap .btn.focus,\r\n+.wppm_bootstrap .btn:active.focus,\r\n+.wppm_bootstrap .btn.active.focus {\r\n+  outline: 5px auto -webkit-focus-ring-color;\r\n+  outline-offset: -2px;\r\n+}\r\n+.wppm_bootstrap .btn:hover,\r\n+.wppm_bootstrap .btn:focus,\r\n+.wppm_bootstrap .btn.focus {\r\n+  color: #333;\r\n+  text-decoration: none;\r\n+}\r\n+.wppm_bootstrap .btn:active,\r\n+.wppm_bootstrap .btn.active {\r\n+  background-image: none;\r\n+  outline: 0;\r\n+  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\r\n+          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\r\n+}\r\n+.wppm_bootstrap .btn.disabled,\r\n+.wppm_bootstrap .btn[disabled],\r\n+.wppm_bootstrap fieldset[disabled] .btn {\r\n+  cursor: not-allowed;\r\n+  filter: alpha(opacity=65);\r\n+  -webkit-box-shadow: none;\r\n+          box-shadow: none;\r\n+  opacity: .65;\r\n+}\r\n+.wppm_bootstrap a.btn.disabled,\r\n+.wppm_bootstrap fieldset[disabled] a.btn {\r\n+  pointer-events: none;\r\n+}\r\n+.wppm_bootstrap .btn-default {\r\n+  color: #333;\r\n+  background-color: #fff;\r\n+  border-color: #ccc;\r\n+}\r\n+.wppm_bootstrap .btn-default:focus,\r\n+.wppm_bootstrap .btn-default.focus {\r\n+  color: #333;\r\n+  background-color: #e6e6e6;\r\n+  border-color: #8c8c8c;\r\n+}\r\n+.wppm_bootstrap .btn-default:hover {\r\n+  color: #333;\r\n+  background-color: #e6e6e6;\r\n+  border-color: #adadad;\r\n+}\r\n+.wppm_bootstrap .btn-default:active,\r\n+.wppm_bootstrap .btn-default.active,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-default {\r\n+  color: #333;\r\n+  background-color: #e6e6e6;\r\n+  border-color: #adadad;\r\n+}\r\n+.wppm_bootstrap .btn-default:active:hover,\r\n+.wppm_bootstrap .btn-default.active:hover,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-default:hover,\r\n+.wppm_bootstrap .btn-default:active:focus,\r\n+.wppm_bootstrap .btn-default.active:focus,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-default:focus,\r\n+.wppm_bootstrap .btn-default:active.focus,\r\n+.wppm_bootstrap .btn-default.active.focus,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-default.focus {\r\n+  color: #333;\r\n+  background-color: #d4d4d4;\r\n+  border-color: #8c8c8c;\r\n+}\r\n+.wppm_bootstrap .btn-default:active,\r\n+.wppm_bootstrap .btn-default.active,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-default {\r\n+  background-image: none;\r\n+}\r\n+.wppm_bootstrap .btn-default.disabled:hover,\r\n+.wppm_bootstrap .btn-default[disabled]:hover,\r\n+.wppm_bootstrap fieldset[disabled] .btn-default:hover,\r\n+.wppm_bootstrap .btn-default.disabled:focus,\r\n+.wppm_bootstrap .btn-default[disabled]:focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-default:focus,\r\n+.wppm_bootstrap .btn-default.disabled.focus,\r\n+.wppm_bootstrap .btn-default[disabled].focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-default.focus {\r\n+  background-color: #fff;\r\n+  border-color: #ccc;\r\n+}\r\n+.wppm_bootstrap .btn-default .badge {\r\n+  color: #fff;\r\n+  background-color: #333;\r\n+}\r\n+.wppm_bootstrap .btn-primary {\r\n+  color: #fff;\r\n+  \u002F* background-color: #337ab7; *\u002F\r\n+  background-color: #0052CC;\r\n+  border-color: #2e6da4;\r\n+}\r\n+.wppm_bootstrap .btn-primary:focus,\r\n+.wppm_bootstrap .btn-primary.focus {\r\n+  color: #fff;\r\n+  background-color: #286090;\r\n+  border-color: #122b40;\r\n+}\r\n+.wppm_bootstrap .btn-primary:hover {\r\n+  color: #fff;\r\n+  \u002F* background-color: #286090; *\u002F\r\n+  background-color: #0065ff;\r\n+  border-color: #204d74;\r\n+}\r\n+.wppm_bootstrap .btn-primary:active,\r\n+.wppm_bootstrap .btn-primary.active,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-primary {\r\n+  color: #fff;\r\n+  background-color: #286090;\r\n+  border-color: #204d74;\r\n+}\r\n+.wppm_bootstrap .btn-primary:active:hover,\r\n+.wppm_bootstrap .btn-primary.active:hover,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-primary:hover,\r\n+.wppm_bootstrap .btn-primary:active:focus,\r\n+.wppm_bootstrap .btn-primary.active:focus,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-primary:focus,\r\n+.wppm_bootstrap .btn-primary:active.focus,\r\n+.wppm_bootstrap .btn-primary.active.focus,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-primary.focus {\r\n+  color: #fff;\r\n+  background-color: #204d74;\r\n+  border-color: #122b40;\r\n+}\r\n+.wppm_bootstrap .btn-primary:active,\r\n+.wppm_bootstrap .btn-primary.active,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-primary {\r\n+  background-image: none;\r\n+}\r\n+.wppm_bootstrap .btn-primary.disabled:hover,\r\n+.wppm_bootstrap .btn-primary[disabled]:hover,\r\n+.wppm_bootstrap fieldset[disabled] .btn-primary:hover,\r\n+.wppm_bootstrap .btn-primary.disabled:focus,\r\n+.wppm_bootstrap .btn-primary[disabled]:focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-primary:focus,\r\n+.wppm_bootstrap .btn-primary.disabled.focus,\r\n+.wppm_bootstrap .btn-primary[disabled].focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-primary.focus {\r\n+  background-color: #337ab7;\r\n+  border-color: #2e6da4;\r\n+}\r\n+.wppm_bootstrap .btn-primary .badge {\r\n+  color: #337ab7;\r\n+  background-color: #fff;\r\n+}\r\n+.wppm_bootstrap .btn-success {\r\n+  color: #fff;\r\n+  background-color: #5cb85c;\r\n+  border-color: #4cae4c;\r\n+}\r\n+.wppm_bootstrap .btn-success:focus,\r\n+.wppm_bootstrap .btn-success.focus {\r\n+  color: #fff;\r\n+  background-color: #449d44;\r\n+  border-color: #255625;\r\n+}\r\n+.wppm_bootstrap .btn-success:hover {\r\n+  color: #fff;\r\n+  background-color: #449d44;\r\n+  border-color: #398439;\r\n+}\r\n+.wppm_bootstrap .btn-success:active,\r\n+.wppm_bootstrap .btn-success.active,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-success {\r\n+  color: #fff;\r\n+  background-color: #449d44;\r\n+  border-color: #398439;\r\n+}\r\n+.wppm_bootstrap .btn-success:active:hover,\r\n+.wppm_bootstrap .btn-success.active:hover,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-success:hover,\r\n+.wppm_bootstrap .btn-success:active:focus,\r\n+.wppm_bootstrap .btn-success.active:focus,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-success:focus,\r\n+.wppm_bootstrap .btn-success:active.focus,\r\n+.wppm_bootstrap .btn-success.active.focus,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-success.focus {\r\n+  color: #fff;\r\n+  background-color: #398439;\r\n+  border-color: #255625;\r\n+}\r\n+.wppm_bootstrap .btn-success:active,\r\n+.wppm_bootstrap .btn-success.active,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-success {\r\n+  background-image: none;\r\n+}\r\n+.wppm_bootstrap .btn-success.disabled:hover,\r\n+.wppm_bootstrap .btn-success[disabled]:hover,\r\n+.wppm_bootstrap fieldset[disabled] .btn-success:hover,\r\n+.wppm_bootstrap .btn-success.disabled:focus,\r\n+.wppm_bootstrap .btn-success[disabled]:focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-success:focus,\r\n+.wppm_bootstrap .btn-success.disabled.focus,\r\n+.wppm_bootstrap .btn-success[disabled].focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-success.focus {\r\n+  background-color: #5cb85c;\r\n+  border-color: #4cae4c;\r\n+}\r\n+.wppm_bootstrap .btn-success .badge {\r\n+  color: #5cb85c;\r\n+  background-color: #fff;\r\n+}\r\n+.wppm_bootstrap .btn-info {\r\n+  color: #fff;\r\n+  background-color: #5bc0de;\r\n+  border-color: #46b8da;\r\n+}\r\n+.wppm_bootstrap .btn-info:focus,\r\n+.wppm_bootstrap .btn-info.focus {\r\n+  color: #fff;\r\n+  background-color: #31b0d5;\r\n+  border-color: #1b6d85;\r\n+}\r\n+.wppm_bootstrap .btn-info:hover {\r\n+  color: #fff;\r\n+  background-color: #31b0d5;\r\n+  border-color: #269abc;\r\n+}\r\n+.wppm_bootstrap .btn-info:active,\r\n+.wppm_bootstrap .btn-info.active,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-info {\r\n+  color: #fff;\r\n+  background-color: #31b0d5;\r\n+  border-color: #269abc;\r\n+}\r\n+.wppm_bootstrap .btn-info:active:hover,\r\n+.wppm_bootstrap .btn-info.active:hover,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-info:hover,\r\n+.wppm_bootstrap .btn-info:active:focus,\r\n+.wppm_bootstrap .btn-info.active:focus,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-info:focus,\r\n+.wppm_bootstrap .btn-info:active.focus,\r\n+.wppm_bootstrap .btn-info.active.focus,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-info.focus {\r\n+  color: #fff;\r\n+  background-color: #269abc;\r\n+  border-color: #1b6d85;\r\n+}\r\n+.wppm_bootstrap .btn-info:active,\r\n+.wppm_bootstrap .btn-info.active,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-info {\r\n+  background-image: none;\r\n+}\r\n+.wppm_bootstrap .btn-info.disabled:hover,\r\n+.wppm_bootstrap .btn-info[disabled]:hover,\r\n+.wppm_bootstrap fieldset[disabled] .btn-info:hover,\r\n+.wppm_bootstrap .btn-info.disabled:focus,\r\n+.wppm_bootstrap .btn-info[disabled]:focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-info:focus,\r\n+.wppm_bootstrap .btn-info.disabled.focus,\r\n+.wppm_bootstrap .btn-info[disabled].focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-info.focus {\r\n+  background-color: #5bc0de;\r\n+  border-color: #46b8da;\r\n+}\r\n+.wppm_bootstrap .btn-info .badge {\r\n+  color: #5bc0de;\r\n+  background-color: #fff;\r\n+}\r\n+.wppm_bootstrap .btn-warning {\r\n+  color: #fff;\r\n+  background-color: #f0ad4e;\r\n+  border-color: #eea236;\r\n+}\r\n+.wppm_bootstrap .btn-warning:focus,\r\n+.wppm_bootstrap .btn-warning.focus {\r\n+  color: #fff;\r\n+  background-color: #ec971f;\r\n+  border-color: #985f0d;\r\n+}\r\n+.wppm_bootstrap .btn-warning:hover {\r\n+  color: #fff;\r\n+  background-color: #ec971f;\r\n+  border-color: #d58512;\r\n+}\r\n+.wppm_bootstrap .btn-warning:active,\r\n+.wppm_bootstrap .btn-warning.active,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-warning {\r\n+  color: #fff;\r\n+  background-color: #ec971f;\r\n+  border-color: #d58512;\r\n+}\r\n+.wppm_bootstrap .btn-warning:active:hover,\r\n+.wppm_bootstrap .btn-warning.active:hover,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-warning:hover,\r\n+.wppm_bootstrap .btn-warning:active:focus,\r\n+.wppm_bootstrap .btn-warning.active:focus,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-warning:focus,\r\n+.wppm_bootstrap btn-warning:active.focus,\r\n+.wppm_bootstrap .btn-warning.active.focus,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-warning.focus {\r\n+  color: #fff;\r\n+  background-color: #d58512;\r\n+  border-color: #985f0d;\r\n+}\r\n+.wppm_bootstrap .btn-warning:active,\r\n+.wppm_bootstrap .btn-warning.active,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-warning {\r\n+  background-image: none;\r\n+}\r\n+.wppm_bootstrap .btn-warning.disabled:hover,\r\n+.wppm_bootstrap .btn-warning[disabled]:hover,\r\n+.wppm_bootstrap fieldset[disabled] .btn-warning:hover,\r\n+.wppm_bootstrap .btn-warning.disabled:focus,\r\n+.wppm_bootstrap .btn-warning[disabled]:focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-warning:focus,\r\n+.wppm_bootstrap .btn-warning.disabled.focus,\r\n+.wppm_bootstrap .btn-warning[disabled].focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-warning.focus {\r\n+  background-color: #f0ad4e;\r\n+  border-color: #eea236;\r\n+}\r\n+.wppm_bootstrap .btn-warning .badge {\r\n+  color: #f0ad4e;\r\n+  background-color: #fff;\r\n+}\r\n+.wppm_bootstrap .btn-danger {\r\n+  color: #fff;\r\n+  background-color: #d9534f;\r\n+  border-color: #d43f3a;\r\n+}\r\n+.wppm_bootstrap .btn-danger:focus,\r\n+.wppm_bootstrap .btn-danger.focus {\r\n+  color: #fff;\r\n+  background-color: #c9302c;\r\n+  border-color: #761c19;\r\n+}\r\n+.wppm_bootstrap .btn-danger:hover {\r\n+  color: #fff;\r\n+  background-color: #c9302c;\r\n+  border-color: #ac2925;\r\n+}\r\n+.wppm_bootstrap .btn-danger:active,\r\n+.wppm_bootstrap .btn-danger.active,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-danger {\r\n+  color: #fff;\r\n+  background-color: #c9302c;\r\n+  border-color: #ac2925;\r\n+}\r\n+.wppm_bootstrap .btn-danger:active:hover,\r\n+.wppm_bootstrap .btn-danger.active:hover,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-danger:hover,\r\n+.wppm_bootstrap .btn-danger:active:focus,\r\n+.wppm_bootstrap .btn-danger.active:focus,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-danger:focus,\r\n+.wppm_bootstrap .btn-danger:active.focus,\r\n+.wppm_bootstrap .btn-danger.active.focus,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-danger.focus {\r\n+  color: #fff;\r\n+  background-color: #ac2925;\r\n+  border-color: #761c19;\r\n+}\r\n+.wppm_bootstrap .btn-danger:active,\r\n+.wppm_bootstrap .btn-danger.active,\r\n+.wppm_bootstrap .open > .dropdown-toggle.btn-danger {\r\n+  background-image: none;\r\n+}\r\n+.wppm_bootstrap .btn-danger.disabled:hover,\r\n+.wppm_bootstrap .btn-danger[disabled]:hover,\r\n+.wppm_bootstrap fieldset[disabled] .btn-danger:hover,\r\n+.wppm_bootstrap .btn-danger.disabled:focus,\r\n+.wppm_bootstrap .btn-danger[disabled]:focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-danger:focus,\r\n+.wppm_bootstrap .btn-danger.disabled.focus,\r\n+.wppm_bootstrap .btn-danger[disabled].focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-danger.focus {\r\n+  background-color: #d9534f;\r\n+  border-color: #d43f3a;\r\n+}\r\n+.wppm_bootstrap .btn-danger .badge {\r\n+  color: #d9534f;\r\n+  background-color: #fff;\r\n+}\r\n+.wppm_bootstrap .btn-link {\r\n+  font-weight: normal;\r\n+  color: #337ab7;\r\n+  border-radius: 0;\r\n+}\r\n+.wppm_bootstrap .btn-link,\r\n+.wppm_bootstrap .btn-link:active,\r\n+.wppm_bootstrap .btn-link.active,\r\n+.wppm_bootstrap .btn-link[disabled],\r\n+.wppm_bootstrap fieldset[disabled] .btn-link {\r\n+  background-color: transparent;\r\n+  -webkit-box-shadow: none;\r\n+          box-shadow: none;\r\n+}\r\n+.wppm_bootstrap .btn-link,\r\n+.wppm_bootstrap .btn-link:hover,\r\n+.wppm_bootstrap .btn-link:focus,\r\n+.wppm_bootstrap .btn-link:active {\r\n+  border-color: transparent;\r\n+}\r\n+.wppm_bootstrap .btn-link:hover,\r\n+.wppm_bootstrap .btn-link:focus {\r\n+  color: #23527c;\r\n+  text-decoration: underline;\r\n+  background-color: transparent;\r\n+}\r\n+.wppm_bootstrap .btn-link[disabled]:hover,\r\n+.wppm_bootstrap fieldset[disabled] .btn-link:hover,\r\n+.wppm_bootstrap .btn-link[disabled]:focus,\r\n+.wppm_bootstrap fieldset[disabled] .btn-link:focus {\r\n+  color: #777;\r\n+  text-decoration: none;\r\n+}\r\n+.wppm_bootstrap .btn-lg,\r\n+.wppm_bootstrap .btn-group-lg > .btn {\r\n+  padding: 10px 16px;\r\n+  font-size: 18px;\r\n+  line-height: 1.3333333;\r\n+  border-radius: 6px;\r\n+}\r\n+.wppm_bootstrap .btn-sm,\r\n+.wppm_bootstrap .btn-group-sm > .btn {\r\n+  padding: 5px 10px;\r\n+  font-size: 12px;\r\n+  line-height: 1.5;\r\n+  border-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .btn-xs,\r\n+.wppm_bootstrap .btn-group-xs > .btn {\r\n+  padding: 1px 5px;\r\n+  font-size: 12px;\r\n+  line-height: 1.5;\r\n+  border-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .btn-block {\r\n+  display: block;\r\n+  width: 100%;\r\n+}\r\n+.wppm_bootstrap .btn-block + .btn-block {\r\n+  margin-top: 5px;\r\n+}\r\n+.wppm_bootstrap input[type=\"submit\"].btn-block,\r\n+.wppm_bootstrap input[type=\"reset\"].btn-block,\r\n+.wppm_bootstrap input[type=\"button\"].btn-block {\r\n+  width: 100%;\r\n+}\r\n+.wppm_bootstrap .fade {\r\n+  opacity: 0;\r\n+  -webkit-transition: opacity .15s linear;\r\n+       -o-transition: opacity .15s linear;\r\n+          transition: opacity .15s linear;\r\n+}\r\n+.wppm_bootstrap .fade.in {\r\n+  opacity: 1;\r\n+}\r\n+.wppm_bootstrap .collapse {\r\n+  display: none;\r\n+}\r\n+.wppm_bootstrap .collapse.in {\r\n+  display: block;\r\n+}\r\n+.wppm_bootstrap tr.collapse.in {\r\n+  display: table-row;\r\n+}\r\n+.wppm_bootstrap tbody.collapse.in {\r\n+  display: table-row-group;\r\n+}\r\n+.wppm_bootstrap .collapsing {\r\n+  position: relative;\r\n+  height: 0;\r\n+  overflow: hidden;\r\n+  -webkit-transition-timing-function: ease;\r\n+       -o-transition-timing-function: ease;\r\n+          transition-timing-function: ease;\r\n+  -webkit-transition-duration: .35s;\r\n+       -o-transition-duration: .35s;\r\n+          transition-duration: .35s;\r\n+  -webkit-transition-property: height, visibility;\r\n+       -o-transition-property: height, visibility;\r\n+          transition-property: height, visibility;\r\n+}\r\n+.wppm_bootstrap .caret {\r\n+  display: inline-block;\r\n+  width: 0;\r\n+  height: 0;\r\n+  margin-left: 2px;\r\n+  vertical-align: middle;\r\n+  border-top: 4px dashed;\r\n+  border-top: 4px solid \\9;\r\n+  border-right: 4px solid transparent;\r\n+  border-left: 4px solid transparent;\r\n+}\r\n+.wppm_bootstrap .dropup,\r\n+.wppm_bootstrap .dropdown {\r\n+  position: relative;\r\n+}\r\n+.wppm_bootstrap .dropdown-toggle:focus {\r\n+  outline: 0;\r\n+}\r\n+.wppm_bootstrap .dropdown-menu {\r\n+  position: absolute;\r\n+  top: 100%;\r\n+  left: 0;\r\n+  z-index: 1000;\r\n+  display: none;\r\n+  float: left;\r\n+  min-width: 160px;\r\n+  padding: 5px 0;\r\n+  margin: 2px 0 0;\r\n+  font-size: 14px;\r\n+  text-align: left;\r\n+  list-style: none;\r\n+  background-color: #fff;\r\n+  -webkit-background-clip: padding-box;\r\n+          background-clip: padding-box;\r\n+  border: 1px solid #ccc;\r\n+  border: 1px solid rgba(0, 0, 0, .15);\r\n+  border-radius: 4px;\r\n+  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\r\n+          box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\r\n+}\r\n+.wppm_bootstrap .dropdown-menu.pull-right {\r\n+  right: 0;\r\n+  left: auto;\r\n+}\r\n+.wppm_bootstrap .dropdown-menu .divider {\r\n+  height: 1px;\r\n+  margin: 9px 0;\r\n+  overflow: hidden;\r\n+  background-color: #e5e5e5;\r\n+}\r\n+.wppm_bootstrap .dropdown-menu > li > a {\r\n+  display: block;\r\n+  padding: 3px 20px;\r\n+  clear: both;\r\n+  font-weight: normal;\r\n+  line-height: 1.42857143;\r\n+  color: #333;\r\n+  white-space: nowrap;\r\n+}\r\n+.wppm_bootstrap .dropdown-menu > li > a:hover,\r\n+.wppm_bootstrap .dropdown-menu > li > a:focus {\r\n+  color: #262626;\r\n+  text-decoration: none;\r\n+  background-color: #f5f5f5;\r\n+}\r\n+.wppm_bootstrap .dropdown-menu > .active > a,\r\n+.wppm_bootstrap .dropdown-menu > .active > a:hover,\r\n+.wppm_bootstrap .dropdown-menu > .active > a:focus {\r\n+  color: #fff;\r\n+  text-decoration: none;\r\n+  background-color: #337ab7;\r\n+  outline: 0;\r\n+}\r\n+.wppm_bootstrap .dropdown-menu > .disabled > a,\r\n+.wppm_bootstrap .dropdown-menu > .disabled > a:hover,\r\n+.wppm_bootstrap .dropdown-menu > .disabled > a:focus {\r\n+  color: #777;\r\n+}\r\n+.wppm_bootstrap .dropdown-menu > .disabled > a:hover,\r\n+.wppm_bootstrap .dropdown-menu > .disabled > a:focus {\r\n+  text-decoration: none;\r\n+  cursor: not-allowed;\r\n+  background-color: transparent;\r\n+  background-image: none;\r\n+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\r\n+}\r\n+.wppm_bootstrap .open > .dropdown-menu {\r\n+  display: block;\r\n+}\r\n+.wppm_bootstrap .open > a {\r\n+  outline: 0;\r\n+}\r\n+.wppm_bootstrap .dropdown-menu-right {\r\n+  right: 0;\r\n+  left: auto;\r\n+}\r\n+.wppm_bootstrap .dropdown-menu-left {\r\n+  right: auto;\r\n+  left: 0;\r\n+}\r\n+.wppm_bootstrap .dropdown-header {\r\n+  display: block;\r\n+  padding: 3px 20px;\r\n+  font-size: 12px;\r\n+  line-height: 1.42857143;\r\n+  color: #777;\r\n+  white-space: nowrap;\r\n+}\r\n+.wppm_bootstrap .dropdown-backdrop {\r\n+  position: fixed;\r\n+  top: 0;\r\n+  right: 0;\r\n+  bottom: 0;\r\n+  left: 0;\r\n+  z-index: 990;\r\n+}\r\n+.wppm_bootstrap .pull-right > .dropdown-menu {\r\n+  right: 0;\r\n+  left: auto;\r\n+}\r\n+.wppm_bootstrap .dropup .caret,\r\n+.wppm_bootstrap .navbar-fixed-bottom .dropdown .caret {\r\n+  content: \"\";\r\n+  border-top: 0;\r\n+  border-bottom: 4px dashed;\r\n+  border-bottom: 4px solid \\9;\r\n+}\r\n+.wppm_bootstrap .dropup .dropdown-menu,\r\n+.wppm_bootstrap .navbar-fixed-bottom .dropdown .dropdown-menu {\r\n+  top: auto;\r\n+  bottom: 100%;\r\n+  margin-bottom: 2px;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar-right .dropdown-menu {\r\n+    right: 0;\r\n+    left: auto;\r\n+  }\r\n+  .navbar-right .dropdown-menu-left {\r\n+    right: auto;\r\n+    left: 0;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .btn-group,\r\n+.wppm_bootstrap .btn-group-vertical {\r\n+  position: relative;\r\n+  display: inline-block;\r\n+  vertical-align: middle;\r\n+}\r\n+.wppm_bootstrap .btn-group > .btn,\r\n+.wppm_bootstrap .btn-group-vertical > .btn {\r\n+  position: relative;\r\n+  float: left;\r\n+}\r\n+.wppm_bootstrap .btn-group > .btn:hover,\r\n+.wppm_bootstrap .btn-group-vertical > .btn:hover,\r\n+.wppm_bootstrap .btn-group > .btn:focus,\r\n+.wppm_bootstrap .btn-group-vertical > .btn:focus,\r\n+.wppm_bootstrap .btn-group > .btn:active,\r\n+.wppm_bootstrap .btn-group-vertical > .btn:active,\r\n+.wppm_bootstrap .btn-group > .btn.active,\r\n+.wppm_bootstrap .btn-group-vertical > .btn.active {\r\n+  z-index: 2;\r\n+}\r\n+.wppm_bootstrap .btn-group .btn + .btn,\r\n+.wppm_bootstrap .btn-group .btn + .btn-group,\r\n+.wppm_bootstrap .btn-group .btn-group + .btn,\r\n+.wppm_bootstrap .btn-group .btn-group + .btn-group {\r\n+  margin-left: -1px;\r\n+}\r\n+.wppm_bootstrap .btn-toolbar {\r\n+  margin-left: -5px;\r\n+}\r\n+.wppm_bootstrap .btn-toolbar .btn,\r\n+.wppm_bootstrap .btn-toolbar .btn-group,\r\n+.wppm_bootstrap .btn-toolbar .input-group {\r\n+  float: left;\r\n+}\r\n+.wppm_bootstrap .btn-toolbar > .btn,\r\n+.wppm_bootstrap .btn-toolbar > .btn-group,\r\n+.wppm_bootstrap .btn-toolbar > .input-group {\r\n+  margin-left: 5px;\r\n+}\r\n+.wppm_bootstrap .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\r\n+  border-radius: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group > .btn:first-child {\r\n+  margin-left: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\r\n+  border-top-right-radius: 0;\r\n+  border-bottom-right-radius: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group > .btn:last-child:not(:first-child),\r\n+.wppm_bootstrap .btn-group > .dropdown-toggle:not(:first-child) {\r\n+  border-top-left-radius: 0;\r\n+  border-bottom-left-radius: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group > .btn-group {\r\n+  float: left;\r\n+}\r\n+.wppm_bootstrap .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\r\n+  border-radius: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\r\n+.wppm_bootstrap .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\r\n+  border-top-right-radius: 0;\r\n+  border-bottom-right-radius: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\r\n+  border-top-left-radius: 0;\r\n+  border-bottom-left-radius: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group .dropdown-toggle:active,\r\n+.wppm_bootstrap .btn-group.open .dropdown-toggle {\r\n+  outline: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group > .btn + .dropdown-toggle {\r\n+  padding-right: 8px;\r\n+  padding-left: 8px;\r\n+}\r\n+.wppm_bootstrap .btn-group > .btn-lg + .dropdown-toggle {\r\n+  padding-right: 12px;\r\n+  padding-left: 12px;\r\n+}\r\n+.wppm_bootstrap .btn-group.open .dropdown-toggle {\r\n+  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\r\n+          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\r\n+}\r\n+.wppm_bootstrap .btn-group.open .dropdown-toggle.btn-link {\r\n+  -webkit-box-shadow: none;\r\n+          box-shadow: none;\r\n+}\r\n+.wppm_bootstrap .btn .caret {\r\n+  margin-left: 0;\r\n+}\r\n+.wppm_bootstrap .btn-lg .caret {\r\n+  border-width: 5px 5px 0;\r\n+  border-bottom-width: 0;\r\n+}\r\n+.wppm_bootstrap .dropup .btn-lg .caret {\r\n+  border-width: 0 5px 5px;\r\n+}\r\n+.wppm_bootstrap .btn-group-vertical > .btn,\r\n+.wppm_bootstrap .btn-group-vertical > .btn-group,\r\n+.wppm_bootstrap .btn-group-vertical > .btn-group > .btn {\r\n+  display: block;\r\n+  float: none;\r\n+  width: 100%;\r\n+  max-width: 100%;\r\n+}\r\n+.wppm_bootstrap .btn-group-vertical > .btn-group > .btn {\r\n+  float: none;\r\n+}\r\n+.wppm_bootstrap .btn-group-vertical > .btn + .btn,\r\n+.wppm_bootstrap .btn-group-vertical > .btn + .btn-group,\r\n+.wppm_bootstrap .btn-group-vertical > .btn-group + .btn,\r\n+.wppm_bootstrap .btn-group-vertical > .btn-group + .btn-group {\r\n+  margin-top: -1px;\r\n+  margin-left: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group-vertical > .btn:not(:first-child):not(:last-child) {\r\n+  border-radius: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group-vertical > .btn:first-child:not(:last-child) {\r\n+  border-top-left-radius: 4px;\r\n+  border-top-right-radius: 4px;\r\n+  border-bottom-right-radius: 0;\r\n+  border-bottom-left-radius: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group-vertical > .btn:last-child:not(:first-child) {\r\n+  border-top-left-radius: 0;\r\n+  border-top-right-radius: 0;\r\n+  border-bottom-right-radius: 4px;\r\n+  border-bottom-left-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\r\n+  border-radius: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\r\n+.wppm_bootstrap .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\r\n+  border-bottom-right-radius: 0;\r\n+  border-bottom-left-radius: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\r\n+  border-top-left-radius: 0;\r\n+  border-top-right-radius: 0;\r\n+}\r\n+.wppm_bootstrap .btn-group-justified {\r\n+  display: table;\r\n+  width: 100%;\r\n+  table-layout: fixed;\r\n+  border-collapse: separate;\r\n+}\r\n+.wppm_bootstrap .btn-group-justified > .btn,\r\n+.wppm_bootstrap .btn-group-justified > .btn-group {\r\n+  display: table-cell;\r\n+  float: none;\r\n+  width: 1%;\r\n+}\r\n+.wppm_bootstrap .btn-group-justified > .btn-group .btn {\r\n+  width: 100%;\r\n+}\r\n+.wppm_bootstrap .btn-group-justified > .btn-group .dropdown-menu {\r\n+  left: auto;\r\n+}\r\n+[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\r\n+[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\r\n+[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\r\n+[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\r\n+  position: absolute;\r\n+  clip: rect(0, 0, 0, 0);\r\n+  pointer-events: none;\r\n+}\r\n+.wppm_bootstrap .input-group {\r\n+  position: relative;\r\n+  display: table;\r\n+  border-collapse: separate;\r\n+}\r\n+.wppm_bootstrap .input-group[class*=\"col-\"] {\r\n+  float: none;\r\n+  padding-right: 0;\r\n+  padding-left: 0;\r\n+}\r\n+.wppm_bootstrap .input-group .form-control {\r\n+  position: relative;\r\n+  z-index: 2;\r\n+  float: left;\r\n+  width: 100%;\r\n+  margin-bottom: 0;\r\n+}\r\n+.wppm_bootstrap .input-group .form-control:focus {\r\n+  z-index: 3;\r\n+}\r\n+.wppm_bootstrap .input-group-lg > .form-control,\r\n+.wppm_bootstrap .input-group-lg > .input-group-addon,\r\n+.wppm_bootstrap .input-group-lg > .input-group-btn > .btn {\r\n+  height: 46px;\r\n+  padding: 10px 16px;\r\n+  font-size: 18px;\r\n+  line-height: 1.3333333;\r\n+  border-radius: 6px;\r\n+}\r\n+.wppm_bootstrap select.input-group-lg > .form-control,\r\n+.wppm_bootstrap select.input-group-lg > .input-group-addon,\r\n+.wppm_bootstrap select.input-group-lg > .input-group-btn > .btn {\r\n+  height: 46px;\r\n+  line-height: 46px;\r\n+}\r\n+.wppm_bootstrap textarea.input-group-lg > .form-control,\r\n+.wppm_bootstrap textarea.input-group-lg > .input-group-addon,\r\n+.wppm_bootstrap textarea.input-group-lg > .input-group-btn > .btn,\r\n+.wppm_bootstrap select[multiple].input-group-lg > .form-control,\r\n+.wppm_bootstrap select[multiple].input-group-lg > .input-group-addon,\r\n+.wppm_bootstrap select[multiple].input-group-lg > .input-group-btn > .btn {\r\n+  height: auto;\r\n+}\r\n+.wppm_bootstrap .input-group-sm > .form-control,\r\n+.wppm_bootstrap .input-group-sm > .input-group-addon,\r\n+.wppm_bootstrap .input-group-sm > .input-group-btn > .btn {\r\n+  height: 30px;\r\n+  padding: 5px 10px;\r\n+  font-size: 12px;\r\n+  line-height: 1.5;\r\n+  border-radius: 3px;\r\n+}\r\n+.wppm_bootstrap select.input-group-sm > .form-control,\r\n+.wppm_bootstrap select.input-group-sm > .input-group-addon,\r\n+.wppm_bootstrap select.input-group-sm > .input-group-btn > .btn {\r\n+  height: 30px;\r\n+  line-height: 30px;\r\n+}\r\n+.wppm_bootstrap textarea.input-group-sm > .form-control,\r\n+.wppm_bootstrap textarea.input-group-sm > .input-group-addon,\r\n+.wppm_bootstrap textarea.input-group-sm > .input-group-btn > .btn,\r\n+.wppm_bootstrap select[multiple].input-group-sm > .form-control,\r\n+.wppm_bootstrap select[multiple].input-group-sm > .input-group-addon,\r\n+.wppm_bootstrap select[multiple].input-group-sm > .input-group-btn > .btn {\r\n+  height: auto;\r\n+}\r\n+.wppm_bootstrap .input-group-addon,\r\n+.wppm_bootstrap .input-group-btn,\r\n+.wppm_bootstrap .input-group .form-control {\r\n+  display: table-cell;\r\n+}\r\n+.wppm_bootstrap .input-group-addon:not(:first-child):not(:last-child),\r\n+.wppm_bootstrap .input-group-btn:not(:first-child):not(:last-child),\r\n+.wppm_bootstrap .input-group .form-control:not(:first-child):not(:last-child) {\r\n+  border-radius: 0;\r\n+}\r\n+.wppm_bootstrap .input-group-addon,\r\n+.wppm_bootstrap .input-group-btn {\r\n+  width: 1%;\r\n+  white-space: nowrap;\r\n+  vertical-align: middle;\r\n+}\r\n+.wppm_bootstrap .input-group-addon {\r\n+  padding: 6px 12px;\r\n+  font-size: 14px;\r\n+  font-weight: normal;\r\n+  line-height: 1;\r\n+  color: #555;\r\n+  text-align: center;\r\n+  background-color: #eee;\r\n+  border: 1px solid #ccc;\r\n+  border-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .input-group-addon.input-sm {\r\n+  padding: 5px 10px;\r\n+  font-size: 12px;\r\n+  border-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .input-group-addon.input-lg {\r\n+  padding: 10px 16px;\r\n+  font-size: 18px;\r\n+  border-radius: 6px;\r\n+}\r\n+.wppm_bootstrap .input-group-addon input[type=\"radio\"],\r\n+.wppm_bootstrap .input-group-addon input[type=\"checkbox\"] {\r\n+  margin-top: 0;\r\n+}\r\n+.wppm_bootstrap .input-group .form-control:first-child,\r\n+.wppm_bootstrap .input-group-addon:first-child,\r\n+.wppm_bootstrap .input-group-btn:first-child > .btn,\r\n+.wppm_bootstrap .input-group-btn:first-child > .btn-group > .btn,\r\n+.wppm_bootstrap .input-group-btn:first-child > .dropdown-toggle,\r\n+.wppm_bootstrap .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\r\n+.wppm_bootstrap .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\r\n+  border-top-right-radius: 0;\r\n+  border-bottom-right-radius: 0;\r\n+}\r\n+.wppm_bootstrap .input-group-addon:first-child {\r\n+  border-right: 0;\r\n+}\r\n+.wppm_bootstrap .input-group .form-control:last-child,\r\n+.wppm_bootstrap .input-group-addon:last-child,\r\n+.wppm_bootstrap .input-group-btn:last-child > .btn,\r\n+.wppm_bootstrap .input-group-btn:last-child > .btn-group > .btn,\r\n+.wppm_bootstrap .input-group-btn:last-child > .dropdown-toggle,\r\n+.wppm_bootstrap .input-group-btn:first-child > .btn:not(:first-child),\r\n+.wppm_bootstrap .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\r\n+  border-top-left-radius: 0;\r\n+  border-bottom-left-radius: 0;\r\n+}\r\n+.wppm_bootstrap .input-group-addon:last-child {\r\n+  border-left: 0;\r\n+}\r\n+.wppm_bootstrap .input-group-btn {\r\n+  position: relative;\r\n+  font-size: 0;\r\n+  white-space: nowrap;\r\n+}\r\n+.wppm_bootstrap .input-group-btn > .btn {\r\n+  position: relative;\r\n+}\r\n+.wppm_bootstrap .input-group-btn > .btn + .btn {\r\n+  margin-left: -1px;\r\n+}\r\n+.wppm_bootstrap .input-group-btn > .btn:hover,\r\n+.wppm_bootstrap .input-group-btn > .btn:focus,\r\n+.wppm_bootstrap .input-group-btn > .btn:active {\r\n+  z-index: 2;\r\n+}\r\n+.wppm_bootstrap .input-group-btn:first-child > .btn,\r\n+.wppm_bootstrap .input-group-btn:first-child > .btn-group {\r\n+  margin-right: -1px;\r\n+}\r\n+.wppm_bootstrap .input-group-btn:last-child > .btn,\r\n+.wppm_bootstrap .input-group-btn:last-child > .btn-group {\r\n+  z-index: 2;\r\n+  margin-left: -1px;\r\n+}\r\n+.wppm_bootstrap .nav {\r\n+  padding-left: 0;\r\n+  margin-bottom: 0;\r\n+  list-style: none;\r\n+}\r\n+.wppm_bootstrap .nav > li {\r\n+  position: relative;\r\n+  display: block;\r\n+}\r\n+.wppm_bootstrap .nav > li > a {\r\n+  position: relative;\r\n+  display: block;\r\n+  padding: 10px 15px;\r\n+}\r\n+.wppm_bootstrap .nav > li > a:hover,\r\n+.wppm_bootstrap .nav > li > a:focus {\r\n+  text-decoration: none;\r\n+  background-color: #eee;\r\n+}\r\n+.wppm_bootstrap .nav > li.disabled > a {\r\n+  color: #777;\r\n+}\r\n+.wppm_bootstrap .nav > li.disabled > a:hover,\r\n+.wppm_bootstrap .nav > li.disabled > a:focus {\r\n+  color: #777;\r\n+  text-decoration: none;\r\n+  cursor: not-allowed;\r\n+  background-color: transparent;\r\n+}\r\n+.wppm_bootstrap .nav .open > a,\r\n+.wppm_bootstrap .nav .open > a:hover,\r\n+.wppm_bootstrap .nav .open > a:focus {\r\n+  background-color: #eee;\r\n+  border-color: #337ab7;\r\n+}\r\n+.wppm_bootstrap .nav .nav-divider {\r\n+  height: 1px;\r\n+  margin: 9px 0;\r\n+  overflow: hidden;\r\n+  background-color: #e5e5e5;\r\n+}\r\n+.wppm_bootstrap .nav > li > a > img {\r\n+  max-width: none;\r\n+}\r\n+.wppm_bootstrap .nav-tabs {\r\n+  border-bottom: 1px solid #ddd;\r\n+}\r\n+.wppm_bootstrap .nav-tabs > li {\r\n+  float: left;\r\n+  margin-bottom: -1px;\r\n+}\r\n+.wppm_bootstrap .nav-tabs > li > a {\r\n+  margin-right: 2px;\r\n+  line-height: 1.42857143;\r\n+  border: 1px solid transparent;\r\n+  border-radius: 4px 4px 0 0;\r\n+}\r\n+.wppm_bootstrap .nav-tabs > li > a:hover {\r\n+  border-color: #eee #eee #ddd;\r\n+}\r\n+.wppm_bootstrap .nav-tabs > li.active > a,\r\n+.wppm_bootstrap .nav-tabs > li.active > a:hover,\r\n+.wppm_bootstrap .nav-tabs > li.active > a:focus {\r\n+  color: #555;\r\n+  cursor: default;\r\n+  background-color: #fff;\r\n+  border: 1px solid #ddd;\r\n+  border-bottom-color: transparent;\r\n+}\r\n+.wppm_bootstrap .nav-tabs.nav-justified {\r\n+  width: 100%;\r\n+  border-bottom: 0;\r\n+}\r\n+.wppm_bootstrap .nav-tabs.nav-justified > li {\r\n+  float: none;\r\n+}\r\n+.wppm_bootstrap .nav-tabs.nav-justified > li > a {\r\n+  margin-bottom: 5px;\r\n+  text-align: center;\r\n+}\r\n+.wppm_bootstrap .nav-tabs.nav-justified > .dropdown .dropdown-menu {\r\n+  top: auto;\r\n+  left: auto;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .nav-tabs.nav-justified > li {\r\n+    display: table-cell;\r\n+    width: 1%;\r\n+  }\r\n+  .nav-tabs.nav-justified > li > a {\r\n+    margin-bottom: 0;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .nav-tabs.nav-justified > li > a {\r\n+  margin-right: 0;\r\n+  border-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .nav-tabs.nav-justified > .active > a,\r\n+.wppm_bootstrap .nav-tabs.nav-justified > .active > a:hover,\r\n+.wppm_bootstrap .nav-tabs.nav-justified > .active > a:focus {\r\n+  border: 1px solid #ddd;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .nav-tabs.nav-justified > li > a {\r\n+    border-bottom: 1px solid #ddd;\r\n+    border-radius: 4px 4px 0 0;\r\n+  }\r\n+  .nav-tabs.nav-justified > .active > a,\r\n+  .nav-tabs.nav-justified > .active > a:hover,\r\n+  .nav-tabs.nav-justified > .active > a:focus {\r\n+    border-bottom-color: #fff;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .nav-pills > li {\r\n+  float: left;\r\n+}\r\n+.wppm_bootstrap .nav-pills > li > a {\r\n+  border-radius: 15px;\r\n+  color:#9c9c9c;\r\n+}\r\n+.wppm_bootstrap .nav-pills > li + li {\r\n+  margin-left: 2px;\r\n+  border:1px solid #ddd;\r\n+  border-radius: 15px;\r\n+}\r\n+.wppm_bootstrap .nav-pills > li.active > a,\r\n+.wppm_bootstrap .nav-pills > li.active > a:hover,\r\n+.wppm_bootstrap .nav-pills > li.active > a:focus {\r\n+  color: #fff;\r\n+  background-color:#0052CC;;\r\n+  \u002F* background-color: #337ab7; *\u002F\r\n+  border-radius: 15px;\r\n+}\r\n+.wppm_bootstrap .nav-pills > li{\r\n+  border:1px solid #ddd;\r\n+  border-radius: 15px;\r\n+}\r\n+.wppm_bootstrap .nav-stacked > li {\r\n+  float: none;\r\n+}\r\n+.wppm_bootstrap .nav-stacked > li + li {\r\n+  margin-top: 2px;\r\n+  margin-left: 0;\r\n+}\r\n+.wppm_bootstrap .nav-justified {\r\n+  width: 100%;\r\n+}\r\n+.wppm_bootstrap .nav-justified > li {\r\n+  float: none;\r\n+}\r\n+.wppm_bootstrap .nav-justified > li > a {\r\n+  margin-bottom: 5px;\r\n+  text-align: center;\r\n+}\r\n+.wppm_bootstrap .nav-justified > .dropdown .dropdown-menu {\r\n+  top: auto;\r\n+  left: auto;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .nav-justified > li {\r\n+    display: table-cell;\r\n+    width: 1%;\r\n+  }\r\n+  .nav-justified > li > a {\r\n+    margin-bottom: 0;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .nav-tabs-justified {\r\n+  border-bottom: 0;\r\n+}\r\n+.wppm_bootstrap .nav-tabs-justified > li > a {\r\n+  margin-right: 0;\r\n+  border-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .nav-tabs-justified > .active > a,\r\n+.wppm_bootstrap .nav-tabs-justified > .active > a:hover,\r\n+.wppm_bootstrap .nav-tabs-justified > .active > a:focus {\r\n+  border: 1px solid #ddd;\r\n+  border-radius: 15px;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .nav-tabs-justified > li > a {\r\n+    border-bottom: 1px solid #ddd;\r\n+    border-radius: 4px 4px 0 0;\r\n+  }\r\n+  .nav-tabs-justified > .active > a,\r\n+  .nav-tabs-justified > .active > a:hover,\r\n+  .nav-tabs-justified > .active > a:focus {\r\n+    border-bottom-color: #fff;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .tab-content > .tab-pane {\r\n+  display: none;\r\n+}\r\n+.wppm_bootstrap .tab-content > .active {\r\n+  display: block;\r\n+}\r\n+.wppm_bootstrap .nav-tabs .dropdown-menu {\r\n+  margin-top: -1px;\r\n+  border-top-left-radius: 0;\r\n+  border-top-right-radius: 0;\r\n+}\r\n+.wppm_bootstrap .navbar {\r\n+  position: relative;\r\n+  min-height: 50px;\r\n+  margin-bottom: 20px;\r\n+  border: 1px solid transparent;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar {\r\n+    border-radius: 4px;\r\n+  }\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar-header {\r\n+    float: left;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .navbar-collapse {\r\n+  padding-right: 15px;\r\n+  padding-left: 15px;\r\n+  overflow-x: visible;\r\n+  -webkit-overflow-scrolling: touch;\r\n+  border-top: 1px solid transparent;\r\n+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\r\n+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\r\n+}\r\n+.wppm_bootstrap .navbar-collapse.in {\r\n+  overflow-y: auto;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar-collapse {\r\n+    width: auto;\r\n+    border-top: 0;\r\n+    -webkit-box-shadow: none;\r\n+            box-shadow: none;\r\n+  }\r\n+  .navbar-collapse.collapse {\r\n+    display: block !important;\r\n+    height: auto !important;\r\n+    padding-bottom: 0;\r\n+    overflow: visible !important;\r\n+  }\r\n+  .navbar-collapse.in {\r\n+    overflow-y: visible;\r\n+  }\r\n+  .navbar-fixed-top .navbar-collapse,\r\n+  .navbar-static-top .navbar-collapse,\r\n+  .navbar-fixed-bottom .navbar-collapse {\r\n+    padding-right: 0;\r\n+    padding-left: 0;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .navbar-fixed-top .navbar-collapse,\r\n+.wppm_bootstrap .navbar-fixed-bottom .navbar-collapse {\r\n+  max-height: 340px;\r\n+}\r\n+@media (max-device-width: 480px) and (orientation: landscape) {\r\n+  .navbar-fixed-top .navbar-collapse,\r\n+  .navbar-fixed-bottom .navbar-collapse {\r\n+    max-height: 200px;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .container > .navbar-header,\r\n+.wppm_bootstrap .container-fluid > .navbar-header,\r\n+.wppm_bootstrap .container > .navbar-collapse,\r\n+.wppm_bootstrap .container-fluid > .navbar-collapse {\r\n+  margin-right: -15px;\r\n+  margin-left: -15px;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .container > .navbar-header,\r\n+  .container-fluid > .navbar-header,\r\n+  .container > .navbar-collapse,\r\n+  .container-fluid > .navbar-collapse {\r\n+    margin-right: 0;\r\n+    margin-left: 0;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .navbar-static-top {\r\n+  z-index: 1000;\r\n+  border-width: 0 0 1px;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar-static-top {\r\n+    border-radius: 0;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .navbar-fixed-top,\r\n+.wppm_bootstrap .navbar-fixed-bottom {\r\n+  position: fixed;\r\n+  right: 0;\r\n+  left: 0;\r\n+  z-index: 1030;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar-fixed-top,\r\n+  .navbar-fixed-bottom {\r\n+    border-radius: 0;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .navbar-fixed-top {\r\n+  top: 0;\r\n+  border-width: 0 0 1px;\r\n+}\r\n+.wppm_bootstrap .navbar-fixed-bottom {\r\n+  bottom: 0;\r\n+  margin-bottom: 0;\r\n+  border-width: 1px 0 0;\r\n+}\r\n+.wppm_bootstrap .navbar-brand {\r\n+  float: left;\r\n+  height: 50px;\r\n+  padding: 15px 15px;\r\n+  font-size: 18px;\r\n+  line-height: 20px;\r\n+}\r\n+.wppm_bootstrap .navbar-brand:hover,\r\n+.wppm_bootstrap .navbar-brand:focus {\r\n+  text-decoration: none;\r\n+}\r\n+.wppm_bootstrap .navbar-brand > img {\r\n+  display: block;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar > .container .navbar-brand,\r\n+  .navbar > .container-fluid .navbar-brand {\r\n+    margin-left: -15px;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .navbar-toggle {\r\n+  position: relative;\r\n+  float: right;\r\n+  padding: 9px 10px;\r\n+  margin-top: 8px;\r\n+  margin-right: 15px;\r\n+  margin-bottom: 8px;\r\n+  background-color: transparent;\r\n+  background-image: none;\r\n+  border: 1px solid transparent;\r\n+  border-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .navbar-toggle:focus {\r\n+  outline: 0;\r\n+}\r\n+.wppm_bootstrap .navbar-toggle .icon-bar {\r\n+  display: block;\r\n+  width: 22px;\r\n+  height: 2px;\r\n+  border-radius: 1px;\r\n+}\r\n+.wppm_bootstrap .navbar-toggle .icon-bar + .icon-bar {\r\n+  margin-top: 4px;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar-toggle {\r\n+    display: none;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .navbar-nav {\r\n+  margin: 7.5px -15px;\r\n+}\r\n+.wppm_bootstrap .navbar-nav > li > a {\r\n+  padding-top: 10px;\r\n+  padding-bottom: 10px;\r\n+  line-height: 20px;\r\n+}\r\n+@media (max-width: 767px) {\r\n+  .navbar-nav .open .dropdown-menu {\r\n+    position: static;\r\n+    float: none;\r\n+    width: auto;\r\n+    margin-top: 0;\r\n+    background-color: transparent;\r\n+    border: 0;\r\n+    -webkit-box-shadow: none;\r\n+            box-shadow: none;\r\n+  }\r\n+  .wppm_bootstrap .navbar-nav .open .dropdown-menu > li > a,\r\n+  .wppm_bootstrap .navbar-nav .open .dropdown-menu .dropdown-header {\r\n+    padding: 5px 15px 5px 25px;\r\n+  }\r\n+  .wppm_bootstrap .navbar-nav .open .dropdown-menu > li > a {\r\n+    line-height: 20px;\r\n+  }\r\n+  .wppm_bootstrap .navbar-nav .open .dropdown-menu > li > a:hover,\r\n+  .wppm_bootstrap .navbar-nav .open .dropdown-menu > li > a:focus {\r\n+    background-image: none;\r\n+  }\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar-nav {\r\n+    float: left;\r\n+    margin: 0;\r\n+  }\r\n+  .navbar-nav > li {\r\n+    float: left;\r\n+  }\r\n+  .navbar-nav > li > a {\r\n+    padding-top: 15px;\r\n+    padding-bottom: 15px;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .navbar-form {\r\n+  padding: 10px 15px;\r\n+  margin-top: 8px;\r\n+  margin-right: -15px;\r\n+  margin-bottom: 8px;\r\n+  margin-left: -15px;\r\n+  border-top: 1px solid transparent;\r\n+  border-bottom: 1px solid transparent;\r\n+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\r\n+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar-form .form-group {\r\n+    display: inline-block;\r\n+    margin-bottom: 0;\r\n+    vertical-align: middle;\r\n+  }\r\n+  .navbar-form .form-control {\r\n+    display: inline-block;\r\n+    width: auto;\r\n+    vertical-align: middle;\r\n+  }\r\n+  .navbar-form .form-control-static {\r\n+    display: inline-block;\r\n+  }\r\n+  .navbar-form .input-group {\r\n+    display: inline-table;\r\n+    vertical-align: middle;\r\n+  }\r\n+  .navbar-form .input-group .input-group-addon,\r\n+  .navbar-form .input-group .input-group-btn,\r\n+  .navbar-form .input-group .form-control {\r\n+    width: auto;\r\n+  }\r\n+  .navbar-form .input-group > .form-control {\r\n+    width: 100%;\r\n+  }\r\n+  .navbar-form .control-label {\r\n+    margin-bottom: 0;\r\n+    vertical-align: middle;\r\n+  }\r\n+  .navbar-form .radio,\r\n+  .navbar-form .checkbox {\r\n+    display: inline-block;\r\n+    margin-top: 0;\r\n+    margin-bottom: 0;\r\n+    vertical-align: middle;\r\n+  }\r\n+  .navbar-form .radio label,\r\n+  .navbar-form .checkbox label {\r\n+    padding-left: 0;\r\n+  }\r\n+  .navbar-form .radio input[type=\"radio\"],\r\n+  .navbar-form .checkbox input[type=\"checkbox\"] {\r\n+    position: relative;\r\n+    margin-left: 0;\r\n+  }\r\n+  .navbar-form .has-feedback .form-control-feedback {\r\n+    top: 0;\r\n+  }\r\n+}\r\n+@media (max-width: 767px) {\r\n+  .navbar-form .form-group {\r\n+    margin-bottom: 5px;\r\n+  }\r\n+  .navbar-form .form-group:last-child {\r\n+    margin-bottom: 0;\r\n+  }\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar-form {\r\n+    width: auto;\r\n+    padding-top: 0;\r\n+    padding-bottom: 0;\r\n+    margin-right: 0;\r\n+    margin-left: 0;\r\n+    border: 0;\r\n+    -webkit-box-shadow: none;\r\n+            box-shadow: none;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .navbar-nav > li > .dropdown-menu {\r\n+  margin-top: 0;\r\n+  border-top-left-radius: 0;\r\n+  border-top-right-radius: 0;\r\n+}\r\n+.wppm_bootstrap .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\r\n+  margin-bottom: 0;\r\n+  border-top-left-radius: 4px;\r\n+  border-top-right-radius: 4px;\r\n+  border-bottom-right-radius: 0;\r\n+  border-bottom-left-radius: 0;\r\n+}\r\n+.wppm_bootstrap .navbar-btn {\r\n+  margin-top: 8px;\r\n+  margin-bottom: 8px;\r\n+}\r\n+.wppm_bootstrap .navbar-btn.btn-sm {\r\n+  margin-top: 10px;\r\n+  margin-bottom: 10px;\r\n+}\r\n+.wppm_bootstrap .navbar-btn.btn-xs {\r\n+  margin-top: 14px;\r\n+  margin-bottom: 14px;\r\n+}\r\n+.wppm_bootstrap .navbar-text {\r\n+  margin-top: 15px;\r\n+  margin-bottom: 15px;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar-text {\r\n+    float: left;\r\n+    margin-right: 15px;\r\n+    margin-left: 15px;\r\n+  }\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .navbar-left {\r\n+    float: left !important;\r\n+  }\r\n+  .navbar-right {\r\n+    float: right !important;\r\n+    margin-right: -15px;\r\n+  }\r\n+  .navbar-right ~ .navbar-right {\r\n+    margin-right: 0;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .navbar-default {\r\n+  background-color: #f8f8f8;\r\n+  border-color: #e7e7e7;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-brand {\r\n+  color: #777;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-brand:hover,\r\n+.wppm_bootstrap .navbar-default .navbar-brand:focus {\r\n+  color: #5e5e5e;\r\n+  background-color: transparent;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-text {\r\n+  color: #777;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-nav > li > a {\r\n+  color: #777;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-nav > li > a:hover,\r\n+.wppm_bootstrap .navbar-default .navbar-nav > li > a:focus {\r\n+  color: #333;\r\n+  background-color: transparent;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-nav > .active > a,\r\n+.wppm_bootstrap .navbar-default .navbar-nav > .active > a:hover,\r\n+.wppm_bootstrap .navbar-default .navbar-nav > .active > a:focus {\r\n+  color: #555;\r\n+  background-color: #e7e7e7;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-nav > .disabled > a,\r\n+.wppm_bootstrap .navbar-default .navbar-nav > .disabled > a:hover,\r\n+.wppm_bootstrap .navbar-default .navbar-nav > .disabled > a:focus {\r\n+  color: #ccc;\r\n+  background-color: transparent;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-toggle {\r\n+  border-color: #ddd;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-toggle:hover,\r\n+.wppm_bootstrap .navbar-default .navbar-toggle:focus {\r\n+  background-color: #ddd;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-toggle .icon-bar {\r\n+  background-color: #888;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-collapse,\r\n+.wppm_bootstrap .navbar-default .navbar-form {\r\n+  border-color: #e7e7e7;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-nav > .open > a,\r\n+.wppm_bootstrap .navbar-default .navbar-nav > .open > a:hover,\r\n+.wppm_bootstrap .navbar-default .navbar-nav > .open > a:focus {\r\n+  color: #555;\r\n+  background-color: #e7e7e7;\r\n+}\r\n+@media (max-width: 767px) {\r\n+  .navbar-default .navbar-nav .open .dropdown-menu > li > a {\r\n+    color: #777;\r\n+  }\r\n+  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\r\n+  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\r\n+    color: #333;\r\n+    background-color: transparent;\r\n+  }\r\n+  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\r\n+  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\r\n+  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\r\n+    color: #555;\r\n+    background-color: #e7e7e7;\r\n+  }\r\n+  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\r\n+  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\r\n+  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\r\n+    color: #ccc;\r\n+    background-color: transparent;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-link {\r\n+  color: #777;\r\n+}\r\n+.wppm_bootstrap .navbar-default .navbar-link:hover {\r\n+  color: #333;\r\n+}\r\n+.wppm_bootstrap .navbar-default .btn-link {\r\n+  color: #777;\r\n+}\r\n+.wppm_bootstrap .navbar-default .btn-link:hover,\r\n+.wppm_bootstrap .navbar-default .btn-link:focus {\r\n+  color: #333;\r\n+}\r\n+.wppm_bootstrap .navbar-default .btn-link[disabled]:hover,\r\n+.wppm_bootstrap fieldset[disabled] .navbar-default .btn-link:hover,\r\n+.wppm_bootstrap .navbar-default .btn-link[disabled]:focus,\r\n+.wppm_bootstrap fieldset[disabled] .navbar-default .btn-link:focus {\r\n+  color: #ccc;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse {\r\n+  background-color: #222;\r\n+  border-color: #080808;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-brand {\r\n+  color: #9d9d9d;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-brand:hover,\r\n+.wppm_bootstrap .navbar-inverse .navbar-brand:focus {\r\n+  color: #fff;\r\n+  background-color: transparent;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-text {\r\n+  color: #9d9d9d;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-nav > li > a {\r\n+  color: #9d9d9d;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-nav > li > a:hover,\r\n+.wppm_bootstrap .navbar-inverse .navbar-nav > li > a:focus {\r\n+  color: #fff;\r\n+  background-color: transparent;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-nav > .active > a,\r\n+.wppm_bootstrap .navbar-inverse .navbar-nav > .active > a:hover,\r\n+.wppm_bootstrap .navbar-inverse .navbar-nav > .active > a:focus {\r\n+  color: #fff;\r\n+  background-color: #080808;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-nav > .disabled > a,\r\n+.wppm_bootstrap .navbar-inverse .navbar-nav > .disabled > a:hover,\r\n+.wppm_bootstrap .navbar-inverse .navbar-nav > .disabled > a:focus {\r\n+  color: #444;\r\n+  background-color: transparent;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-toggle {\r\n+  border-color: #333;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-toggle:hover,\r\n+.wppm_bootstrap .navbar-inverse .navbar-toggle:focus {\r\n+  background-color: #333;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-toggle .icon-bar {\r\n+  background-color: #fff;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-collapse,\r\n+.wppm_bootstrap .navbar-inverse .navbar-form {\r\n+  border-color: #101010;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-nav > .open > a,\r\n+.wppm_bootstrap .navbar-inverse .navbar-nav > .open > a:hover,\r\n+.wppm_bootstrap .navbar-inverse .navbar-nav > .open > a:focus {\r\n+  color: #fff;\r\n+  background-color: #080808;\r\n+} \r\n+@media (max-width: 767px) {\r\n+  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\r\n+    border-color: #080808;\r\n+  }\r\n+  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\r\n+    background-color: #080808;\r\n+  }\r\n+  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\r\n+    color: #9d9d9d;\r\n+  }\r\n+  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\r\n+  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\r\n+    color: #fff;\r\n+    background-color: transparent;\r\n+  }\r\n+  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\r\n+  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\r\n+  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\r\n+    color: #fff;\r\n+    background-color: #080808;\r\n+  }\r\n+  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\r\n+  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\r\n+  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\r\n+    color: #444;\r\n+    background-color: transparent;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-link {\r\n+  color: #9d9d9d;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .navbar-link:hover {\r\n+  color: #fff;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .btn-link {\r\n+  color: #9d9d9d;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .btn-link:hover,\r\n+.wppm_bootstrap .navbar-inverse .btn-link:focus {\r\n+  color: #fff;\r\n+}\r\n+.wppm_bootstrap .navbar-inverse .btn-link[disabled]:hover,\r\n+.wppm_bootstrap fieldset[disabled] .navbar-inverse .btn-link:hover,\r\n+.wppm_bootstrap .navbar-inverse .btn-link[disabled]:focus,\r\n+.wppm_bootstrap fieldset[disabled] .navbar-inverse .btn-link:focus {\r\n+  color: #444;\r\n+}\r\n+.wppm_bootstrap .breadcrumb {\r\n+  padding: 8px 15px;\r\n+  margin-bottom: 20px;\r\n+  list-style: none;\r\n+  background-color: #f5f5f5;\r\n+  border-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .breadcrumb > li {\r\n+  display: inline-block;\r\n+}\r\n+.wppm_bootstrap .breadcrumb > li + li:before {\r\n+  padding: 0 5px;\r\n+  color: #ccc;\r\n+  content: \"\u002F\\00a0\";\r\n+}\r\n+.wppm_bootstrap .breadcrumb > .active {\r\n+  color: #777;\r\n+}\r\n+.wppm_bootstrap .pagination {\r\n+  display: inline-block;\r\n+  padding-left: 0;\r\n+  margin: 20px 0;\r\n+  border-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .pagination > li {\r\n+  display: inline;\r\n+}\r\n+.wppm_bootstrap .pagination > li > a,\r\n+.wppm_bootstrap .pagination > li > span {\r\n+  position: relative;\r\n+  float: left;\r\n+  padding: 6px 12px;\r\n+  margin-left: -1px;\r\n+  line-height: 1.42857143;\r\n+  color: #337ab7;\r\n+  text-decoration: none;\r\n+  background-color: #fff;\r\n+  border: 1px solid #ddd;\r\n+}\r\n+.wppm_bootstrap .pagination > li:first-child > a,\r\n+.wppm_bootstrap .pagination > li:first-child > span {\r\n+  margin-left: 0;\r\n+  border-top-left-radius: 4px;\r\n+  border-bottom-left-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .pagination > li:last-child > a,\r\n+.wppm_bootstrap .pagination > li:last-child > span {\r\n+  border-top-right-radius: 4px;\r\n+  border-bottom-right-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .pagination > li > a:hover,\r\n+.wppm_bootstrap .pagination > li > span:hover,\r\n+.wppm_bootstrap .pagination > li > a:focus,\r\n+.wppm_bootstrap .pagination > li > span:focus {\r\n+  z-index: 2;\r\n+  color: #23527c;\r\n+  background-color: #eee;\r\n+  border-color: #ddd;\r\n+}\r\n+.wppm_bootstrap .pagination > .active > a,\r\n+.wppm_bootstrap .pagination > .active > span,\r\n+.wppm_bootstrap .pagination > .active > a:hover,\r\n+.wppm_bootstrap .pagination > .active > span:hover,\r\n+.wppm_bootstrap .pagination > .active > a:focus,\r\n+.wppm_bootstrap .pagination > .active > span:focus {\r\n+  z-index: 3;\r\n+  color: #fff;\r\n+  cursor: default;\r\n+  background-color: #337ab7;\r\n+  border-color: #337ab7;\r\n+}\r\n+.wppm_bootstrap .pagination > .disabled > span,\r\n+.wppm_bootstrap .pagination > .disabled > span:hover,\r\n+.wppm_bootstrap .pagination > .disabled > span:focus,\r\n+.wppm_bootstrap .pagination > .disabled > a,\r\n+.wppm_bootstrap .pagination > .disabled > a:hover,\r\n+.wppm_bootstrap .pagination > .disabled > a:focus {\r\n+  color: #777;\r\n+  cursor: not-allowed;\r\n+  background-color: #fff;\r\n+  border-color: #ddd;\r\n+}\r\n+.wppm_bootstrap .pagination-lg > li > a,\r\n+.wppm_bootstrap .pagination-lg > li > span {\r\n+  padding: 10px 16px;\r\n+  font-size: 18px;\r\n+  line-height: 1.3333333;\r\n+}\r\n+.wppm_bootstrap .pagination-lg > li:first-child > a,\r\n+.wppm_bootstrap .pagination-lg > li:first-child > span {\r\n+  border-top-left-radius: 6px;\r\n+  border-bottom-left-radius: 6px;\r\n+}\r\n+.wppm_bootstrap .pagination-lg > li:last-child > a,\r\n+.wppm_bootstrap .pagination-lg > li:last-child > span {\r\n+  border-top-right-radius: 6px;\r\n+  border-bottom-right-radius: 6px;\r\n+}\r\n+.wppm_bootstrap .pagination-sm > li > a,\r\n+.wppm_bootstrap .pagination-sm > li > span {\r\n+  padding: 5px 10px;\r\n+  font-size: 12px;\r\n+  line-height: 1.5;\r\n+}\r\n+.wppm_bootstrap .pagination-sm > li:first-child > a,\r\n+.wppm_bootstrap .pagination-sm > li:first-child > span {\r\n+  border-top-left-radius: 3px;\r\n+  border-bottom-left-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .pagination-sm > li:last-child > a,\r\n+.wppm_bootstrap .pagination-sm > li:last-child > span {\r\n+  border-top-right-radius: 3px;\r\n+  border-bottom-right-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .pager {\r\n+  padding-left: 0;\r\n+  margin: 20px 0;\r\n+  text-align: center;\r\n+  list-style: none;\r\n+}\r\n+.wppm_bootstrap .pager li {\r\n+  display: inline;\r\n+}\r\n+.wppm_bootstrap .pager li > a,\r\n+.wppm_bootstrap .pager li > span {\r\n+  display: inline-block;\r\n+  padding: 5px 14px;\r\n+  background-color: #fff;\r\n+  border: 1px solid #ddd;\r\n+  border-radius: 15px;\r\n+}\r\n+.wppm_bootstrap .pager li > a:hover,\r\n+.wppm_bootstrap .pager li > a:focus {\r\n+  text-decoration: none;\r\n+  background-color: #eee;\r\n+}\r\n+.wppm_bootstrap .pager .next > a,\r\n+.wppm_bootstrap .pager .next > span {\r\n+  float: right;\r\n+}\r\n+.wppm_bootstrap .pager .previous > a,\r\n+.wppm_bootstrap .pager .previous > span {\r\n+  float: left;\r\n+}\r\n+.wppm_bootstrap .pager .disabled > a,\r\n+.wppm_bootstrap .pager .disabled > a:hover,\r\n+.wppm_bootstrap .pager .disabled > a:focus,\r\n+.wppm_bootstrap .pager .disabled > span {\r\n+  color: #777;\r\n+  cursor: not-allowed;\r\n+  background-color: #fff;\r\n+}\r\n+.wppm_bootstrap .label {\r\n+  display: inline;\r\n+  padding: .2em .6em .3em;\r\n+  font-size: 75%;\r\n+  font-weight: bold;\r\n+  line-height: 1;\r\n+  color: #fff;\r\n+  text-align: center;\r\n+  white-space: nowrap;\r\n+  vertical-align: baseline;\r\n+  border-radius: .25em;\r\n+}\r\n+.wppm_bootstrap a.label:hover,\r\n+.wppm_bootstrap a.label:focus {\r\n+  color: #fff;\r\n+  text-decoration: none;\r\n+  cursor: pointer;\r\n+}\r\n+.wppm_bootstrap .label:empty {\r\n+  display: none;\r\n+}\r\n+.wppm_bootstrap .btn .label {\r\n+  position: relative;\r\n+  top: -1px;\r\n+}\r\n+.wppm_bootstrap .label-default {\r\n+  background-color: #777;\r\n+}\r\n+.wppm_bootstrap .label-default[href]:hover,\r\n+.wppm_bootstrap .label-default[href]:focus {\r\n+  background-color: #5e5e5e;\r\n+}\r\n+.wppm_bootstrap .label-primary {\r\n+  background-color: #337ab7;\r\n+}\r\n+.wppm_bootstrap .label-primary[href]:hover,\r\n+.wppm_bootstrap .label-primary[href]:focus {\r\n+  background-color: #286090;\r\n+}\r\n+.wppm_bootstrap .label-success {\r\n+  background-color: #5cb85c;\r\n+}\r\n+.wppm_bootstrap .label-success[href]:hover,\r\n+.wppm_bootstrap .label-success[href]:focus {\r\n+  background-color: #449d44;\r\n+}\r\n+.wppm_bootstrap .label-info {\r\n+  background-color: #5bc0de;\r\n+}\r\n+.wppm_bootstrap .label-info[href]:hover,\r\n+.wppm_bootstrap .label-info[href]:focus {\r\n+  background-color: #31b0d5;\r\n+}\r\n+.wppm_bootstrap .label-warning {\r\n+  background-color: #f0ad4e;\r\n+}\r\n+.wppm_bootstrap .label-warning[href]:hover,\r\n+.wppm_bootstrap .label-warning[href]:focus {\r\n+  background-color: #ec971f;\r\n+}\r\n+.wppm_bootstrap .label-danger {\r\n+  background-color: #d9534f;\r\n+}\r\n+.wppm_bootstrap .label-danger[href]:hover,\r\n+.wppm_bootstrap .label-danger[href]:focus {\r\n+  background-color: #c9302c;\r\n+}\r\n+.wppm_bootstrap .badge {\r\n+  display: inline-block;\r\n+  min-width: 10px;\r\n+  padding: 3px 7px;\r\n+  font-size: 12px;\r\n+  font-weight: bold;\r\n+  line-height: 1;\r\n+  color: #fff;\r\n+  text-align: center;\r\n+  white-space: nowrap;\r\n+  vertical-align: middle;\r\n+  background-color: #777;\r\n+  border-radius: 10px;\r\n+}\r\n+.wppm_bootstrap .badge:empty {\r\n+  display: none;\r\n+}\r\n+.wppm_bootstrap .btn .badge {\r\n+  position: relative;\r\n+  top: -1px;\r\n+}\r\n+.wppm_bootstrap .btn-xs .badge,\r\n+.wppm_bootstrap .btn-group-xs > .btn .badge {\r\n+  top: 0;\r\n+  padding: 1px 5px;\r\n+}\r\n+.wppm_bootstrap a.badge:hover,\r\n+.wppm_bootstrap a.badge:focus {\r\n+  color: #fff;\r\n+  text-decoration: none;\r\n+  cursor: pointer;\r\n+}\r\n+.wppm_bootstrap .list-group-item.active > .badge,\r\n+.wppm_bootstrap .nav-pills > .active > a > .badge {\r\n+  color: #337ab7;\r\n+  background-color: #fff;\r\n+}\r\n+.wppm_bootstrap .list-group-item > .badge {\r\n+  float: right;\r\n+}\r\n+.wppm_bootstrap .list-group-item > .badge + .badge {\r\n+  margin-right: 5px;\r\n+}\r\n+.wppm_bootstrap .nav-pills > li > a > .badge {\r\n+  margin-left: 3px;\r\n+}\r\n+.wppm_bootstrap .jumbotron {\r\n+  padding-top: 30px;\r\n+  padding-bottom: 30px;\r\n+  margin-bottom: 30px;\r\n+  color: inherit;\r\n+  background-color: #eee;\r\n+}\r\n+.wppm_bootstrap .jumbotron h1,\r\n+.wppm_bootstrap .jumbotron .h1 {\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap .jumbotron p {\r\n+  margin-bottom: 15px;\r\n+  font-size: 21px;\r\n+  font-weight: 200;\r\n+}\r\n+.wppm_bootstrap .jumbotron > hr {\r\n+  border-top-color: #d5d5d5;\r\n+}\r\n+.wppm_bootstrap .container .jumbotron,\r\n+.wppm_bootstrap .container-fluid .jumbotron {\r\n+  padding-right: 15px;\r\n+  padding-left: 15px;\r\n+  border-radius: 6px;\r\n+}\r\n+.wppm_bootstrap .jumbotron .container {\r\n+  max-width: 100%;\r\n+}\r\n+@media screen and (min-width: 768px) {\r\n+  .jumbotron {\r\n+    padding-top: 48px;\r\n+    padding-bottom: 48px;\r\n+  }\r\n+  .container .jumbotron,\r\n+  .container-fluid .jumbotron {\r\n+    padding-right: 60px;\r\n+    padding-left: 60px;\r\n+  }\r\n+  .jumbotron h1,\r\n+  .jumbotron .h1 {\r\n+    font-size: 63px;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .thumbnail {\r\n+  display: block;\r\n+  padding: 4px;\r\n+  margin-bottom: 20px;\r\n+  line-height: 1.42857143;\r\n+  background-color: #fff;\r\n+  border: 1px solid #ddd;\r\n+  border-radius: 4px;\r\n+  -webkit-transition: border .2s ease-in-out;\r\n+       -o-transition: border .2s ease-in-out;\r\n+          transition: border .2s ease-in-out;\r\n+}\r\n+.wppm_bootstrap .thumbnail > img,\r\n+.wppm_bootstrap .thumbnail a > img {\r\n+  margin-right: auto;\r\n+  margin-left: auto;\r\n+}\r\n+.wppm_bootstrap a.thumbnail:hover,\r\n+.wppm_bootstrap a.thumbnail:focus,\r\n+.wppm_bootstrap a.thumbnail.active {\r\n+  border-color: #337ab7;\r\n+}\r\n+.wppm_bootstrap .thumbnail .caption {\r\n+  padding: 9px;\r\n+  color: #333;\r\n+}\r\n+.wppm_bootstrap .alert {\r\n+  padding: 15px;\r\n+  margin-bottom: 20px;\r\n+  border: 1px solid transparent;\r\n+  border-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .alert h4 {\r\n+  margin-top: 0;\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap .alert .alert-link {\r\n+  font-weight: bold;\r\n+}\r\n+.wppm_bootstrap .alert > p,\r\n+.wppm_bootstrap .alert > ul {\r\n+  margin-bottom: 0;\r\n+}\r\n+.wppm_bootstrap .alert > p + p {\r\n+  margin-top: 5px;\r\n+}\r\n+.wppm_bootstrap .alert-dismissable,\r\n+.wppm_bootstrap .alert-dismissible {\r\n+  padding-right: 35px;\r\n+}\r\n+.wppm_bootstrap .alert-dismissable .close,\r\n+.wppm_bootstrap .alert-dismissible .close {\r\n+  position: relative;\r\n+  top: -2px;\r\n+  right: -21px;\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap .alert-success {\r\n+  color: #3c763d;\r\n+  background-color: #dff0d8;\r\n+  border-color: #d6e9c6;\r\n+}\r\n+.wppm_bootstrap .alert-success hr {\r\n+  border-top-color: #c9e2b3;\r\n+}\r\n+.wppm_bootstrap .alert-success .alert-link {\r\n+  color: #2b542c;\r\n+}\r\n+.wppm_bootstrap .alert-info {\r\n+  color: #31708f;\r\n+  background-color: #d9edf7;\r\n+  border-color: #bce8f1;\r\n+}\r\n+.wppm_bootstrap .alert-info hr {\r\n+  border-top-color: #a6e1ec;\r\n+}\r\n+.wppm_bootstrap .alert-info .alert-link {\r\n+  color: #245269;\r\n+}\r\n+.wppm_bootstrap .alert-warning {\r\n+  color: #8a6d3b;\r\n+  background-color: #fcf8e3;\r\n+  border-color: #faebcc;\r\n+}\r\n+.wppm_bootstrap .alert-warning hr {\r\n+  border-top-color: #f7e1b5;\r\n+}\r\n+.wppm_bootstrap .alert-warning .alert-link {\r\n+  color: #66512c;\r\n+}\r\n+.wppm_bootstrap .alert-danger {\r\n+  color: #a94442;\r\n+  background-color: #f2dede;\r\n+  border-color: #ebccd1;\r\n+}\r\n+.wppm_bootstrap .alert-danger hr {\r\n+  border-top-color: #e4b9c0;\r\n+}\r\n+.wppm_bootstrap .alert-danger .alert-link {\r\n+  color: #843534;\r\n+}\r\n+@-webkit-keyframes progress-bar-stripes {\r\n+  from {\r\n+    background-position: 40px 0;\r\n+  }\r\n+  to {\r\n+    background-position: 0 0;\r\n+  }\r\n+}\r\n+@-o-keyframes progress-bar-stripes {\r\n+  from {\r\n+    background-position: 40px 0;\r\n+  }\r\n+  to {\r\n+    background-position: 0 0;\r\n+  }\r\n+}\r\n+@keyframes progress-bar-stripes {\r\n+  from {\r\n+    background-position: 40px 0;\r\n+  }\r\n+  to {\r\n+    background-position: 0 0;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .progress {\r\n+  height: 20px;\r\n+  margin-bottom: 20px;\r\n+  overflow: hidden;\r\n+  background-color: #f5f5f5;\r\n+  border-radius: 4px;\r\n+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\r\n+          box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\r\n+}\r\n+.wppm_bootstrap .progress-bar {\r\n+  float: left;\r\n+  width: 0;\r\n+  height: 100%;\r\n+  font-size: 12px;\r\n+  line-height: 20px;\r\n+  color: #fff;\r\n+  text-align: center;\r\n+  background-color: #337ab7;\r\n+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\r\n+          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\r\n+  -webkit-transition: width .6s ease;\r\n+       -o-transition: width .6s ease;\r\n+          transition: width .6s ease;\r\n+}\r\n+.wppm_bootstrap .progress-striped .progress-bar,\r\n+.wppm_bootstrap .progress-bar-striped {\r\n+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+  -webkit-background-size: 40px 40px;\r\n+          background-size: 40px 40px;\r\n+}\r\n+.wppm_bootstrap .progress.active .progress-bar,\r\n+.wppm_bootstrap .progress-bar.active {\r\n+  -webkit-animation: progress-bar-stripes 2s linear infinite;\r\n+       -o-animation: progress-bar-stripes 2s linear infinite;\r\n+          animation: progress-bar-stripes 2s linear infinite;\r\n+}\r\n+.wppm_bootstrap .progress-bar-success {\r\n+  background-color: #5cb85c;\r\n+}\r\n+.wppm_bootstrap .progress-striped .progress-bar-success {\r\n+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+}\r\n+.wppm_bootstrap .progress-bar-info {\r\n+  background-color: #5bc0de;\r\n+}\r\n+.wppm_bootstrap .progress-striped .progress-bar-info {\r\n+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+}\r\n+.wppm_bootstrap .progress-bar-warning {\r\n+  background-color: #f0ad4e;\r\n+}\r\n+.wppm_bootstrap .progress-striped .progress-bar-warning {\r\n+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+}\r\n+.wppm_bootstrap .progress-bar-danger {\r\n+  background-color: #d9534f;\r\n+}\r\n+.wppm_bootstrap .progress-striped .progress-bar-danger {\r\n+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\r\n+}\r\n+.wppm_bootstrap .media {\r\n+  margin-top: 15px;\r\n+}\r\n+.wppm_bootstrap .media:first-child {\r\n+  margin-top: 0;\r\n+}\r\n+.wppm_bootstrap .media,\r\n+.wppm_bootstrap .media-body {\r\n+  overflow: hidden;\r\n+  zoom: 1;\r\n+}\r\n+.wppm_bootstrap .media-body {\r\n+  width: 10000px;\r\n+}\r\n+.wppm_bootstrap .media-object {\r\n+  display: block;\r\n+}\r\n+.wppm_bootstrap .media-object.img-thumbnail {\r\n+  max-width: none;\r\n+}\r\n+.wppm_bootstrap .media-right,\r\n+.wppm_bootstrap .media > .pull-right {\r\n+  padding-left: 10px;\r\n+}\r\n+.wppm_bootstrap .media-left,\r\n+.wppm_bootstrap .media > .pull-left {\r\n+  padding-right: 10px;\r\n+}\r\n+.wppm_bootstrap .media-left,\r\n+.wppm_bootstrap .media-right,\r\n+.wppm_bootstrap .media-body {\r\n+  display: table-cell;\r\n+  vertical-align: top;\r\n+}\r\n+.wppm_bootstrap .media-middle {\r\n+  vertical-align: middle;\r\n+}\r\n+.wppm_bootstrap .media-bottom {\r\n+  vertical-align: bottom;\r\n+}\r\n+.wppm_bootstrap .media-heading {\r\n+  margin-top: 0;\r\n+  margin-bottom: 5px;\r\n+}\r\n+.wppm_bootstrap .media-list {\r\n+  padding-left: 0;\r\n+  list-style: none;\r\n+}\r\n+.wppm_bootstrap .list-group {\r\n+  padding-left: 0;\r\n+  margin-bottom: 20px;\r\n+}\r\n+.wppm_bootstrap .list-group-item {\r\n+  position: relative;\r\n+  display: block;\r\n+  padding: 10px 15px;\r\n+  margin-bottom: -1px;\r\n+  background-color: #fff;\r\n+  border: 1px solid #ddd;\r\n+}\r\n+.wppm_bootstrap .list-group-item:first-child {\r\n+  border-top-left-radius: 4px;\r\n+  border-top-right-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .list-group-item:last-child {\r\n+  margin-bottom: 0;\r\n+  border-bottom-right-radius: 4px;\r\n+  border-bottom-left-radius: 4px;\r\n+}\r\n+.wppm_bootstrap a.list-group-item,\r\n+.wppm_bootstrap button.list-group-item {\r\n+  color: #555;\r\n+}\r\n+.wppm_bootstrap a.list-group-item .list-group-item-heading,\r\n+.wppm_bootstrap button.list-group-item .list-group-item-heading {\r\n+  color: #333;\r\n+}\r\n+.wppm_bootstrap a.list-group-item:hover,\r\n+.wppm_bootstrap button.list-group-item:hover,\r\n+.wppm_bootstrap a.list-group-item:focus,\r\n+.wppm_bootstrap button.list-group-item:focus {\r\n+  color: #555;\r\n+  text-decoration: none;\r\n+  background-color: #f5f5f5;\r\n+}\r\n+.wppm_bootstrap button.list-group-item {\r\n+  width: 100%;\r\n+  text-align: left;\r\n+}\r\n+.wppm_bootstrap .list-group-item.disabled,\r\n+.wppm_bootstrap .list-group-item.disabled:hover,\r\n+.wppm_bootstrap .list-group-item.disabled:focus {\r\n+  color: #777;\r\n+  cursor: not-allowed;\r\n+  background-color: #eee;\r\n+}\r\n+.wppm_bootstrap .list-group-item.disabled .list-group-item-heading,\r\n+.wppm_bootstrap .list-group-item.disabled:hover .list-group-item-heading,\r\n+.wppm_bootstrap .list-group-item.disabled:focus .list-group-item-heading {\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap .list-group-item.disabled .list-group-item-text,\r\n+.wppm_bootstrap .list-group-item.disabled:hover .list-group-item-text,\r\n+.wppm_bootstrap .list-group-item.disabled:focus .list-group-item-text {\r\n+  color: #777;\r\n+}\r\n+.wppm_bootstrap .list-group-item.active,\r\n+.wppm_bootstrap .list-group-item.active:hover,\r\n+.wppm_bootstrap .list-group-item.active:focus {\r\n+  z-index: 2;\r\n+  color: #fff;\r\n+  background-color: #337ab7;\r\n+  border-color: #337ab7;\r\n+}\r\n+.wppm_bootstrap .list-group-item.active .list-group-item-heading,\r\n+.wppm_bootstrap .list-group-item.active:hover .list-group-item-heading,\r\n+.wppm_bootstrap .list-group-item.active:focus .list-group-item-heading,\r\n+.wppm_bootstrap .list-group-item.active .list-group-item-heading > small,\r\n+.wppm_bootstrap .list-group-item.active:hover .list-group-item-heading > small,\r\n+.wppm_bootstrap .list-group-item.active:focus .list-group-item-heading > small,\r\n+.wppm_bootstrap .list-group-item.active .list-group-item-heading > .small,\r\n+.wppm_bootstrap .list-group-item.active:hover .list-group-item-heading > .small,\r\n+.wppm_bootstrap .list-group-item.active:focus .list-group-item-heading > .small {\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap .list-group-item.active .list-group-item-text,\r\n+.wppm_bootstrap .list-group-item.active:hover .list-group-item-text,\r\n+.wppm_bootstrap .list-group-item.active:focus .list-group-item-text {\r\n+  color: #c7ddef;\r\n+}\r\n+.wppm_bootstrap .list-group-item-success {\r\n+  color: #3c763d;\r\n+  background-color: #dff0d8;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-success,\r\n+.wppm_bootstrap button.list-group-item-success {\r\n+  color: #3c763d;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-success .list-group-item-heading,\r\n+.wppm_bootstrap button.list-group-item-success .list-group-item-heading {\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-success:hover,\r\n+.wppm_bootstrap button.list-group-item-success:hover,\r\n+.wppm_bootstrap a.list-group-item-success:focus,\r\n+.wppm_bootstrap button.list-group-item-success:focus {\r\n+  color: #3c763d;\r\n+  background-color: #d0e9c6;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-success.active,\r\n+.wppm_bootstrap button.list-group-item-success.active,\r\n+.wppm_bootstrap a.list-group-item-success.active:hover,\r\n+.wppm_bootstrap button.list-group-item-success.active:hover,\r\n+.wppm_bootstrap a.list-group-item-success.active:focus,\r\n+.wppm_bootstrap button.list-group-item-success.active:focus {\r\n+  color: #fff;\r\n+  background-color: #3c763d;\r\n+  border-color: #3c763d;\r\n+}\r\n+.wppm_bootstrap .list-group-item-info {\r\n+  color: #31708f;\r\n+  background-color: #d9edf7;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-info,\r\n+.wppm_bootstrap button.list-group-item-info {\r\n+  color: #31708f;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-info .list-group-item-heading,\r\n+.wppm_bootstrap button.list-group-item-info .list-group-item-heading {\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-info:hover,\r\n+.wppm_bootstrap button.list-group-item-info:hover,\r\n+.wppm_bootstrap a.list-group-item-info:focus,\r\n+.wppm_bootstrap button.list-group-item-info:focus {\r\n+  color: #31708f;\r\n+  background-color: #c4e3f3;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-info.active,\r\n+.wppm_bootstrap button.list-group-item-info.active,\r\n+.wppm_bootstrap a.list-group-item-info.active:hover,\r\n+.wppm_bootstrap button.list-group-item-info.active:hover,\r\n+.wppm_bootstrap a.list-group-item-info.active:focus,\r\n+.wppm_bootstrap button.list-group-item-info.active:focus {\r\n+  color: #fff;\r\n+  background-color: #31708f;\r\n+  border-color: #31708f;\r\n+}\r\n+.wppm_bootstrap .list-group-item-warning {\r\n+  color: #8a6d3b;\r\n+  background-color: #fcf8e3;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-warning,\r\n+.wppm_bootstrap button.list-group-item-warning {\r\n+  color: #8a6d3b;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-warning .list-group-item-heading,\r\n+.wppm_bootstrap button.list-group-item-warning .list-group-item-heading {\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-warning:hover,\r\n+.wppm_bootstrap button.list-group-item-warning:hover,\r\n+.wppm_bootstrap a.list-group-item-warning:focus,\r\n+.wppm_bootstrap button.list-group-item-warning:focus {\r\n+  color: #8a6d3b;\r\n+  background-color: #faf2cc;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-warning.active,\r\n+.wppm_bootstrap button.list-group-item-warning.active,\r\n+.wppm_bootstrap a.list-group-item-warning.active:hover,\r\n+.wppm_bootstrap button.list-group-item-warning.active:hover,\r\n+.wppm_bootstrap a.list-group-item-warning.active:focus,\r\n+.wppm_bootstrap button.list-group-item-warning.active:focus {\r\n+  color: #fff;\r\n+  background-color: #8a6d3b;\r\n+  border-color: #8a6d3b;\r\n+}\r\n+.wppm_bootstrap .list-group-item-danger {\r\n+  color: #a94442;\r\n+  background-color: #f2dede;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-danger,\r\n+.wppm_bootstrap button.list-group-item-danger {\r\n+  color: #a94442;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-danger .list-group-item-heading,\r\n+.wppm_bootstrap button.list-group-item-danger .list-group-item-heading {\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-danger:hover,\r\n+.wppm_bootstrap button.list-group-item-danger:hover,\r\n+.wppm_bootstrap a.list-group-item-danger:focus,\r\n+.wppm_bootstrap button.list-group-item-danger:focus {\r\n+  color: #a94442;\r\n+  background-color: #ebcccc;\r\n+}\r\n+.wppm_bootstrap a.list-group-item-danger.active,\r\n+.wppm_bootstrap button.list-group-item-danger.active,\r\n+.wppm_bootstrap a.list-group-item-danger.active:hover,\r\n+.wppm_bootstrap button.list-group-item-danger.active:hover,\r\n+.wppm_bootstrap a.list-group-item-danger.active:focus,\r\n+.wppm_bootstrap button.list-group-item-danger.active:focus {\r\n+  color: #fff;\r\n+  background-color: #a94442;\r\n+  border-color: #a94442;\r\n+}\r\n+.wppm_bootstrap .list-group-item-heading {\r\n+  margin-top: 0;\r\n+  margin-bottom: 5px;\r\n+}\r\n+.wppm_bootstrap .list-group-item-text {\r\n+  margin-bottom: 0;\r\n+  line-height: 1.3;\r\n+}\r\n+.wppm_bootstrap .panel {\r\n+  margin-bottom: 20px;\r\n+  background-color: #fff;\r\n+  border: 1px solid transparent;\r\n+  border-radius: 4px;\r\n+  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\r\n+          box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\r\n+}\r\n+.wppm_bootstrap .panel-body {\r\n+  padding: 15px;\r\n+}\r\n+.wppm_bootstrap .panel-heading {\r\n+  padding: 10px 15px;\r\n+  border-bottom: 1px solid transparent;\r\n+  border-top-left-radius: 3px;\r\n+  border-top-right-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .panel-heading > .dropdown .dropdown-toggle {\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap .panel-title {\r\n+  margin-top: 0;\r\n+  margin-bottom: 0;\r\n+  font-size: 16px;\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap .panel-title > a,\r\n+.wppm_bootstrap .panel-title > small,\r\n+.wppm_bootstrap .panel-title > .small,\r\n+.wppm_bootstrap .panel-title > small > a,\r\n+.wppm_bootstrap .panel-title > .small > a {\r\n+  color: inherit;\r\n+}\r\n+.wppm_bootstrap .panel-footer {\r\n+  padding: 10px 15px;\r\n+  background-color: #f5f5f5;\r\n+  border-top: 1px solid #ddd;\r\n+  border-bottom-right-radius: 3px;\r\n+  border-bottom-left-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .panel > .list-group,\r\n+.wppm_bootstrap .panel > .panel-collapse > .list-group {\r\n+  margin-bottom: 0;\r\n+}\r\n+.wppm_bootstrap .panel > .list-group .list-group-item,\r\n+.wppm_bootstrap .panel > .panel-collapse > .list-group .list-group-item {\r\n+  border-width: 1px 0;\r\n+  border-radius: 0;\r\n+}\r\n+.wppm_bootstrap .panel > .list-group:first-child .list-group-item:first-child,\r\n+.wppm_bootstrap .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\r\n+  border-top: 0;\r\n+  border-top-left-radius: 3px;\r\n+  border-top-right-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .panel > .list-group:last-child .list-group-item:last-child,\r\n+.wppm_bootstrap .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\r\n+  border-bottom: 0;\r\n+  border-bottom-right-radius: 3px;\r\n+  border-bottom-left-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\r\n+  border-top-left-radius: 0;\r\n+  border-top-right-radius: 0;\r\n+}\r\n+.wppm_bootstrap .panel-heading + .list-group .list-group-item:first-child {\r\n+  border-top-width: 0;\r\n+}\r\n+.wppm_bootstrap .list-group + .panel-footer {\r\n+  border-top-width: 0;\r\n+}\r\n+.wppm_bootstrap .panel > .table,\r\n+.wppm_bootstrap .panel > .table-responsive > .table,\r\n+.wppm_bootstrap .panel > .panel-collapse > .table {\r\n+  margin-bottom: 0;\r\n+}\r\n+.wppm_bootstrap .panel > .table caption,\r\n+.wppm_bootstrap .panel > .table-responsive > .table caption,\r\n+.wppm_bootstrap .panel > .panel-collapse > .table caption {\r\n+  padding-right: 15px;\r\n+  padding-left: 15px;\r\n+}\r\n+.wppm_bootstrap .panel > .table:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child {\r\n+  border-top-left-radius: 3px;\r\n+  border-top-right-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .panel > .table:first-child > thead:first-child > tr:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\r\n+.wppm_bootstrap .panel > .table:first-child > tbody:first-child > tr:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\r\n+  border-top-left-radius: 3px;\r\n+  border-top-right-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\r\n+.wppm_bootstrap .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\r\n+.wppm_bootstrap .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\r\n+.wppm_bootstrap .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\r\n+  border-top-left-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\r\n+.wppm_bootstrap .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\r\n+.wppm_bootstrap .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\r\n+.wppm_bootstrap .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\r\n+  border-top-right-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .panel > .table:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child {\r\n+  border-bottom-right-radius: 3px;\r\n+  border-bottom-left-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .panel > .table:last-child > tbody:last-child > tr:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\r\n+.wppm_bootstrap .panel > .table:last-child > tfoot:last-child > tr:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\r\n+  border-bottom-right-radius: 3px;\r\n+  border-bottom-left-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\r\n+.wppm_bootstrap .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\r\n+.wppm_bootstrap .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\r\n+.wppm_bootstrap .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\r\n+  border-bottom-left-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\r\n+.wppm_bootstrap .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\r\n+.wppm_bootstrap .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\r\n+.wppm_bootstrap .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\r\n+  border-bottom-right-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .panel > .panel-body + .table,\r\n+.wppm_bootstrap .panel > .panel-body + .table-responsive,\r\n+.wppm_bootstrap .panel > .table + .panel-body,\r\n+.wppm_bootstrap .panel > .table-responsive + .panel-body {\r\n+  border-top: 1px solid #ddd;\r\n+}\r\n+.wppm_bootstrap .panel > .table > tbody:first-child > tr:first-child th,\r\n+.wppm_bootstrap .panel > .table > tbody:first-child > tr:first-child td {\r\n+  border-top: 0;\r\n+}\r\n+.wppm_bootstrap .panel > .table-bordered,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered {\r\n+  border: 0;\r\n+}\r\n+.wppm_bootstrap .panel > .table-bordered > thead > tr > th:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\r\n+.wppm_bootstrap .panel > .table-bordered > tbody > tr > th:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\r\n+.wppm_bootstrap .panel > .table-bordered > tfoot > tr > th:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\r\n+.wppm_bootstrap .panel > .table-bordered > thead > tr > td:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\r\n+.wppm_bootstrap .panel > .table-bordered > tbody > tr > td:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\r\n+.wppm_bootstrap .panel > .table-bordered > tfoot > tr > td:first-child,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\r\n+  border-left: 0;\r\n+}\r\n+.wppm_bootstrap .panel > .table-bordered > thead > tr > th:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\r\n+.wppm_bootstrap .panel > .table-bordered > tbody > tr > th:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\r\n+.wppm_bootstrap .panel > .table-bordered > tfoot > tr > th:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\r\n+.wppm_bootstrap .panel > .table-bordered > thead > tr > td:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\r\n+.wppm_bootstrap .panel > .table-bordered > tbody > tr > td:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\r\n+.wppm_bootstrap .panel > .table-bordered > tfoot > tr > td:last-child,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\r\n+  border-right: 0;\r\n+}\r\n+.wppm_bootstrap .panel > .table-bordered > thead > tr:first-child > td,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\r\n+.wppm_bootstrap .panel > .table-bordered > tbody > tr:first-child > td,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\r\n+.wppm_bootstrap .panel > .table-bordered > thead > tr:first-child > th,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\r\n+.wppm_bootstrap .panel > .table-bordered > tbody > tr:first-child > th,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\r\n+  border-bottom: 0;\r\n+}\r\n+.wppm_bootstrap .panel > .table-bordered > tbody > tr:last-child > td,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\r\n+.wppm_bootstrap .panel > .table-bordered > tfoot > tr:last-child > td,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\r\n+.wppm_bootstrap .panel > .table-bordered > tbody > tr:last-child > th,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\r\n+.wppm_bootstrap .panel > .table-bordered > tfoot > tr:last-child > th,\r\n+.wppm_bootstrap .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\r\n+  border-bottom: 0;\r\n+}\r\n+.wppm_bootstrap .panel > .table-responsive {\r\n+  margin-bottom: 0;\r\n+  border: 0;\r\n+}\r\n+.wppm_bootstrap .panel-group {\r\n+  margin-bottom: 20px;\r\n+}\r\n+.wppm_bootstrap .panel-group .panel {\r\n+  margin-bottom: 0;\r\n+  border-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .panel-group .panel + .panel {\r\n+  margin-top: 5px;\r\n+}\r\n+.wppm_bootstrap .panel-group .panel-heading {\r\n+  border-bottom: 0;\r\n+}\r\n+.wppm_bootstrap .panel-group .panel-heading + .panel-collapse > .panel-body,\r\n+.wppm_bootstrap .panel-group .panel-heading + .panel-collapse > .list-group {\r\n+  border-top: 1px solid #ddd;\r\n+}\r\n+.wppm_bootstrap .panel-group .panel-footer {\r\n+  border-top: 0;\r\n+}\r\n+.wppm_bootstrap .panel-group .panel-footer + .panel-collapse .panel-body {\r\n+  border-bottom: 1px solid #ddd;\r\n+}\r\n+.wppm_bootstrap .panel-default {\r\n+  border-color: #ddd;\r\n+}\r\n+.wppm_bootstrap .panel-default > .panel-heading {\r\n+  color: #333;\r\n+  background-color: #f5f5f5;\r\n+  border-color: #ddd;\r\n+}\r\n+.wppm_bootstrap .panel-default > .panel-heading + .panel-collapse > .panel-body {\r\n+  border-top-color: #ddd;\r\n+}\r\n+.wppm_bootstrap .panel-default > .panel-heading .badge {\r\n+  color: #f5f5f5;\r\n+  background-color: #333;\r\n+}\r\n+.wppm_bootstrap .panel-default > .panel-footer + .panel-collapse > .panel-body {\r\n+  border-bottom-color: #ddd;\r\n+}\r\n+.wppm_bootstrap .panel-primary {\r\n+  border-color: #337ab7;\r\n+}\r\n+.wppm_bootstrap .panel-primary > .panel-heading {\r\n+  color: #fff;\r\n+  background-color: #337ab7;\r\n+  border-color: #337ab7;\r\n+}\r\n+.wppm_bootstrap .panel-primary > .panel-heading + .panel-collapse > .panel-body {\r\n+  border-top-color: #337ab7;\r\n+}\r\n+.wppm_bootstrap .panel-primary > .panel-heading .badge {\r\n+  color: #337ab7;\r\n+  background-color: #fff;\r\n+}\r\n+.wppm_bootstrap .panel-primary > .panel-footer + .panel-collapse > .panel-body {\r\n+  border-bottom-color: #337ab7;\r\n+}\r\n+.wppm_bootstrap .panel-success {\r\n+  border-color: #d6e9c6;\r\n+}\r\n+.wppm_bootstrap .panel-success > .panel-heading {\r\n+  color: #3c763d;\r\n+  background-color: #dff0d8;\r\n+  border-color: #d6e9c6;\r\n+}\r\n+.wppm_bootstrap .panel-success > .panel-heading + .panel-collapse > .panel-body {\r\n+  border-top-color: #d6e9c6;\r\n+}\r\n+.wppm_bootstrap .panel-success > .panel-heading .badge {\r\n+  color: #dff0d8;\r\n+  background-color: #3c763d;\r\n+}\r\n+.wppm_bootstrap .panel-success > .panel-footer + .panel-collapse > .panel-body {\r\n+  border-bottom-color: #d6e9c6;\r\n+}\r\n+.wppm_bootstrap .panel-info {\r\n+  border-color: #bce8f1;\r\n+}\r\n+.wppm_bootstrap .panel-info > .panel-heading {\r\n+  color: #31708f;\r\n+  background-color: #d9edf7;\r\n+  border-color: #bce8f1;\r\n+}\r\n+.wppm_bootstrap .panel-info > .panel-heading + .panel-collapse > .panel-body {\r\n+  border-top-color: #bce8f1;\r\n+}\r\n+.wppm_bootstrap .panel-info > .panel-heading .badge {\r\n+  color: #d9edf7;\r\n+  background-color: #31708f;\r\n+}\r\n+.wppm_bootstrap .panel-info > .panel-footer + .panel-collapse > .panel-body {\r\n+  border-bottom-color: #bce8f1;\r\n+}\r\n+.wppm_bootstrap .panel-warning {\r\n+  border-color: #faebcc;\r\n+}\r\n+.wppm_bootstrap .panel-warning > .panel-heading {\r\n+  color: #8a6d3b;\r\n+  background-color: #fcf8e3;\r\n+  border-color: #faebcc;\r\n+}\r\n+.wppm_bootstrap .panel-warning > .panel-heading + .panel-collapse > .panel-body {\r\n+  border-top-color: #faebcc;\r\n+}\r\n+.wppm_bootstrap .panel-warning > .panel-heading .badge {\r\n+  color: #fcf8e3;\r\n+  background-color: #8a6d3b;\r\n+}\r\n+.wppm_bootstrap .panel-warning > .panel-footer + .panel-collapse > .panel-body {\r\n+  border-bottom-color: #faebcc;\r\n+}\r\n+.wppm_bootstrap .panel-danger {\r\n+  border-color: #ebccd1;\r\n+}\r\n+.wppm_bootstrap .panel-danger > .panel-heading {\r\n+  color: #a94442;\r\n+  background-color: #f2dede;\r\n+  border-color: #ebccd1;\r\n+}\r\n+.wppm_bootstrap .panel-danger > .panel-heading + .panel-collapse > .panel-body {\r\n+  border-top-color: #ebccd1;\r\n+}\r\n+.wppm_bootstrap .panel-danger > .panel-heading .badge {\r\n+  color: #f2dede;\r\n+  background-color: #a94442;\r\n+}\r\n+.wppm_bootstrap .panel-danger > .panel-footer + .panel-collapse > .panel-body {\r\n+  border-bottom-color: #ebccd1;\r\n+}\r\n+.wppm_bootstrap .embed-responsive {\r\n+  position: relative;\r\n+  display: block;\r\n+  height: 0;\r\n+  padding: 0;\r\n+  overflow: hidden;\r\n+}\r\n+.wppm_bootstrap .embed-responsive .embed-responsive-item,\r\n+.wppm_bootstrap .embed-responsive iframe,\r\n+.wppm_bootstrap .embed-responsive embed,\r\n+.wppm_bootstrap .embed-responsive object,\r\n+.wppm_bootstrap .embed-responsive video {\r\n+  position: absolute;\r\n+  top: 0;\r\n+  bottom: 0;\r\n+  left: 0;\r\n+  width: 100%;\r\n+  height: 100%;\r\n+  border: 0;\r\n+}\r\n+.wppm_bootstrap .embed-responsive-16by9 {\r\n+  padding-bottom: 56.25%;\r\n+}\r\n+.wppm_bootstrap .embed-responsive-4by3 {\r\n+  padding-bottom: 75%;\r\n+}\r\n+.wppm_bootstrap .well {\r\n+  min-height: 20px;\r\n+  padding: 19px;\r\n+  margin-bottom: 20px;\r\n+  background-color: #f5f5f5;\r\n+  border: 1px solid #e3e3e3;\r\n+  border-radius: 4px;\r\n+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\r\n+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\r\n+}\r\n+.wppm_bootstrap .well blockquote {\r\n+  border-color: #ddd;\r\n+  border-color: rgba(0, 0, 0, .15);\r\n+}\r\n+.wppm_bootstrap .well-lg {\r\n+  padding: 24px;\r\n+  border-radius: 6px;\r\n+}\r\n+.wppm_bootstrap .well-sm {\r\n+  padding: 9px;\r\n+  border-radius: 3px;\r\n+}\r\n+.wppm_bootstrap .close {\r\n+  float: right;\r\n+  font-size: 21px;\r\n+  font-weight: bold;\r\n+  line-height: 1;\r\n+  color: #000;\r\n+  text-shadow: 0 1px 0 #fff;\r\n+  filter: alpha(opacity=20);\r\n+  opacity: .2;\r\n+}\r\n+.wppm_bootstrap .close:hover,\r\n+.wppm_bootstrap .close:focus {\r\n+  color: #000;\r\n+  text-decoration: none;\r\n+  cursor: pointer;\r\n+  filter: alpha(opacity=50);\r\n+  opacity: .5;\r\n+}\r\n+.wppm_bootstrap button.close {\r\n+  -webkit-appearance: none;\r\n+  padding: 0;\r\n+  cursor: pointer;\r\n+  background: transparent;\r\n+  border: 0;\r\n+}\r\n+.wppm_bootstrap .modal-open {\r\n+  overflow: hidden;\r\n+}\r\n+.wppm_bootstrap .modal {\r\n+  position: fixed;\r\n+  top: 0;\r\n+  right: 0;\r\n+  bottom: 0;\r\n+  left: 0;\r\n+  z-index: 1050;\r\n+  display: none;\r\n+  overflow: hidden;\r\n+  -webkit-overflow-scrolling: touch;\r\n+  outline: 0;\r\n+}\r\n+.wppm_bootstrap .modal.fade .modal-dialog {\r\n+  -webkit-transition: -webkit-transform .3s ease-out;\r\n+       -o-transition:      -o-transform .3s ease-out;\r\n+          transition:         transform .3s ease-out;\r\n+  -webkit-transform: translate(0, -25%);\r\n+      -ms-transform: translate(0, -25%);\r\n+       -o-transform: translate(0, -25%);\r\n+          transform: translate(0, -25%);\r\n+}\r\n+.wppm_bootstrap .modal.in .modal-dialog {\r\n+  -webkit-transform: translate(0, 0);\r\n+      -ms-transform: translate(0, 0);\r\n+       -o-transform: translate(0, 0);\r\n+          transform: translate(0, 0);\r\n+}\r\n+.wppm_bootstrap .modal-open .modal {\r\n+  overflow-x: hidden;\r\n+  overflow-y: auto;\r\n+}\r\n+.wppm_bootstrap .modal-dialog {\r\n+  position: relative;\r\n+  width: auto;\r\n+  margin: 10px;\r\n+}\r\n+.wppm_bootstrap .modal-content {\r\n+  position: relative;\r\n+  background-color: #fff;\r\n+  -webkit-background-clip: padding-box;\r\n+          background-clip: padding-box;\r\n+  border: 1px solid #999;\r\n+  border: 1px solid rgba(0, 0, 0, .2);\r\n+  border-radius: 6px;\r\n+  outline: 0;\r\n+  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\r\n+          box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\r\n+}\r\n+.wppm_bootstrap .modal-backdrop {\r\n+  position: fixed;\r\n+  top: 0;\r\n+  right: 0;\r\n+  bottom: 0;\r\n+  left: 0;\r\n+  z-index: 1040;\r\n+  background-color: #000;\r\n+}\r\n+.wppm_bootstrap .modal-backdrop.fade {\r\n+  filter: alpha(opacity=0);\r\n+  opacity: 0;\r\n+}\r\n+.wppm_bootstrap .modal-backdrop.in {\r\n+  filter: alpha(opacity=50);\r\n+  opacity: .5;\r\n+}\r\n+.wppm_bootstrap .modal-header {\r\n+  padding: 15px;\r\n+  border-bottom: 1px solid #e5e5e5;\r\n+}\r\n+.wppm_bootstrap .modal-header .close {\r\n+  margin-top: -2px;\r\n+}\r\n+.wppm_bootstrap .modal-title {\r\n+  margin: 0;\r\n+  line-height: 1.42857143;\r\n+}\r\n+.wppm_bootstrap .modal-body {\r\n+  position: relative;\r\n+  padding: 15px;\r\n+}\r\n+.wppm_bootstrap .modal-footer {\r\n+  padding: 15px;\r\n+  text-align: right;\r\n+  border-top: 1px solid #e5e5e5;\r\n+}\r\n+.wppm_bootstrap .modal-footer .btn + .btn {\r\n+  margin-bottom: 0;\r\n+  margin-left: 5px;\r\n+}\r\n+.wppm_bootstrap .modal-footer .btn-group .btn + .btn {\r\n+  margin-left: -1px;\r\n+}\r\n+.wppm_bootstrap .modal-footer .btn-block + .btn-block {\r\n+  margin-left: 0;\r\n+}\r\n+.wppm_bootstrap .modal-scrollbar-measure {\r\n+  position: absolute;\r\n+  top: -9999px;\r\n+  width: 50px;\r\n+  height: 50px;\r\n+  overflow: scroll;\r\n+}\r\n+@media (min-width: 768px) {\r\n+  .modal-dialog {\r\n+    width: 600px;\r\n+    margin: 30px auto;\r\n+  }\r\n+  .modal-content {\r\n+    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\r\n+            box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\r\n+  }\r\n+  .modal-sm {\r\n+    width: 300px;\r\n+  }\r\n+}\r\n+@media (min-width: 992px) {\r\n+  .modal-lg {\r\n+    width: 900px;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .tooltip {\r\n+  position: absolute;\r\n+  z-index: 1070;\r\n+  display: block;\r\n+  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n+  font-size: 12px;\r\n+  font-style: normal;\r\n+  font-weight: normal;\r\n+  line-height: 1.42857143;\r\n+  text-align: left;\r\n+  text-align: start;\r\n+  text-decoration: none;\r\n+  text-shadow: none;\r\n+  text-transform: none;\r\n+  letter-spacing: normal;\r\n+  word-break: normal;\r\n+  word-spacing: normal;\r\n+  word-wrap: normal;\r\n+  white-space: normal;\r\n+  filter: alpha(opacity=0);\r\n+  opacity: 0;\r\n+\r\n+  line-break: auto;\r\n+}\r\n+.wppm_bootstrap .tooltip.in {\r\n+  filter: alpha(opacity=90);\r\n+  opacity: .9;\r\n+}\r\n+.wppm_bootstrap .tooltip.top {\r\n+  padding: 5px 0;\r\n+  margin-top: -3px;\r\n+}\r\n+.wppm_bootstrap .tooltip.right {\r\n+  padding: 0 5px;\r\n+  margin-left: 3px;\r\n+}\r\n+.wppm_bootstrap .tooltip.bottom {\r\n+  padding: 5px 0;\r\n+  margin-top: 3px;\r\n+}\r\n+.wppm_bootstrap .tooltip.left {\r\n+  padding: 0 5px;\r\n+  margin-left: -3px;\r\n+}\r\n+.wppm_bootstrap .tooltip-inner {\r\n+  max-width: 200px;\r\n+  padding: 3px 8px;\r\n+  color: #fff;\r\n+  text-align: center;\r\n+  background-color: #000;\r\n+  border-radius: 4px;\r\n+}\r\n+.wppm_bootstrap .tooltip-arrow {\r\n+  position: absolute;\r\n+  width: 0;\r\n+  height: 0;\r\n+  border-color: transparent;\r\n+  border-style: solid;\r\n+}\r\n+.wppm_bootstrap .tooltip.top .tooltip-arrow {\r\n+  bottom: 0;\r\n+  left: 50%;\r\n+  margin-left: -5px;\r\n+  border-width: 5px 5px 0;\r\n+  border-top-color: #000;\r\n+}\r\n+.wppm_bootstrap .tooltip.top-left .tooltip-arrow {\r\n+  right: 5px;\r\n+  bottom: 0;\r\n+  margin-bottom: -5px;\r\n+  border-width: 5px 5px 0;\r\n+  border-top-color: #000;\r\n+}\r\n+.wppm_bootstrap .tooltip.top-right .tooltip-arrow {\r\n+  bottom: 0;\r\n+  left: 5px;\r\n+  margin-bottom: -5px;\r\n+  border-width: 5px 5px 0;\r\n+  border-top-color: #000;\r\n+}\r\n+.wppm_bootstrap .tooltip.right .tooltip-arrow {\r\n+  top: 50%;\r\n+  left: 0;\r\n+  margin-top: -5px;\r\n+  border-width: 5px 5px 5px 0;\r\n+  border-right-color: #000;\r\n+}\r\n+.wppm_bootstrap .tooltip.left .tooltip-arrow {\r\n+  top: 50%;\r\n+  right: 0;\r\n+  margin-top: -5px;\r\n+  border-width: 5px 0 5px 5px;\r\n+  border-left-color: #000;\r\n+}\r\n+.wppm_bootstrap .tooltip.bottom .tooltip-arrow {\r\n+  top: 0;\r\n+  left: 50%;\r\n+  margin-left: -5px;\r\n+  border-width: 0 5px 5px;\r\n+  border-bottom-color: #000;\r\n+}\r\n+.wppm_bootstrap .tooltip.bottom-left .tooltip-arrow {\r\n+  top: 0;\r\n+  right: 5px;\r\n+  margin-top: -5px;\r\n+  border-width: 0 5px 5px;\r\n+  border-bottom-color: #000;\r\n+}\r\n+.wppm_bootstrap .tooltip.bottom-right .tooltip-arrow {\r\n+  top: 0;\r\n+  left: 5px;\r\n+  margin-top: -5px;\r\n+  border-width: 0 5px 5px;\r\n+  border-bottom-color: #000;\r\n+}\r\n+.wppm_bootstrap .popover {\r\n+  position: absolute;\r\n+  top: 0;\r\n+  left: 0;\r\n+  z-index: 1060;\r\n+  display: none;\r\n+  max-width: 276px;\r\n+  padding: 1px;\r\n+  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n+  font-size: 14px;\r\n+  font-style: normal;\r\n+  font-weight: normal;\r\n+  line-height: 1.42857143;\r\n+  text-align: left;\r\n+  text-align: start;\r\n+  text-decoration: none;\r\n+  text-shadow: none;\r\n+  text-transform: none;\r\n+  letter-spacing: normal;\r\n+  word-break: normal;\r\n+  word-spacing: normal;\r\n+  word-wrap: normal;\r\n+  white-space: normal;\r\n+  background-color: #fff;\r\n+  -webkit-background-clip: padding-box;\r\n+          background-clip: padding-box;\r\n+  border: 1px solid #ccc;\r\n+  border: 1px solid rgba(0, 0, 0, .2);\r\n+  border-radius: 6px;\r\n+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\r\n+          box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\r\n+\r\n+  line-break: auto;\r\n+}\r\n+.wppm_bootstrap .popover.top {\r\n+  margin-top: -10px;\r\n+}\r\n+.wppm_bootstrap .popover.right {\r\n+  margin-left: 10px;\r\n+}\r\n+.wppm_bootstrap .popover.bottom {\r\n+  margin-top: 10px;\r\n+}\r\n+.wppm_bootstrap .popover.left {\r\n+  margin-left: -10px;\r\n+}\r\n+.wppm_bootstrap .popover-title {\r\n+  padding: 8px 14px;\r\n+  margin: 0;\r\n+  font-size: 14px;\r\n+  background-color: #f7f7f7;\r\n+  border-bottom: 1px solid #ebebeb;\r\n+  border-radius: 5px 5px 0 0;\r\n+}\r\n+.wppm_bootstrap .popover-content {\r\n+  padding: 9px 14px;\r\n+}\r\n+.wppm_bootstrap .popover > .arrow,\r\n+.wppm_bootstrap .popover > .arrow:after {\r\n+  position: absolute;\r\n+  display: block;\r\n+  width: 0;\r\n+  height: 0;\r\n+  border-color: transparent;\r\n+  border-style: solid;\r\n+}\r\n+.wppm_bootstrap .popover > .arrow {\r\n+  border-width: 11px;\r\n+}\r\n+.wppm_bootstrap .popover > .arrow:after {\r\n+  content: \"\";\r\n+  border-width: 10px;\r\n+}\r\n+.wppm_bootstrap .popover.top > .arrow {\r\n+  bottom: -11px;\r\n+  left: 50%;\r\n+  margin-left: -11px;\r\n+  border-top-color: #999;\r\n+  border-top-color: rgba(0, 0, 0, .25);\r\n+  border-bottom-width: 0;\r\n+}\r\n+.wppm_bootstrap .popover.top > .arrow:after {\r\n+  bottom: 1px;\r\n+  margin-left: -10px;\r\n+  content: \" \";\r\n+  border-top-color: #fff;\r\n+  border-bottom-width: 0;\r\n+}\r\n+.wppm_bootstrap .popover.right > .arrow {\r\n+  top: 50%;\r\n+  left: -11px;\r\n+  margin-top: -11px;\r\n+  border-right-color: #999;\r\n+  border-right-color: rgba(0, 0, 0, .25);\r\n+  border-left-width: 0;\r\n+}\r\n+.wppm_bootstrap .popover.right > .arrow:after {\r\n+  bottom: -10px;\r\n+  left: 1px;\r\n+  content: \" \";\r\n+  border-right-color: #fff;\r\n+  border-left-width: 0;\r\n+}\r\n+.wppm_bootstrap .popover.bottom > .arrow {\r\n+  top: -11px;\r\n+  left: 50%;\r\n+  margin-left: -11px;\r\n+  border-top-width: 0;\r\n+  border-bottom-color: #999;\r\n+  border-bottom-color: rgba(0, 0, 0, .25);\r\n+}\r\n+.wppm_bootstrap .popover.bottom > .arrow:after {\r\n+  top: 1px;\r\n+  margin-left: -10px;\r\n+  content: \" \";\r\n+  border-top-width: 0;\r\n+  border-bottom-color: #fff;\r\n+}\r\n+.wppm_bootstrap .popover.left > .arrow {\r\n+  top: 50%;\r\n+  right: -11px;\r\n+  margin-top: -11px;\r\n+  border-right-width: 0;\r\n+  border-left-color: #999;\r\n+  border-left-color: rgba(0, 0, 0, .25);\r\n+}\r\n+.wppm_bootstrap .popover.left > .arrow:after {\r\n+  right: 1px;\r\n+  bottom: -10px;\r\n+  content: \" \";\r\n+  border-right-width: 0;\r\n+  border-left-color: #fff;\r\n+}\r\n+.wppm_bootstrap .carousel {\r\n+  position: relative;\r\n+}\r\n+.wppm_bootstrap .carousel-inner {\r\n+  position: relative;\r\n+  width: 100%;\r\n+  overflow: hidden;\r\n+}\r\n+.wppm_bootstrap .carousel-inner > .item {\r\n+  position: relative;\r\n+  display: none;\r\n+  -webkit-transition: .6s ease-in-out left;\r\n+       -o-transition: .6s ease-in-out left;\r\n+          transition: .6s ease-in-out left;\r\n+}\r\n+.wppm_bootstrap .carousel-inner > .item > img,\r\n+.wppm_bootstrap .carousel-inner > .item > a > img {\r\n+  line-height: 1;\r\n+}\r\n+@media all and (transform-3d), (-webkit-transform-3d) {\r\n+  .carousel-inner > .item {\r\n+    -webkit-transition: -webkit-transform .6s ease-in-out;\r\n+         -o-transition:      -o-transform .6s ease-in-out;\r\n+            transition:         transform .6s ease-in-out;\r\n+\r\n+    -webkit-backface-visibility: hidden;\r\n+            backface-visibility: hidden;\r\n+    -webkit-perspective: 1000px;\r\n+            perspective: 1000px;\r\n+  }\r\n+  .carousel-inner > .item.next,\r\n+  .carousel-inner > .item.active.right {\r\n+    left: 0;\r\n+    -webkit-transform: translate3d(100%, 0, 0);\r\n+            transform: translate3d(100%, 0, 0);\r\n+  }\r\n+  .carousel-inner > .item.prev,\r\n+  .carousel-inner > .item.active.left {\r\n+    left: 0;\r\n+    -webkit-transform: translate3d(-100%, 0, 0);\r\n+            transform: translate3d(-100%, 0, 0);\r\n+  }\r\n+  .carousel-inner > .item.next.left,\r\n+  .carousel-inner > .item.prev.right,\r\n+  .carousel-inner > .item.active {\r\n+    left: 0;\r\n+    -webkit-transform: translate3d(0, 0, 0);\r\n+            transform: translate3d(0, 0, 0);\r\n+  }\r\n+}\r\n+.wppm_bootstrap .carousel-inner > .active,\r\n+.wppm_bootstrap .carousel-inner > .next,\r\n+.wppm_bootstrap .carousel-inner > .prev {\r\n+  display: block;\r\n+}\r\n+.wppm_bootstrap .carousel-inner > .active {\r\n+  left: 0;\r\n+}\r\n+.wppm_bootstrap .carousel-inner > .next,\r\n+.wppm_bootstrap .carousel-inner > .prev {\r\n+  position: absolute;\r\n+  top: 0;\r\n+  width: 100%;\r\n+}\r\n+.wppm_bootstrap .carousel-inner > .next {\r\n+  left: 100%;\r\n+}\r\n+.wppm_bootstrap .carousel-inner > .prev {\r\n+  left: -100%;\r\n+}\r\n+.wppm_bootstrap .carousel-inner > .next.left,\r\n+.wppm_bootstrap .carousel-inner > .prev.right {\r\n+  left: 0;\r\n+}\r\n+.wppm_bootstrap .carousel-inner > .active.left {\r\n+  left: -100%;\r\n+}\r\n+.wppm_bootstrap .carousel-inner > .active.right {\r\n+  left: 100%;\r\n+}\r\n+.wppm_bootstrap .carousel-control {\r\n+  position: absolute;\r\n+  top: 0;\r\n+  bottom: 0;\r\n+  left: 0;\r\n+  width: 15%;\r\n+  font-size: 20px;\r\n+  color: #fff;\r\n+  text-align: center;\r\n+  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\r\n+  background-color: rgba(0, 0, 0, 0);\r\n+  filter: alpha(opacity=50);\r\n+  opacity: .5;\r\n+}\r\n+.wppm_bootstrap .carousel-control.left {\r\n+  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\r\n+  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\r\n+  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));\r\n+  background-image:         linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\r\n+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\r\n+  background-repeat: repeat-x;\r\n+}\r\n+.wppm_bootstrap .carousel-control.right {\r\n+  right: 0;\r\n+  left: auto;\r\n+  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\r\n+  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\r\n+  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));\r\n+  background-image:         linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\r\n+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\r\n+  background-repeat: repeat-x;\r\n+}\r\n+.wppm_bootstrap .carousel-control:hover,\r\n+.wppm_bootstrap .carousel-control:focus {\r\n+  color: #fff;\r\n+  text-decoration: none;\r\n+  filter: alpha(opacity=90);\r\n+  outline: 0;\r\n+  opacity: .9;\r\n+}\r\n+.wppm_bootstrap .carousel-control .icon-prev,\r\n+.wppm_bootstrap .carousel-control .icon-next,\r\n+.wppm_bootstrap .carousel-control .glyphicon-chevron-left,\r\n+.wppm_bootstrap .carousel-control .glyphicon-chevron-right {\r\n+  position: absolute;\r\n+  top: 50%;\r\n+  z-index: 5;\r\n+  display: inline-block;\r\n+  margin-top: -10px;\r\n+}\r\n+.wppm_bootstrap .carousel-control .icon-prev,\r\n+.wppm_bootstrap .carousel-control .glyphicon-chevron-left {\r\n+  left: 50%;\r\n+  margin-left: -10px;\r\n+}\r\n+.wppm_bootstrap .carousel-control .icon-next,\r\n+.wppm_bootstrap .carousel-control .glyphicon-chevron-right {\r\n+  right: 50%;\r\n+  margin-right: -10px;\r\n+}\r\n+.wppm_bootstrap .carousel-control .icon-prev,\r\n+.wppm_bootstrap .carousel-control .icon-next {\r\n+  width: 20px;\r\n+  height: 20px;\r\n+  font-family: serif;\r\n+  line-height: 1;\r\n+}\r\n+.wppm_bootstrap .carousel-control .icon-prev:before {\r\n+  content: '\\2039';\r\n+}\r\n+.wppm_bootstrap .carousel-control .icon-next:before {\r\n+  content: '\\203a';\r\n+}\r\n+.wppm_bootstrap .carousel-indicators {\r\n+  position: absolute;\r\n+  bottom: 10px;\r\n+  left: 50%;\r\n+  z-index: 15;\r\n+  width: 60%;\r\n+  padding-left: 0;\r\n+  margin-left: -30%;\r\n+  text-align: center;\r\n+  list-style: none;\r\n+}\r\n+.wppm_bootstrap .carousel-indicators li {\r\n+  display: inline-block;\r\n+  width: 10px;\r\n+  height: 10px;\r\n+  margin: 1px;\r\n+  text-indent: -999px;\r\n+  cursor: pointer;\r\n+  background-color: #000 \\9;\r\n+  background-color: rgba(0, 0, 0, 0);\r\n+  border: 1px solid #fff;\r\n+  border-radius: 10px;\r\n+}\r\n+.wppm_bootstrap .carousel-indicators .active {\r\n+  width: 12px;\r\n+  height: 12px;\r\n+  margin: 0;\r\n+  background-color: #fff;\r\n+}\r\n+.wppm_bootstrap .carousel-caption {\r\n+  position: absolute;\r\n+  right: 15%;\r\n+  bottom: 20px;\r\n+  left: 15%;\r\n+  z-index: 10;\r\n+  padding-top: 20px;\r\n+  padding-bottom: 20px;\r\n+  color: #fff;\r\n+  text-align: center;\r\n+  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\r\n+}\r\n+.wppm_bootstrap .carousel-caption .btn {\r\n+  text-shadow: none;\r\n+}\r\n+@media screen and (min-width: 768px) {\r\n+  .carousel-control .glyphicon-chevron-left,\r\n+  .carousel-control .glyphicon-chevron-right,\r\n+  .carousel-control .icon-prev,\r\n+  .carousel-control .icon-next {\r\n+    width: 30px;\r\n+    height: 30px;\r\n+    margin-top: -10px;\r\n+    font-size: 30px;\r\n+  }\r\n+  .carousel-control .glyphicon-chevron-left,\r\n+  .carousel-control .icon-prev {\r\n+    margin-left: -10px;\r\n+  }\r\n+  .carousel-control .glyphicon-chevron-right,\r\n+  .carousel-control .icon-next {\r\n+    margin-right: -10px;\r\n+  }\r\n+  .carousel-caption {\r\n+    right: 20%;\r\n+    left: 20%;\r\n+    padding-bottom: 30px;\r\n+  }\r\n+  .carousel-indicators {\r\n+    bottom: 20px;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .clearfix:before,\r\n+.wppm_bootstrap .clearfix:after,\r\n+.wppm_bootstrap .dl-horizontal dd:before,\r\n+.wppm_bootstrap .dl-horizontal dd:after,\r\n+.wppm_bootstrap .container:before,\r\n+.wppm_bootstrap .container:after,\r\n+.wppm_bootstrap .container-fluid:before,\r\n+.wppm_bootstrap .container-fluid:after,\r\n+.wppm_bootstrap .row:before,\r\n+.wppm_bootstrap .row:after,\r\n+.wppm_bootstrap .form-horizontal .form-group:before,\r\n+.wppm_bootstrap .form-horizontal .form-group:after,\r\n+.wppm_bootstrap .btn-toolbar:before,\r\n+.wppm_bootstrap .btn-toolbar:after,\r\n+.wppm_bootstrap .btn-group-vertical > .btn-group:before,\r\n+.wppm_bootstrap .btn-group-vertical > .btn-group:after,\r\n+.wppm_bootstrap .nav:before,\r\n+.wppm_bootstrap .nav:after,\r\n+.wppm_bootstrap .navbar:before,\r\n+.wppm_bootstrap .navbar:after,\r\n+.wppm_bootstrap .navbar-header:before,\r\n+.wppm_bootstrap .navbar-header:after,\r\n+.wppm_bootstrap .navbar-collapse:before,\r\n+.wppm_bootstrap .navbar-collapse:after,\r\n+.wppm_bootstrap .pager:before,\r\n+.wppm_bootstrap .pager:after,\r\n+.wppm_bootstrap .panel-body:before,\r\n+.wppm_bootstrap .panel-body:after,\r\n+.wppm_bootstrap .modal-header:before,\r\n+.wppm_bootstrap .modal-header:after,\r\n+.wppm_bootstrap .modal-footer:before,\r\n+.wppm_bootstrap .modal-footer:after {\r\n+  display: table;\r\n+  content: \" \";\r\n+}\r\n+.wppm_bootstrap .clearfix:after,\r\n+.wppm_bootstrap .dl-horizontal dd:after,\r\n+.wppm_bootstrap .container:after,\r\n+.wppm_bootstrap .container-fluid:after,\r\n+.wppm_bootstrap .row:after,\r\n+.wppm_bootstrap .form-horizontal .form-group:after,\r\n+.wppm_bootstrap .btn-toolbar:after,\r\n+.wppm_bootstrap .btn-group-vertical > .btn-group:after,\r\n+.wppm_bootstrap .nav:after,\r\n+.wppm_bootstrap .navbar:after,\r\n+.wppm_bootstrap .navbar-header:after,\r\n+.wppm_bootstrap .navbar-collapse:after,\r\n+.wppm_bootstrap .pager:after,\r\n+.wppm_bootstrap .panel-body:after,\r\n+.wppm_bootstrap .modal-header:after,\r\n+.wppm_bootstrap .modal-footer:after {\r\n+  clear: both;\r\n+}\r\n+.wppm_bootstrap .center-block {\r\n+  display: block;\r\n+  margin-right: auto;\r\n+  margin-left: auto;\r\n+}\r\n+.wppm_bootstrap .pull-right {\r\n+  float: right !important;\r\n+}\r\n+.wppm_bootstrap .pull-left {\r\n+  float: left !important;\r\n+}\r\n+.wppm_bootstrap .hide {\r\n+  display: none !important;\r\n+}\r\n+.wppm_bootstrap .show {\r\n+  display: block !important;\r\n+}\r\n+.wppm_bootstrap .invisible {\r\n+  visibility: hidden;\r\n+}\r\n+.wppm_bootstrap .text-hide {\r\n+  font: 0\u002F0 a;\r\n+  color: transparent;\r\n+  text-shadow: none;\r\n+  background-color: transparent;\r\n+  border: 0;\r\n+}\r\n+.wppm_bootstrap .hidden {\r\n+  display: none !important;\r\n+}\r\n+.wppm_bootstrap .affix {\r\n+  position: fixed;\r\n+}\r\n+@-ms-viewport {\r\n+  width: device-width;\r\n+}\r\n+.wppm_bootstrap .visible-xs,\r\n+.wppm_bootstrap .visible-sm,\r\n+.wppm_bootstrap .visible-md,\r\n+.wppm_bootstrap .visible-lg {\r\n+  display: none !important;\r\n+}\r\n+.wppm_bootstrap .visible-xs-block,\r\n+.wppm_bootstrap .visible-xs-inline,\r\n+.wppm_bootstrap .visible-xs-inline-block,\r\n+.wppm_bootstrap .visible-sm-block,\r\n+.wppm_bootstrap .visible-sm-inline,\r\n+.wppm_bootstrap .visible-sm-inline-block,\r\n+.wppm_bootstrap .visible-md-block,\r\n+.wppm_bootstrap .visible-md-inline,\r\n+.wppm_bootstrap .visible-md-inline-block,\r\n+.wppm_bootstrap .visible-lg-block,\r\n+.wppm_bootstrap .visible-lg-inline,\r\n+.wppm_bootstrap .visible-lg-inline-block {\r\n+  display: none !important;\r\n+}\r\n+@media (max-width: 767px) {\r\n+  .visible-xs {\r\n+    display: block !important;\r\n+  }\r\n+  table.visible-xs {\r\n+    display: table !important;\r\n+  }\r\n+  tr.visible-xs {\r\n+    display: table-row !important;\r\n+  }\r\n+  th.visible-xs,\r\n+  td.visible-xs {\r\n+    display: table-cell !important;\r\n+  }\r\n+}\r\n+@media (max-width: 767px) {\r\n+  .visible-xs-block {\r\n+    display: block !important;\r\n+  }\r\n+}\r\n+@media (max-width: 767px) {\r\n+  .visible-xs-inline {\r\n+    display: inline !important;\r\n+  }\r\n+}\r\n+@media (max-width: 767px) {\r\n+  .visible-xs-inline-block {\r\n+    display: inline-block !important;\r\n+  }\r\n+}\r\n+@media (min-width: 768px) and (max-width: 991px) {\r\n+  .visible-sm {\r\n+    display: block !important;\r\n+  }\r\n+  table.visible-sm {\r\n+    display: table !important;\r\n+  }\r\n+  tr.visible-sm {\r\n+    display: table-row !important;\r\n+  }\r\n+  th.visible-sm,\r\n+  td.visible-sm {\r\n+    display: table-cell !important;\r\n+  }\r\n+}\r\n+@media (min-width: 768px) and (max-width: 991px) {\r\n+  .visible-sm-block {\r\n+    display: block !important;\r\n+  }\r\n+}\r\n+@media (min-width: 768px) and (max-width: 991px) {\r\n+  .visible-sm-inline {\r\n+    display: inline !important;\r\n+  }\r\n+}\r\n+@media (min-width: 768px) and (max-width: 991px) {\r\n+  .visible-sm-inline-block {\r\n+    display: inline-block !important;\r\n+  }\r\n+}\r\n+@media (min-width: 992px) and (max-width: 1199px) {\r\n+  .visible-md {\r\n+    display: block !important;\r\n+  }\r\n+  table.visible-md {\r\n+    display: table !important;\r\n+  }\r\n+  tr.visible-md {\r\n+    display: table-row !important;\r\n+  }\r\n+  th.visible-md,\r\n+  td.visible-md {\r\n+    display: table-cell !important;\r\n+  }\r\n+}\r\n+@media (min-width: 992px) and (max-width: 1199px) {\r\n+  .visible-md-block {\r\n+    display: block !important;\r\n+  }\r\n+}\r\n+@media (min-width: 992px) and (max-width: 1199px) {\r\n+  .visible-md-inline {\r\n+    display: inline !important;\r\n+  }\r\n+}\r\n+@media (min-width: 992px) and (max-width: 1199px) {\r\n+  .visible-md-inline-block {\r\n+    display: inline-block !important;\r\n+  }\r\n+}\r\n+@media (min-width: 1200px) {\r\n+  .visible-lg {\r\n+    display: block !important;\r\n+  }\r\n+  table.visible-lg {\r\n+    display: table !important;\r\n+  }\r\n+  tr.visible-lg {\r\n+    display: table-row !important;\r\n+  }\r\n+  th.visible-lg,\r\n+  td.visible-lg {\r\n+    display: table-cell !important;\r\n+  }\r\n+}\r\n+@media (min-width: 1200px) {\r\n+  .visible-lg-block {\r\n+    display: block !important;\r\n+  }\r\n+}\r\n+@media (min-width: 1200px) {\r\n+  .visible-lg-inline {\r\n+    display: inline !important;\r\n+  }\r\n+}\r\n+@media (min-width: 1200px) {\r\n+  .visible-lg-inline-block {\r\n+    display: inline-block !important;\r\n+  }\r\n+}\r\n+@media (max-width: 767px) {\r\n+  .hidden-xs {\r\n+    display: none !important;\r\n+  }\r\n+}\r\n+@media (min-width: 768px) and (max-width: 991px) {\r\n+  .hidden-sm {\r\n+    display: none !important;\r\n+  }\r\n+}\r\n+@media (min-width: 992px) and (max-width: 1199px) {\r\n+  .hidden-md {\r\n+    display: none !important;\r\n+  }\r\n+}\r\n+@media (min-width: 1200px) {\r\n+  .hidden-lg {\r\n+    display: none !important;\r\n+  }\r\n+}\r\n+.visible-print {\r\n+  display: none !important;\r\n+}\r\n+@media print {\r\n+  .visible-print {\r\n+    display: block !important;\r\n+  }\r\n+  table.visible-print {\r\n+    display: table !important;\r\n+  }\r\n+  tr.visible-print {\r\n+    display: table-row !important;\r\n+  }\r\n+  th.visible-print,\r\n+  td.visible-print {\r\n+    display: table-cell !important;\r\n+  }\r\n+}\r\n+.visible-print-block {\r\n+  display: none !important;\r\n+}\r\n+@media print {\r\n+  .visible-print-block {\r\n+    display: block !important;\r\n+  }\r\n+}\r\n+.visible-print-inline {\r\n+  display: none !important;\r\n+}\r\n+@media print {\r\n+  .visible-print-inline {\r\n+    display: inline !important;\r\n+  }\r\n+}\r\n+.visible-print-inline-block {\r\n+  display: none !important;\r\n+}\r\n+@media print {\r\n+  .visible-print-inline-block {\r\n+    display: inline-block !important;\r\n+  }\r\n+}\r\n+@media print {\r\n+  .hidden-print {\r\n+    display: none !important;\r\n+  }\r\n+}\r\n+.wppm_bootstrap .ui-state-default{\r\n+  background-color: #fff !important;\r\n+  color:#000 !important;\r\n+  border: none !important;\r\n+  background : none !important;\r\n+}\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fadd_new1.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fadd_new1.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fadd_new1.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fadd_new1.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1 +1 @@\n-\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg enable-background=\"new 0 0 70 70\" height=\"24px\" id=\"Icons\" version=\"1.1\" fill=\"#ffffff\" viewBox=\"0 0 70 70\" width=\"24px\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cpolygon points=\"53,32.5 37.5,32.5 37.5,17 32.5,17 32.5,32.5 17,32.5 17,37.5 32.5,37.5 32.5,53 37.5,53 37.5,37.5 53,37.5 \"\u002F>\u003C\u002Fsvg>\n+\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg enable-background=\"new 0 0 70 70\" height=\"24px\" id=\"Icons\" version=\"1.1\" fill=\"#ffffff\" viewBox=\"0 0 70 70\" width=\"24px\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cpolygon points=\"53,32.5 37.5,32.5 37.5,17 32.5,17 32.5,32.5 17,32.5 17,37.5 32.5,37.5 32.5,53 37.5,53 37.5,37.5 53,37.5 \"\u002F>\u003C\u002Fsvg>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fadd_new2.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fadd_new2.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fadd_new2.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fadd_new2.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1 +1 @@\n-\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg enable-background=\"new 0 0 70 70\" height=\"16px\" id=\"Icons\" version=\"1.1\" fill=\"#ffffff\" viewBox=\"0 0 70 70\" width=\"16px\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cpolygon points=\"53,32.5 37.5,32.5 37.5,17 32.5,17 32.5,32.5 17,32.5 17,37.5 32.5,37.5 32.5,53 37.5,53 37.5,37.5 53,37.5 \"\u002F>\u003C\u002Fsvg>\n+\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg enable-background=\"new 0 0 70 70\" height=\"16px\" id=\"Icons\" version=\"1.1\" fill=\"#ffffff\" viewBox=\"0 0 70 70\" width=\"16px\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cpolygon points=\"53,32.5 37.5,32.5 37.5,17 32.5,17 32.5,32.5 17,32.5 17,37.5 32.5,37.5 32.5,53 37.5,53 37.5,37.5 53,37.5 \"\u002F>\u003C\u002Fsvg>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fadd_new.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fadd_new.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fadd_new.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fadd_new.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1 +1 @@\n-\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg enable-background=\"new 0 0 70 70\" height=\"16px\" id=\"Icons\" version=\"1.1\" fill=\"#ffffff\" viewBox=\"0 0 70 70\" width=\"16px\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cpolygon points=\"53,32.5 37.5,32.5 37.5,17 32.5,17 32.5,32.5 17,32.5 17,37.5 32.5,37.5 32.5,53 37.5,53 37.5,37.5 53,37.5 \"\u002F>\u003C\u002Fsvg>\n+\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg enable-background=\"new 0 0 70 70\" height=\"16px\" id=\"Icons\" version=\"1.1\" fill=\"#ffffff\" viewBox=\"0 0 70 70\" width=\"16px\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cpolygon points=\"53,32.5 37.5,32.5 37.5,17 32.5,17 32.5,32.5 17,32.5 17,37.5 32.5,37.5 32.5,53 37.5,53 37.5,37.5 53,37.5 \"\u002F>\u003C\u002Fsvg>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Farchive.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Farchive.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Farchive.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Farchive.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,4 +1,4 @@\n-\u003C?xml version=\"1.0\" encoding=\"utf-8\"?>\u003C!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\n-\u003Csvg width=\"25px\" height=\"25px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n-\u003Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM16.7444 8.23889L15.9722 7.30556C15.8222 7.11667 15.5944 7 15.3333 7H8.66667C8.40556 7 8.17778 7.11667 8.02222 7.30556L7.25556 8.23889C7.09444 8.42778 7 8.67778 7 8.94444V15.8889C7 16.5 7.5 17 8.11111 17H15.8889C16.5 17 17 16.5 17 15.8889V8.94444C17 8.67778 16.9056 8.42778 16.7444 8.23889ZM8.8 8.11111H15.2L15.65 8.65H8.35556L8.8 8.11111ZM8.11111 9.77778V15.8889H15.8889V9.77778H8.11111ZM9.22222 11.4444H14.7778V12.5556H9.22222V11.4444Z\" fill=\"#0052CC\"\u002F>\n+\u003C?xml version=\"1.0\" encoding=\"utf-8\"?>\u003C!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\r\n+\u003Csvg width=\"25px\" height=\"25px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\r\n+\u003Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM16.7444 8.23889L15.9722 7.30556C15.8222 7.11667 15.5944 7 15.3333 7H8.66667C8.40556 7 8.17778 7.11667 8.02222 7.30556L7.25556 8.23889C7.09444 8.42778 7 8.67778 7 8.94444V15.8889C7 16.5 7.5 17 8.11111 17H15.8889C16.5 17 17 16.5 17 15.8889V8.94444C17 8.67778 16.9056 8.42778 16.7444 8.23889ZM8.8 8.11111H15.2L15.65 8.65H8.35556L8.8 8.11111ZM8.11111 9.77778V15.8889H15.8889V9.77778H8.11111ZM9.22222 11.4444H14.7778V12.5556H9.22222V11.4444Z\" fill=\"#0052CC\"\u002F>\r\n \u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fcalendar.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fcalendar.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fcalendar.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fcalendar.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg id=\"Layer_1\" style=\"enable-background:new 0 0 64 64;\" width=\"40px\" height=\"40px\" version=\"1.1\" viewBox=\"0 0 64 64\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\n-\t.st0{fill:#ffffff;}\n+\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg id=\"Layer_1\" style=\"enable-background:new 0 0 64 64;\" width=\"40px\" height=\"40px\" version=\"1.1\" viewBox=\"0 0 64 64\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\r\n+\t.st0{fill:#ffffff;}\r\n \u003C\u002Fstyle>\u003Cg>\u003Cg id=\"Icon-Calendar\" transform=\"translate(30.000000, 478.000000)\">\u003Cpath class=\"st0\" d=\"M19.6-424h-35.2c-2.4,0-4.4-2-4.4-4.4v-32.3c0-2.4,1.6-4.4,3.7-4.4h2.2v2.9h-2.2     c-0.3,0-0.7,0.6-0.7,1.5v32.3c0,0.8,0.7,1.5,1.5,1.5h35.2c0.8,0,1.5-0.7,1.5-1.5v-32.3c0-0.9-0.5-1.5-0.7-1.5h-2.2v-2.9h2.2     c2,0,3.7,2,3.7,4.4v32.3C24-426,22-424,19.6-424\" id=\"Fill-133\"\u002F>\u003Cpath class=\"st0\" d=\"M-9.7-459.2c-0.8,0-1.5-0.7-1.5-1.5v-5.9c0-0.8,0.7-1.5,1.5-1.5s1.5,0.7,1.5,1.5v5.9     C-8.3-459.9-8.9-459.2-9.7-459.2\" id=\"Fill-134\"\u002F>\u003Cpath class=\"st0\" d=\"M13.7-459.2c-0.8,0-1.5-0.7-1.5-1.5v-5.9c0-0.8,0.7-1.5,1.5-1.5s1.5,0.7,1.5,1.5v5.9     C15.2-459.9,14.5-459.2,13.7-459.2\" id=\"Fill-135\"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-136\" points=\"-5.3,-465.1 9.3,-465.1 9.3,-462.1 -5.3,-462.1    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-137\" points=\"-17.1,-456.3 21.1,-456.3 21.1,-453.3 -17.1,-453.3    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-138\" points=\"15.2,-450.4 18.1,-450.4 18.1,-447.5 15.2,-447.5    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-139\" points=\"9.3,-450.4 12.3,-450.4 12.3,-447.5 9.3,-447.5    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-140\" points=\"3.5,-450.4 6.4,-450.4 6.4,-447.5 3.5,-447.5    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-141\" points=\"-2.4,-450.4 0.5,-450.4 0.5,-447.5 -2.4,-447.5    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-142\" points=\"-8.3,-450.4 -5.3,-450.4 -5.3,-447.5 -8.3,-447.5    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-143\" points=\"15.2,-444.5 18.1,-444.5 18.1,-441.6 15.2,-441.6    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-144\" points=\"9.3,-444.5 12.3,-444.5 12.3,-441.6 9.3,-441.6    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-145\" points=\"3.5,-444.5 6.4,-444.5 6.4,-441.6 3.5,-441.6    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-146\" points=\"-2.4,-444.5 0.5,-444.5 0.5,-441.6 -2.4,-441.6    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-147\" points=\"-8.3,-444.5 -5.3,-444.5 -5.3,-441.6 -8.3,-441.6    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-148\" points=\"-14.1,-444.5 -11.2,-444.5 -11.2,-441.6 -14.1,-441.6    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-149\" points=\"15.2,-438.7 18.1,-438.7 18.1,-435.7 15.2,-435.7    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-150\" points=\"9.3,-438.7 12.3,-438.7 12.3,-435.7 9.3,-435.7    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-151\" points=\"3.5,-438.7 6.4,-438.7 6.4,-435.7 3.5,-435.7    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-152\" points=\"-2.4,-438.7 0.5,-438.7 0.5,-435.7 -2.4,-435.7    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-153\" points=\"-8.3,-438.7 -5.3,-438.7 -5.3,-435.7 -8.3,-435.7    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-154\" points=\"-14.1,-438.7 -11.2,-438.7 -11.2,-435.7 -14.1,-435.7    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-155\" points=\"9.3,-432.8 12.3,-432.8 12.3,-429.9 9.3,-429.9    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-156\" points=\"3.5,-432.8 6.4,-432.8 6.4,-429.9 3.5,-429.9    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-157\" points=\"-2.4,-432.8 0.5,-432.8 0.5,-429.9 -2.4,-429.9    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-158\" points=\"-8.3,-432.8 -5.3,-432.8 -5.3,-429.9 -8.3,-429.9    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-159\" points=\"-14.1,-432.8 -11.2,-432.8 -11.2,-429.9 -14.1,-429.9    \"\u002F>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fdashboard-icon.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fdashboard-icon.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fdashboard-icon.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fdashboard-icon.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,11 +1,11 @@\n-\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n-\u003Csvg version=\"1.1\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 512 512\" width=\"20\" height=\"20\">\n-\u003Cpath d=\"M0 0 C1.01790619 0.00215515 2.03581238 0.0043103 3.08456421 0.00653076 C17.69363523 0.05620146 32.02575853 0.30709809 46.375 3.3125 C47.34985352 3.51117676 48.32470703 3.70985352 49.32910156 3.91455078 C97.7109774 14.03517194 141.69928269 35.9516877 177.375 70.3125 C178.3640332 71.26068604 178.3640332 71.26068604 179.37304688 72.22802734 C188.86130305 81.37247479 197.6012044 90.66984009 205.375 101.3125 C206.23306152 102.46355017 207.09113451 103.61459177 207.94921875 104.765625 C213.98736829 112.95680614 219.34595521 121.47054105 224.375 130.3125 C224.73948242 130.94430176 225.10396484 131.57610352 225.47949219 132.22705078 C247.08534998 169.97532572 256.85198095 212.74189997 256.6875 255.9375 C256.68534485 256.95540619 256.6831897 257.97331238 256.68096924 259.02206421 C256.63129854 273.63113523 256.38040191 287.96325853 253.375 302.3125 C253.07698486 303.77478027 253.07698486 303.77478027 252.77294922 305.26660156 C242.65232806 353.6484774 220.7358123 397.63678269 186.375 433.3125 C185.74287598 433.97185547 185.11075195 434.63121094 184.45947266 435.31054688 C175.31502521 444.79880305 166.01765991 453.5387044 155.375 461.3125 C154.22394983 462.17056152 153.07290823 463.02863451 151.921875 463.88671875 C143.73224019 469.92427396 135.22961724 475.30707302 126.375 480.3125 C125.66778809 480.7146875 124.96057617 481.116875 124.23193359 481.53125 C101.09654164 494.5566741 75.92537591 503.30551461 49.9375 508.625 C49.21860596 508.77235596 48.49971191 508.91971191 47.7590332 509.0715332 C33.08339502 511.86090125 18.55831162 512.66142619 3.64770508 512.62817383 C0.70811513 512.6250221 -2.2304558 512.64854926 -5.16992188 512.67382812 C-18.54306192 512.71848737 -31.43916711 511.51301542 -44.625 509.3125 C-46.33055054 509.03031616 -46.33055054 509.03031616 -48.07055664 508.74243164 C-91.33802759 500.97044532 -132.38793216 480.98345309 -165.625 452.3125 C-166.37007813 451.67828125 -167.11515625 451.0440625 -167.8828125 450.390625 C-181.38779833 438.57948485 -194.05918743 425.82889772 -204.625 411.3125 C-205.48149066 410.16255169 -206.33826433 409.01281411 -207.1953125 407.86328125 C-213.23534209 399.67315742 -218.61867614 391.16870382 -223.625 382.3125 C-224.0271875 381.60528809 -224.429375 380.89807617 -224.84375 380.16943359 C-237.8691741 357.03404164 -246.61801461 331.86287591 -251.9375 305.875 C-252.08485596 305.15610596 -252.23221191 304.43721191 -252.3840332 303.6965332 C-255.35789088 288.05024391 -255.99800362 272.57681954 -255.9375 256.6875 C-255.93534485 255.66959381 -255.9331897 254.65168762 -255.93096924 253.60293579 C-255.88129854 238.99386477 -255.63040191 224.66174147 -252.625 210.3125 C-252.42632324 209.33764648 -252.22764648 208.36279297 -252.02294922 207.35839844 C-241.90232806 158.9765226 -219.9858123 114.98821731 -185.625 79.3125 C-184.99287598 78.65314453 -184.36075195 77.99378906 -183.70947266 77.31445312 C-174.56502521 67.82619695 -165.26765991 59.0862956 -154.625 51.3125 C-153.47394983 50.45443848 -152.32290823 49.59636549 -151.171875 48.73828125 C-142.98224019 42.70072604 -134.47961724 37.31792698 -125.625 32.3125 C-124.91778809 31.9103125 -124.21057617 31.508125 -123.48193359 31.09375 C-100.34654164 18.0683259 -75.17537591 9.31948539 -49.1875 4 C-48.46860596 3.85264404 -47.74971191 3.70528809 -47.0090332 3.5534668 C-31.36274391 0.57960912 -15.88931954 -0.06050362 0 0 Z \" fill=\"#004CCB\" transform=\"translate(255.625,-0.3125)\"\u002F>\n-\u003Cpath d=\"M0 0 C22.77 0 45.54 0 69 0 C69 23.1 69 46.2 69 70 C61.125 63.25 61.125 63.25 57.59765625 59.6953125 C56.48100586 58.57382813 56.48100586 58.57382813 55.34179688 57.4296875 C54.58962891 56.66914063 53.83746094 55.90859375 53.0625 55.125 C52.28326172 54.34125 51.50402344 53.5575 50.70117188 52.75 C48.79845915 50.83561419 46.89813829 48.91891966 45 47 C41.26830618 48.55757002 38.90932855 50.84897256 36.07289124 53.70005798 C35.59114219 54.18150931 35.10939314 54.66296064 34.61304563 55.15900141 C33.00164384 56.771791 31.39750196 58.39161195 29.79321289 60.01147461 C28.63863369 61.16989256 27.48359799 62.32785567 26.32814026 63.48539734 C23.84147896 65.97838033 21.35795915 68.47443697 18.87678719 70.97288322 C14.95299119 74.92371714 11.02158449 78.86691775 7.088974 82.80897522 C-1.96889822 91.89094205 -11.01674036 100.98288017 -20.06450653 110.07491302 C-28.35434364 118.40510865 -36.64627896 126.73318625 -44.94635016 135.05318648 C-48.85495043 138.97175051 -52.75862159 142.8951401 -56.65859401 146.8222903 C-59.08667601 149.26529773 -61.51890041 151.70414853 -63.95226479 154.14189339 C-65.07912308 155.27249386 -66.204252 156.40482105 -67.32750702 157.53900146 C-68.86237195 159.08832184 -70.40332572 160.63132673 -71.94590759 162.17295837 C-72.80627593 163.03776793 -73.66664427 163.9025775 -74.55308437 164.79359341 C-78.57301351 168.41840092 -81.85412739 170.45121679 -87.3125 170.625 C-88.19550781 170.67914063 -89.07851562 170.73328125 -89.98828125 170.7890625 C-94.78987632 169.53105705 -97.50486056 166.42629838 -101 163 C-101.51462799 162.49601685 -102.02925598 161.99203369 -102.55947876 161.47277832 C-106.90700092 157.20306434 -111.20565676 152.88558064 -115.5 148.5625 C-116.81226585 147.24520941 -118.12476395 145.92815014 -119.4375 144.61132812 C-122.62768506 141.4102139 -125.81470651 138.20598135 -129 135 C-132.60060976 136.52184075 -134.86925304 138.64341354 -137.59741211 141.41796875 C-138.50192612 142.33231689 -139.40644012 143.24666504 -140.33836365 144.1887207 C-140.81710875 144.67732574 -141.29585384 145.16593079 -141.78910637 145.66934204 C-143.29371859 147.20420406 -144.80498588 148.73221782 -146.31825256 150.25854492 C-150.61816477 154.59813911 -154.9052403 158.95033617 -159.18920898 163.30566406 C-161.81345772 165.97268762 -164.44502531 168.63231388 -167.08099556 171.28775024 C-168.08182656 172.29912888 -169.07973295 173.31341053 -170.07459831 174.33065796 C-171.46722504 175.75456856 -172.87001221 177.16852029 -174.27319336 178.58203125 C-175.06721054 179.38874268 -175.86122772 180.1954541 -176.67930603 181.02661133 C-180.12561004 183.95715597 -182.97424349 184.88809929 -187.4375 185.375 C-192.52689174 184.83927455 -195.47058172 182.74037253 -198.8125 178.9375 C-201.24454016 174.96943448 -201.86655152 170.53945795 -201 166 C-198.26161378 161.46012365 -195.01929601 157.73610231 -191.26928711 154.02636719 C-190.70781479 153.46299652 -190.14634247 152.89962585 -189.56785583 152.31918335 C-187.72585616 150.47350345 -185.87679905 148.63508151 -184.02734375 146.796875 C-182.7395082 145.51023264 -181.45204328 144.2232192 -180.16493225 142.93585205 C-177.47396038 140.24644014 -174.77967472 137.56040901 -172.08276367 134.87695312 C-168.62530267 131.43652395 -165.17450368 127.98950595 -161.72592831 124.54017258 C-159.07112436 121.88564038 -156.41372365 119.23372096 -153.75543404 116.58267975 C-152.48177888 115.31220645 -151.2087282 114.04112686 -149.93629265 112.76943207 C-148.16046847 110.99577413 -146.38139173 109.22544669 -144.60131836 107.45605469 C-144.07604553 106.93032867 -143.55077271 106.40460266 -143.00958252 105.86294556 C-138.96112482 101.84998925 -136.4707744 99.70498996 -130.6875 99.625 C-129.76324219 99.59664063 -128.83898437 99.56828125 -127.88671875 99.5390625 C-121.05764092 100.62949712 -116.28070213 106.44984424 -111.6328125 111.171875 C-110.95322479 111.8542926 -110.27363708 112.53671021 -109.57345581 113.23980713 C-107.41920055 115.40519349 -105.27203208 117.57745386 -103.125 119.75 C-101.65931784 121.22572108 -100.19317671 122.70098646 -98.7265625 124.17578125 C-95.14570834 127.77860194 -91.57119036 131.38760116 -88 135 C-81.8700851 129.92889066 -76.26943412 124.40478781 -70.65844727 118.77197266 C-69.63301227 117.74625511 -68.60735609 116.72075867 -67.58149719 115.69546509 C-64.81529424 112.92954746 -62.0521718 110.16057129 -59.28961682 107.39101076 C-56.39531417 104.49043029 -53.49815382 101.59270692 -50.6013031 98.69467163 C-45.12421717 93.2144854 -39.649684 87.73175645 -34.17607683 82.24809587 C-27.94101754 76.00183495 -21.70309726 69.75843453 -15.4649421 63.5152657 C-2.64012208 50.68001077 10.18112366 37.84119089 23 25 C22.04756438 23.88133516 21.09405897 22.76358108 20.1401062 21.64620972 C19.34380452 20.71238873 19.34380452 20.71238873 18.53141594 19.75970268 C16.67218822 17.62332162 14.7147872 15.61787248 12.6953125 13.6328125 C11.94765625 12.89289063 11.2 12.15296875 10.4296875 11.390625 C9.66914063 10.64296875 8.90859375 9.8953125 8.125 9.125 C6.58369603 7.60904642 5.04450422 6.09094124 3.5078125 4.5703125 C2.83379395 3.90789551 2.15977539 3.24547852 1.46533203 2.56298828 C0 1 0 1 0 0 Z \" fill=\"#FCFCFE\" transform=\"translate(322,121)\"\u002F>\n-\u003Cpath d=\"M0 0 C9.24 0 18.48 0 28 0 C28 56.43 28 112.86 28 171 C18.43 171 8.86 171 -1 171 C-1.02311673 148.85202537 -1.04097806 126.70405363 -1.05181217 104.55606937 C-1.05697561 94.27313388 -1.06401922 83.990206 -1.07543945 73.70727539 C-1.08538483 64.7480805 -1.09185308 55.78889113 -1.09408849 46.82969087 C-1.09539585 42.08279929 -1.09848327 37.33592348 -1.10573006 32.58903694 C-1.11248797 28.12646974 -1.11461743 23.66392491 -1.11310768 19.20135307 C-1.11338411 17.55857599 -1.11539059 15.91579819 -1.11920547 14.27302551 C-1.12413916 12.04002629 -1.12299951 9.80711291 -1.12025452 7.57411194 C-1.12117631 6.32139527 -1.1220981 5.06867861 -1.12304783 3.77800083 C-1 1 -1 1 0 0 Z \" fill=\"#F9FAFD\" transform=\"translate(349,220)\"\u002F>\n-\u003Cpath d=\"M0 0 C9.24 0 18.48 0 28 0 C28 46.86 28 93.72 28 142 C18.76 142 9.52 142 0 142 C0 95.14 0 48.28 0 0 Z \" fill=\"#FFFFFF\" transform=\"translate(306,249)\"\u002F>\n-\u003Cpath d=\"M0 0 C9.57 0 19.14 0 29 0 C29 33 29 66 29 100 C19.43 100 9.86 100 0 100 C0 67 0 34 0 0 Z \" fill=\"#F8FAFD\" transform=\"translate(263,291)\"\u002F>\n-\u003Cpath d=\"M0 0 C9.24 0 18.48 0 28 0 C28 32.67 28 65.34 28 99 C18.76 99 9.52 99 0 99 C0 66.33 0 33.66 0 0 Z \" fill=\"#FFFFFF\" transform=\"translate(178,292)\"\u002F>\n-\u003Cpath d=\"M0 0 C9.57 0 19.14 0 29 0 C29 23.43 29 46.86 29 71 C19.43 71 9.86 71 0 71 C0 47.57 0 24.14 0 0 Z \" fill=\"#FAFCFE\" transform=\"translate(220,320)\"\u002F>\n-\u003Cpath d=\"M0 0 C9.57 0 19.14 0 29 0 C29 23.43 29 46.86 29 71 C19.43 71 9.86 71 0 71 C0 47.57 0 24.14 0 0 Z \" fill=\"#FAFCFE\" transform=\"translate(135,320)\"\u002F>\n-\u003C\u002Fsvg>\n+\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n+\u003Csvg version=\"1.1\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 512 512\" width=\"20\" height=\"20\">\r\n+\u003Cpath d=\"M0 0 C1.01790619 0.00215515 2.03581238 0.0043103 3.08456421 0.00653076 C17.69363523 0.05620146 32.02575853 0.30709809 46.375 3.3125 C47.34985352 3.51117676 48.32470703 3.70985352 49.32910156 3.91455078 C97.7109774 14.03517194 141.69928269 35.9516877 177.375 70.3125 C178.3640332 71.26068604 178.3640332 71.26068604 179.37304688 72.22802734 C188.86130305 81.37247479 197.6012044 90.66984009 205.375 101.3125 C206.23306152 102.46355017 207.09113451 103.61459177 207.94921875 104.765625 C213.98736829 112.95680614 219.34595521 121.47054105 224.375 130.3125 C224.73948242 130.94430176 225.10396484 131.57610352 225.47949219 132.22705078 C247.08534998 169.97532572 256.85198095 212.74189997 256.6875 255.9375 C256.68534485 256.95540619 256.6831897 257.97331238 256.68096924 259.02206421 C256.63129854 273.63113523 256.38040191 287.96325853 253.375 302.3125 C253.07698486 303.77478027 253.07698486 303.77478027 252.77294922 305.26660156 C242.65232806 353.6484774 220.7358123 397.63678269 186.375 433.3125 C185.74287598 433.97185547 185.11075195 434.63121094 184.45947266 435.31054688 C175.31502521 444.79880305 166.01765991 453.5387044 155.375 461.3125 C154.22394983 462.17056152 153.07290823 463.02863451 151.921875 463.88671875 C143.73224019 469.92427396 135.22961724 475.30707302 126.375 480.3125 C125.66778809 480.7146875 124.96057617 481.116875 124.23193359 481.53125 C101.09654164 494.5566741 75.92537591 503.30551461 49.9375 508.625 C49.21860596 508.77235596 48.49971191 508.91971191 47.7590332 509.0715332 C33.08339502 511.86090125 18.55831162 512.66142619 3.64770508 512.62817383 C0.70811513 512.6250221 -2.2304558 512.64854926 -5.16992188 512.67382812 C-18.54306192 512.71848737 -31.43916711 511.51301542 -44.625 509.3125 C-46.33055054 509.03031616 -46.33055054 509.03031616 -48.07055664 508.74243164 C-91.33802759 500.97044532 -132.38793216 480.98345309 -165.625 452.3125 C-166.37007813 451.67828125 -167.11515625 451.0440625 -167.8828125 450.390625 C-181.38779833 438.57948485 -194.05918743 425.82889772 -204.625 411.3125 C-205.48149066 410.16255169 -206.33826433 409.01281411 -207.1953125 407.86328125 C-213.23534209 399.67315742 -218.61867614 391.16870382 -223.625 382.3125 C-224.0271875 381.60528809 -224.429375 380.89807617 -224.84375 380.16943359 C-237.8691741 357.03404164 -246.61801461 331.86287591 -251.9375 305.875 C-252.08485596 305.15610596 -252.23221191 304.43721191 -252.3840332 303.6965332 C-255.35789088 288.05024391 -255.99800362 272.57681954 -255.9375 256.6875 C-255.93534485 255.66959381 -255.9331897 254.65168762 -255.93096924 253.60293579 C-255.88129854 238.99386477 -255.63040191 224.66174147 -252.625 210.3125 C-252.42632324 209.33764648 -252.22764648 208.36279297 -252.02294922 207.35839844 C-241.90232806 158.9765226 -219.9858123 114.98821731 -185.625 79.3125 C-184.99287598 78.65314453 -184.36075195 77.99378906 -183.70947266 77.31445312 C-174.56502521 67.82619695 -165.26765991 59.0862956 -154.625 51.3125 C-153.47394983 50.45443848 -152.32290823 49.59636549 -151.171875 48.73828125 C-142.98224019 42.70072604 -134.47961724 37.31792698 -125.625 32.3125 C-124.91778809 31.9103125 -124.21057617 31.508125 -123.48193359 31.09375 C-100.34654164 18.0683259 -75.17537591 9.31948539 -49.1875 4 C-48.46860596 3.85264404 -47.74971191 3.70528809 -47.0090332 3.5534668 C-31.36274391 0.57960912 -15.88931954 -0.06050362 0 0 Z \" fill=\"#004CCB\" transform=\"translate(255.625,-0.3125)\"\u002F>\r\n+\u003Cpath d=\"M0 0 C22.77 0 45.54 0 69 0 C69 23.1 69 46.2 69 70 C61.125 63.25 61.125 63.25 57.59765625 59.6953125 C56.48100586 58.57382813 56.48100586 58.57382813 55.34179688 57.4296875 C54.58962891 56.66914063 53.83746094 55.90859375 53.0625 55.125 C52.28326172 54.34125 51.50402344 53.5575 50.70117188 52.75 C48.79845915 50.83561419 46.89813829 48.91891966 45 47 C41.26830618 48.55757002 38.90932855 50.84897256 36.07289124 53.70005798 C35.59114219 54.18150931 35.10939314 54.66296064 34.61304563 55.15900141 C33.00164384 56.771791 31.39750196 58.39161195 29.79321289 60.01147461 C28.63863369 61.16989256 27.48359799 62.32785567 26.32814026 63.48539734 C23.84147896 65.97838033 21.35795915 68.47443697 18.87678719 70.97288322 C14.95299119 74.92371714 11.02158449 78.86691775 7.088974 82.80897522 C-1.96889822 91.89094205 -11.01674036 100.98288017 -20.06450653 110.07491302 C-28.35434364 118.40510865 -36.64627896 126.73318625 -44.94635016 135.05318648 C-48.85495043 138.97175051 -52.75862159 142.8951401 -56.65859401 146.8222903 C-59.08667601 149.26529773 -61.51890041 151.70414853 -63.95226479 154.14189339 C-65.07912308 155.27249386 -66.204252 156.40482105 -67.32750702 157.53900146 C-68.86237195 159.08832184 -70.40332572 160.63132673 -71.94590759 162.17295837 C-72.80627593 163.03776793 -73.66664427 163.9025775 -74.55308437 164.79359341 C-78.57301351 168.41840092 -81.85412739 170.45121679 -87.3125 170.625 C-88.19550781 170.67914063 -89.07851562 170.73328125 -89.98828125 170.7890625 C-94.78987632 169.53105705 -97.50486056 166.42629838 -101 163 C-101.51462799 162.49601685 -102.02925598 161.99203369 -102.55947876 161.47277832 C-106.90700092 157.20306434 -111.20565676 152.88558064 -115.5 148.5625 C-116.81226585 147.24520941 -118.12476395 145.92815014 -119.4375 144.61132812 C-122.62768506 141.4102139 -125.81470651 138.20598135 -129 135 C-132.60060976 136.52184075 -134.86925304 138.64341354 -137.59741211 141.41796875 C-138.50192612 142.33231689 -139.40644012 143.24666504 -140.33836365 144.1887207 C-140.81710875 144.67732574 -141.29585384 145.16593079 -141.78910637 145.66934204 C-143.29371859 147.20420406 -144.80498588 148.73221782 -146.31825256 150.25854492 C-150.61816477 154.59813911 -154.9052403 158.95033617 -159.18920898 163.30566406 C-161.81345772 165.97268762 -164.44502531 168.63231388 -167.08099556 171.28775024 C-168.08182656 172.29912888 -169.07973295 173.31341053 -170.07459831 174.33065796 C-171.46722504 175.75456856 -172.87001221 177.16852029 -174.27319336 178.58203125 C-175.06721054 179.38874268 -175.86122772 180.1954541 -176.67930603 181.02661133 C-180.12561004 183.95715597 -182.97424349 184.88809929 -187.4375 185.375 C-192.52689174 184.83927455 -195.47058172 182.74037253 -198.8125 178.9375 C-201.24454016 174.96943448 -201.86655152 170.53945795 -201 166 C-198.26161378 161.46012365 -195.01929601 157.73610231 -191.26928711 154.02636719 C-190.70781479 153.46299652 -190.14634247 152.89962585 -189.56785583 152.31918335 C-187.72585616 150.47350345 -185.87679905 148.63508151 -184.02734375 146.796875 C-182.7395082 145.51023264 -181.45204328 144.2232192 -180.16493225 142.93585205 C-177.47396038 140.24644014 -174.77967472 137.56040901 -172.08276367 134.87695312 C-168.62530267 131.43652395 -165.17450368 127.98950595 -161.72592831 124.54017258 C-159.07112436 121.88564038 -156.41372365 119.23372096 -153.75543404 116.58267975 C-152.48177888 115.31220645 -151.2087282 114.04112686 -149.93629265 112.76943207 C-148.16046847 110.99577413 -146.38139173 109.22544669 -144.60131836 107.45605469 C-144.07604553 106.93032867 -143.55077271 106.40460266 -143.00958252 105.86294556 C-138.96112482 101.84998925 -136.4707744 99.70498996 -130.6875 99.625 C-129.76324219 99.59664063 -128.83898437 99.56828125 -127.88671875 99.5390625 C-121.05764092 100.62949712 -116.28070213 106.44984424 -111.6328125 111.171875 C-110.95322479 111.8542926 -110.27363708 112.53671021 -109.57345581 113.23980713 C-107.41920055 115.40519349 -105.27203208 117.57745386 -103.125 119.75 C-101.65931784 121.22572108 -100.19317671 122.70098646 -98.7265625 124.17578125 C-95.14570834 127.77860194 -91.57119036 131.38760116 -88 135 C-81.8700851 129.92889066 -76.26943412 124.40478781 -70.65844727 118.77197266 C-69.63301227 117.74625511 -68.60735609 116.72075867 -67.58149719 115.69546509 C-64.81529424 112.92954746 -62.0521718 110.16057129 -59.28961682 107.39101076 C-56.39531417 104.49043029 -53.49815382 101.59270692 -50.6013031 98.69467163 C-45.12421717 93.2144854 -39.649684 87.73175645 -34.17607683 82.24809587 C-27.94101754 76.00183495 -21.70309726 69.75843453 -15.4649421 63.5152657 C-2.64012208 50.68001077 10.18112366 37.84119089 23 25 C22.04756438 23.88133516 21.09405897 22.76358108 20.1401062 21.64620972 C19.34380452 20.71238873 19.34380452 20.71238873 18.53141594 19.75970268 C16.67218822 17.62332162 14.7147872 15.61787248 12.6953125 13.6328125 C11.94765625 12.89289063 11.2 12.15296875 10.4296875 11.390625 C9.66914063 10.64296875 8.90859375 9.8953125 8.125 9.125 C6.58369603 7.60904642 5.04450422 6.09094124 3.5078125 4.5703125 C2.83379395 3.90789551 2.15977539 3.24547852 1.46533203 2.56298828 C0 1 0 1 0 0 Z \" fill=\"#FCFCFE\" transform=\"translate(322,121)\"\u002F>\r\n+\u003Cpath d=\"M0 0 C9.24 0 18.48 0 28 0 C28 56.43 28 112.86 28 171 C18.43 171 8.86 171 -1 171 C-1.02311673 148.85202537 -1.04097806 126.70405363 -1.05181217 104.55606937 C-1.05697561 94.27313388 -1.06401922 83.990206 -1.07543945 73.70727539 C-1.08538483 64.7480805 -1.09185308 55.78889113 -1.09408849 46.82969087 C-1.09539585 42.08279929 -1.09848327 37.33592348 -1.10573006 32.58903694 C-1.11248797 28.12646974 -1.11461743 23.66392491 -1.11310768 19.20135307 C-1.11338411 17.55857599 -1.11539059 15.91579819 -1.11920547 14.27302551 C-1.12413916 12.04002629 -1.12299951 9.80711291 -1.12025452 7.57411194 C-1.12117631 6.32139527 -1.1220981 5.06867861 -1.12304783 3.77800083 C-1 1 -1 1 0 0 Z \" fill=\"#F9FAFD\" transform=\"translate(349,220)\"\u002F>\r\n+\u003Cpath d=\"M0 0 C9.24 0 18.48 0 28 0 C28 46.86 28 93.72 28 142 C18.76 142 9.52 142 0 142 C0 95.14 0 48.28 0 0 Z \" fill=\"#FFFFFF\" transform=\"translate(306,249)\"\u002F>\r\n+\u003Cpath d=\"M0 0 C9.57 0 19.14 0 29 0 C29 33 29 66 29 100 C19.43 100 9.86 100 0 100 C0 67 0 34 0 0 Z \" fill=\"#F8FAFD\" transform=\"translate(263,291)\"\u002F>\r\n+\u003Cpath d=\"M0 0 C9.24 0 18.48 0 28 0 C28 32.67 28 65.34 28 99 C18.76 99 9.52 99 0 99 C0 66.33 0 33.66 0 0 Z \" fill=\"#FFFFFF\" transform=\"translate(178,292)\"\u002F>\r\n+\u003Cpath d=\"M0 0 C9.57 0 19.14 0 29 0 C29 23.43 29 46.86 29 71 C19.43 71 9.86 71 0 71 C0 47.57 0 24.14 0 0 Z \" fill=\"#FAFCFE\" transform=\"translate(220,320)\"\u002F>\r\n+\u003Cpath d=\"M0 0 C9.57 0 19.14 0 29 0 C29 23.43 29 46.86 29 71 C19.43 71 9.86 71 0 71 C0 47.57 0 24.14 0 0 Z \" fill=\"#FAFCFE\" transform=\"translate(135,320)\"\u002F>\r\n+\u003C\u002Fsvg>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fdashboard.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fdashboard.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fdashboard.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fdashboard.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,7 +1,7 @@\n-\u003Csvg viewBox=\"0 0 32 32\" width=\"14px\" height=\"14px\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n-  \u003Cpath fill=\"#ffffff\" d=\"m19 19.5 5.74-5.66a1.07 1.07 0 0 0 -.74-1.84h-3.2a1.07 1.07 0 0 0 0 2.13h.61l-3.89 3.87-3.67-3.41a2.1 2.1 0 0 0 -1.55-.59 2.15 2.15 0 0 0 -1.49.71l-3.3 3.64a1.07 1.07 0 0 0 1.59 1.42l3.3-3.64 3.67 3.41a2.13 2.13 0 0 0 2.93-.04z\">\u003C\u002Fpath>\n-  \u003Cpath fill=\"#ffffff\" d=\"m30.44 1.56a5.29 5.29 0 0 0 -3.77-1.56h-21.34a5.33 5.33 0 0 0 -5.33 5.33v21.34a5.33 5.33 0 0 0 5.33 5.33h21.34a5.33 5.33 0 0 0 5.33-5.33v-21.34a5.29 5.29 0 0 0 -1.56-3.77zm-.57 25.1a3.2 3.2 0 0 1 -3.2 3.2h-21.34a3.2 3.2 0 0 1 -3.2-3.2v-21.33a3.2 3.2 0 0 1 3.2-3.2h21.34a3.2 3.2 0 0 1 3.2 3.2z\">\u003C\u002Fpath>\n-  \u003Cpath fill=\"#ffffff\" d=\"m7.47 6.91h3.2a1.07 1.07 0 0 0 0-2.13h-3.2a1.07 1.07 0 1 0 0 2.13z\">\u003C\u002Fpath>\n-  \u003Cpath fill=\"#ffffff\" d=\"m9.6 23.47h-2.13a1.07 1.07 0 1 0 0 2.13h2.13a1.07 1.07 0 1 0 0-2.13z\">\u003C\u002Fpath>\n-  \u003Cpath fill=\"#ffffff\" d=\"m24.53 23.47h-10.66a1.07 1.07 0 1 0 0 2.13h10.66a1.07 1.07 0 1 0 0-2.13z\">\u003C\u002Fpath>\n+\u003Csvg viewBox=\"0 0 32 32\" width=\"14px\" height=\"14px\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\r\n+  \u003Cpath fill=\"#ffffff\" d=\"m19 19.5 5.74-5.66a1.07 1.07 0 0 0 -.74-1.84h-3.2a1.07 1.07 0 0 0 0 2.13h.61l-3.89 3.87-3.67-3.41a2.1 2.1 0 0 0 -1.55-.59 2.15 2.15 0 0 0 -1.49.71l-3.3 3.64a1.07 1.07 0 0 0 1.59 1.42l3.3-3.64 3.67 3.41a2.13 2.13 0 0 0 2.93-.04z\">\u003C\u002Fpath>\r\n+  \u003Cpath fill=\"#ffffff\" d=\"m30.44 1.56a5.29 5.29 0 0 0 -3.77-1.56h-21.34a5.33 5.33 0 0 0 -5.33 5.33v21.34a5.33 5.33 0 0 0 5.33 5.33h21.34a5.33 5.33 0 0 0 5.33-5.33v-21.34a5.29 5.29 0 0 0 -1.56-3.77zm-.57 25.1a3.2 3.2 0 0 1 -3.2 3.2h-21.34a3.2 3.2 0 0 1 -3.2-3.2v-21.33a3.2 3.2 0 0 1 3.2-3.2h21.34a3.2 3.2 0 0 1 3.2 3.2z\">\u003C\u002Fpath>\r\n+  \u003Cpath fill=\"#ffffff\" d=\"m7.47 6.91h3.2a1.07 1.07 0 0 0 0-2.13h-3.2a1.07 1.07 0 1 0 0 2.13z\">\u003C\u002Fpath>\r\n+  \u003Cpath fill=\"#ffffff\" d=\"m9.6 23.47h-2.13a1.07 1.07 0 1 0 0 2.13h2.13a1.07 1.07 0 1 0 0-2.13z\">\u003C\u002Fpath>\r\n+  \u003Cpath fill=\"#ffffff\" d=\"m24.53 23.47h-10.66a1.07 1.07 0 1 0 0 2.13h10.66a1.07 1.07 0 1 0 0-2.13z\">\u003C\u002Fpath>\r\n \u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fdeletebasket.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fdeletebasket.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fdeletebasket.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fdeletebasket.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg id=\"Layer_1\" width=\"20px\" height=\"20px\" style=\"enable-background:new 0 0 64 64;\" version=\"1.1\" viewBox=\"0 0 64 64\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\n-\t.st0{fill:#134563;}\n+\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg id=\"Layer_1\" width=\"20px\" height=\"20px\" style=\"enable-background:new 0 0 64 64;\" version=\"1.1\" viewBox=\"0 0 64 64\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\r\n+\t.st0{fill:#134563;}\r\n \u003C\u002Fstyle>\u003Cg>\u003Cg id=\"Icon-Trash\" transform=\"translate(232.000000, 228.000000)\">\u003Cpolygon class=\"st0\" id=\"Fill-6\" points=\"-207.5,-205.1 -204.5,-205.1 -204.5,-181.1 -207.5,-181.1    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-7\" points=\"-201.5,-205.1 -198.5,-205.1 -198.5,-181.1 -201.5,-181.1    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-8\" points=\"-195.5,-205.1 -192.5,-205.1 -192.5,-181.1 -195.5,-181.1    \"\u002F>\u003Cpolygon class=\"st0\" id=\"Fill-9\" points=\"-219.5,-214.1 -180.5,-214.1 -180.5,-211.1 -219.5,-211.1    \"\u002F>\u003Cpath class=\"st0\" d=\"M-192.6-212.6h-2.8v-3c0-0.9-0.7-1.6-1.6-1.6h-6c-0.9,0-1.6,0.7-1.6,1.6v3h-2.8v-3     c0-2.4,2-4.4,4.4-4.4h6c2.4,0,4.4,2,4.4,4.4V-212.6\" id=\"Fill-10\"\u002F>\u003Cpath class=\"st0\" d=\"M-191-172.1h-18c-2.4,0-4.5-2-4.7-4.4l-2.8-36l3-0.2l2.8,36c0.1,0.9,0.9,1.6,1.7,1.6h18     c0.9,0,1.7-0.8,1.7-1.6l2.8-36l3,0.2l-2.8,36C-186.5-174-188.6-172.1-191-172.1\" id=\"Fill-11\"\u002F>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Femail-piping.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Femail-piping.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Femail-piping.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Femail-piping.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,2 +1,2 @@\n-\u003C?xml version=\"1.0\" encoding=\"utf-8\"?>\u003C!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\n+\u003C?xml version=\"1.0\" encoding=\"utf-8\"?>\u003C!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\r\n \u003Csvg fill=\"#ffffff\" width=\"40px\" height=\"40px\" viewBox=\"0 0 24 24\" id=\"email-open\" data-name=\"Flat Line\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" class=\"icon flat-line\">\u003Cpath id=\"secondary\" d=\"M12.55,14.63,19.45,10a1,1,0,0,1,1.55.83V20a1,1,0,0,1-1,1H4a1,1,0,0,1-1-1V10.87A1,1,0,0,1,4.55,10l6.9,4.59A1,1,0,0,0,12.55,14.63Z\" style=\"fill:#ffffff; stroke-width: 1;\">\u003C\u002Fpath>\u003Cpath id=\"primary\" d=\"M6,11V3H18v8l-5.45,3.63a1,1,0,0,1-1.1,0Zm5.45,3.63L4.55,10A1,1,0,0,0,3,10.87V20a1,1,0,0,0,1,1H20a1,1,0,0,0,1-1V10.87A1,1,0,0,0,19.45,10l-6.9,4.59A1,1,0,0,1,11.45,14.63Z\" style=\"fill: #ffffff; stroke: rgb(85 85 85); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1;\">\u003C\u002Fpath>\u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Ficonfinder_cancel_1894664.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Ficonfinder_cancel_1894664.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Ficonfinder_cancel_1894664.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Ficonfinder_cancel_1894664.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,7 +1,7 @@\n-\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg height=\"512px\" style=\"enable-background:new 0 0 512 512;\" version=\"1.1\" viewBox=\"0 0 512 512\" width=\"512px\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\n-\u003C![CDATA[\n-\t.st0{display:inline;}\n-\t.st1{fill:none;stroke:#000000;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\n-\t.st2{display:none;}\n-]]>\n+\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg height=\"512px\" style=\"enable-background:new 0 0 512 512;\" version=\"1.1\" viewBox=\"0 0 512 512\" width=\"512px\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\r\n+\u003C![CDATA[\r\n+\t.st0{display:inline;}\r\n+\t.st1{fill:none;stroke:#000000;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\r\n+\t.st2{display:none;}\r\n+]]>\r\n \u003C\u002Fstyle>\u003Cg class=\"st2\" id=\"layer\">\u003Cg class=\"st0\">\u003Cline fill=\"#FFFFFF\" class=\"st1\" x1=\"169.449\" x2=\"342.551\" y1=\"169.449\" y2=\"342.551\"\u002F>\u003Cline class=\"st1\" x1=\"342.551\" x2=\"169.449\" y1=\"169.449\" y2=\"342.551\"\u002F>\u003C\u002Fg>\u003Cg class=\"st0\">\u003Cpath d=\"M256,59c26.602,0,52.399,5.207,76.677,15.475c23.456,9.921,44.526,24.128,62.623,42.225    c18.098,18.098,32.304,39.167,42.226,62.624C447.794,203.601,453,229.398,453,256c0,26.602-5.206,52.399-15.475,76.677    c-9.922,23.456-24.128,44.526-42.226,62.623c-18.097,18.098-39.167,32.304-62.623,42.226C308.399,447.794,282.602,453,256,453    c-26.602,0-52.399-5.206-76.676-15.475c-23.457-9.922-44.526-24.128-62.624-42.226c-18.097-18.097-32.304-39.167-42.225-62.623    C64.207,308.399,59,282.602,59,256c0-26.602,5.207-52.399,15.475-76.676c9.921-23.457,24.128-44.526,42.225-62.624    c18.098-18.097,39.167-32.304,62.624-42.225C203.601,64.207,229.398,59,256,59 M256,43C138.363,43,43,138.363,43,256    s95.363,213,213,213s213-95.363,213-213S373.637,43,256,43L256,43z\"\u002F>\u003C\u002Fg>\u003C\u002Fg>\u003Cg id=\"expanded\">\u003Cg>\u003Cpath d=\"M267.314,256l80.894-80.894c3.124-3.124,3.124-8.189,0-11.313c-3.125-3.124-8.189-3.124-11.314,0L256,244.686    l-80.894-80.894c-3.124-3.124-8.189-3.124-11.313,0c-3.125,3.124-3.125,8.189,0,11.313L244.686,256l-80.894,80.894    c-3.125,3.125-3.125,8.189,0,11.314c1.562,1.562,3.609,2.343,5.657,2.343s4.095-0.781,5.657-2.343L256,267.314l80.894,80.894    c1.563,1.562,3.609,2.343,5.657,2.343s4.095-0.781,5.657-2.343c3.124-3.125,3.124-8.189,0-11.314L267.314,256z\"\u002F>\u003Cpath d=\"M256,59c26.602,0,52.399,5.207,76.677,15.475c23.456,9.921,44.526,24.128,62.623,42.225    c18.098,18.098,32.304,39.167,42.226,62.624C447.794,203.601,453,229.398,453,256c0,26.602-5.206,52.399-15.475,76.677    c-9.922,23.456-24.128,44.526-42.226,62.623c-18.097,18.098-39.167,32.304-62.623,42.226C308.399,447.794,282.602,453,256,453    c-26.602,0-52.399-5.206-76.676-15.475c-23.457-9.922-44.526-24.128-62.624-42.226c-18.097-18.097-32.304-39.167-42.225-62.623    C64.207,308.399,59,282.602,59,256c0-26.602,5.207-52.399,15.475-76.676c9.921-23.457,24.128-44.526,42.225-62.624    c18.098-18.097,39.167-32.304,62.624-42.225C203.601,64.207,229.398,59,256,59 M256,43C138.363,43,43,138.363,43,256    s95.363,213,213,213s213-95.363,213-213S373.637,43,256,43L256,43z\"\u002F>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fkanban-svg.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fkanban-svg.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fkanban-svg.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fkanban-svg.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,5 +1,5 @@\n-\u003C?xml version=\"1.0\" encoding=\"utf-8\"?>\u003C!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\n-\u003Csvg width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n-\u003Cpath d=\"M9.6 4H4.4C3.6268 4 3 4.6268 3 5.4V19.6C3 20.3732 3.6268 21 4.4 21H9.6C10.3732 21 11 20.3732 11 19.6V5.4C11 4.6268 10.3732 4 9.6 4Z\" stroke=\"#ffffff\" stroke-width=\"1.1\" stroke-linecap=\"round\"\u002F>\n-\u003Cpath d=\"M19.6 4H15.4C14.6268 4 14 4.6268 14 5.4V14.6C14 15.3732 14.6268 16 15.4 16H19.6C20.3732 16 21 15.3732 21 14.6V5.4C21 4.6268 20.3732 4 19.6 4Z\" stroke=\"#ffffff\" stroke-width=\"1.1\" stroke-linecap=\"round\"\u002F>\n+\u003C?xml version=\"1.0\" encoding=\"utf-8\"?>\u003C!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\r\n+\u003Csvg width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\r\n+\u003Cpath d=\"M9.6 4H4.4C3.6268 4 3 4.6268 3 5.4V19.6C3 20.3732 3.6268 21 4.4 21H9.6C10.3732 21 11 20.3732 11 19.6V5.4C11 4.6268 10.3732 4 9.6 4Z\" stroke=\"#ffffff\" stroke-width=\"1.1\" stroke-linecap=\"round\"\u002F>\r\n+\u003Cpath d=\"M19.6 4H15.4C14.6268 4 14 4.6268 14 5.4V14.6C14 15.3732 14.6268 16 15.4 16H19.6C20.3732 16 21 15.3732 21 14.6V5.4C21 4.6268 20.3732 4 19.6 4Z\" stroke=\"#ffffff\" stroke-width=\"1.1\" stroke-linecap=\"round\"\u002F>\r\n \u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Flist.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Flist.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Flist.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Flist.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,4 +1,4 @@\n-\u003C?xml version=\"1.0\" ?>\u003Csvg id=\"Layer_1\" width=\"20px\" height=\"20px\" style=\"enable-background:new 0 0 128 128;\" version=\"1.1\" viewBox=\"0 0 128 128\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\n-\t.st0{fill:#0052CC;}\n-\t.st1{fill:#FFFFFF;}\n+\u003C?xml version=\"1.0\" ?>\u003Csvg id=\"Layer_1\" width=\"20px\" height=\"20px\" style=\"enable-background:new 0 0 128 128;\" version=\"1.1\" viewBox=\"0 0 128 128\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\r\n+\t.st0{fill:#0052CC;}\r\n+\t.st1{fill:#FFFFFF;}\r\n \u003C\u002Fstyle>\u003Ccircle class=\"st0\" cx=\"64\" cy=\"64\" r=\"64\"\u002F>\u003Cg>\u003Cpath class=\"st1\" d=\"M103,29H53c-0.6,0-1,0.4-1,1v12c0,0.6,0.4,1,1,1h50c0.6,0,1-0.4,1-1V30C104,29.4,103.6,29,103,29z\"\u002F>\u003Cpath class=\"st1\" d=\"M103,57H53c-0.6,0-1,0.4-1,1v12c0,0.6,0.4,1,1,1h50c0.6,0,1-0.4,1-1V58C104,57.4,103.6,57,103,57z\"\u002F>\u003Cpath class=\"st1\" d=\"M103,85H53c-0.6,0-1,0.4-1,1v12c0,0.6,0.4,1,1,1h50c0.6,0,1-0.4,1-1V86C104,85.4,103.6,85,103,85z\"\u002F>\u003Cpath class=\"st1\" d=\"M37,29H25c-0.6,0-1,0.4-1,1v12c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1V30C38,29.4,37.6,29,37,29z\"\u002F>\u003Cpath class=\"st1\" d=\"M37,57H25c-0.6,0-1,0.4-1,1v12c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1V58C38,57.4,37.6,57,37,57z\"\u002F>\u003Cpath class=\"st1\" d=\"M37,85H25c-0.6,0-1,0.4-1,1v12c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1V86C38,85.4,37.6,85,37,85z\"\u002F>\u003C\u002Fg>\u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Floading_buffer.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Floading_buffer.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Floading_buffer.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Floading_buffer.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u003C?xml version=\"1.0\" ?>\u003Csvg id=\"Icons\" width=\"20px\" height=\"20px\" style=\"enable-background:new 0 0 32 32;margin-bottom:-7px\" version=\"1.1\" viewBox=\"0 0 32 32\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\n-\t.st0{fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\n+\u003C?xml version=\"1.0\" ?>\u003Csvg id=\"Icons\" width=\"20px\" height=\"20px\" style=\"enable-background:new 0 0 32 32;margin-bottom:-7px\" version=\"1.1\" viewBox=\"0 0 32 32\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\r\n+\t.st0{fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\r\n \u003C\u002Fstyle>\u003Cline class=\"st0\" x1=\"16\" x2=\"16\" y1=\"2\" y2=\"7\"\u002F>\u003Cline class=\"st0\" x1=\"10.6\" x2=\"12.6\" y1=\"3.1\" y2=\"7.7\"\u002F>\u003Cline class=\"st0\" x1=\"6.1\" x2=\"9.6\" y1=\"6.1\" y2=\"9.6\"\u002F>\u003Cline class=\"st0\" x1=\"3.1\" x2=\"7.7\" y1=\"10.6\" y2=\"12.6\"\u002F>\u003Cline class=\"st0\" x1=\"2\" x2=\"7\" y1=\"16\" y2=\"16\"\u002F>\u003Cline class=\"st0\" x1=\"3.1\" x2=\"7.7\" y1=\"21.4\" y2=\"19.4\"\u002F>\u003Cline class=\"st0\" x1=\"6.1\" x2=\"9.6\" y1=\"25.9\" y2=\"22.4\"\u002F>\u003Cline class=\"st0\" x1=\"10.6\" x2=\"12.6\" y1=\"28.9\" y2=\"24.3\"\u002F>\u003Cline class=\"st0\" x1=\"16\" x2=\"16\" y1=\"30\" y2=\"25\"\u002F>\u003Cline class=\"st0\" x1=\"21.4\" x2=\"19.4\" y1=\"28.9\" y2=\"24.3\"\u002F>\u003Cline class=\"st0\" x1=\"25.9\" x2=\"22.4\" y1=\"25.9\" y2=\"22.4\"\u002F>\u003Cline class=\"st0\" x1=\"28.9\" x2=\"24.3\" y1=\"21.4\" y2=\"19.4\"\u002F>\u003Cline class=\"st0\" x1=\"30\" x2=\"25\" y1=\"16\" y2=\"16\"\u002F>\u003Cline class=\"st0\" x1=\"28.9\" x2=\"24.3\" y1=\"10.6\" y2=\"12.6\"\u002F>\u003Cline class=\"st0\" x1=\"25.9\" x2=\"22.4\" y1=\"6.1\" y2=\"9.6\"\u002F>\u003Cline class=\"st0\" x1=\"21.4\" x2=\"19.4\" y1=\"3.1\" y2=\"7.7\"\u002F>\u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Foverdue.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Foverdue.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Foverdue.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Foverdue.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,13 +1,13 @@\n-\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n-\u003Csvg width=\"30px\" height=\"30px\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\n-    \u003C!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\n-    \u003Ctitle>ic_fluent_calendar_overdue_24_filled\u003C\u002Ftitle>\n-    \u003Cdesc>Created with Sketch.\u003C\u002Fdesc>\n-    \u003Cg id=\"🔍-System-Icons\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n-        \u003Cg id=\"ic_fluent_calendar_overdue_24_filled\" fill=\"#ffffff\" fill-rule=\"nonzero\">\n-            \u003Cpath d=\"M17.5,12 C20.5376,12 23,14.4624 23,17.5 C23,20.5376 20.5376,23 17.5,23 C14.4624,23 12,20.5376 12,17.5 C12,14.4624 14.4624,12 17.5,12 Z M17.5,19.875 C17.1548,19.875 16.875,20.1548 16.875,20.5 C16.875,20.8452 17.1548,21.125 17.5,21.125 C17.8452,21.125 18.125,20.8452 18.125,20.5 C18.125,20.1548 17.8452,19.875 17.5,19.875 Z M21,8.5 L21,12.0218 C19.9897,11.375 18.7886,11 17.5,11 C13.9101,11 11,13.9101 11,17.5 C11,18.6894769 11.3195266,19.8043976 11.8774103,20.7635139 L12.0218,21 L6.25,21 C4.51696414,21 3.10075377,19.6435215 3.00514477,17.9344215 L3,17.75 L3,8.5 L21,8.5 Z M17.5,14 C17.2545778,14 17.0504,14.1769086 17.0080571,14.4101355 L17,14.5 L17,18.5 C17,18.7761 17.2239,19 17.5,19 C17.7454222,19 17.9496,18.8230914 17.9919429,18.5898645 L18,18.5 L18,14.5 C18,14.2239 17.7761,14 17.5,14 Z M17.75,3 C19.4830069,3 20.8992442,4.35645051 20.9948551,6.06557565 L21,6.25 L21,7 L3,7 L3,6.25 C3,4.51696414 4.35645051,3.10075377 6.06557565,3.00514477 L6.25,3 L17.75,3 Z\" id=\"🎨-Color\">\n-\n-\u003C\u002Fpath>\n-        \u003C\u002Fg>\n-    \u003C\u002Fg>\n+\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n+\u003Csvg width=\"30px\" height=\"30px\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\r\n+    \u003C!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\r\n+    \u003Ctitle>ic_fluent_calendar_overdue_24_filled\u003C\u002Ftitle>\r\n+    \u003Cdesc>Created with Sketch.\u003C\u002Fdesc>\r\n+    \u003Cg id=\"🔍-System-Icons\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n+        \u003Cg id=\"ic_fluent_calendar_overdue_24_filled\" fill=\"#ffffff\" fill-rule=\"nonzero\">\r\n+            \u003Cpath d=\"M17.5,12 C20.5376,12 23,14.4624 23,17.5 C23,20.5376 20.5376,23 17.5,23 C14.4624,23 12,20.5376 12,17.5 C12,14.4624 14.4624,12 17.5,12 Z M17.5,19.875 C17.1548,19.875 16.875,20.1548 16.875,20.5 C16.875,20.8452 17.1548,21.125 17.5,21.125 C17.8452,21.125 18.125,20.8452 18.125,20.5 C18.125,20.1548 17.8452,19.875 17.5,19.875 Z M21,8.5 L21,12.0218 C19.9897,11.375 18.7886,11 17.5,11 C13.9101,11 11,13.9101 11,17.5 C11,18.6894769 11.3195266,19.8043976 11.8774103,20.7635139 L12.0218,21 L6.25,21 C4.51696414,21 3.10075377,19.6435215 3.00514477,17.9344215 L3,17.75 L3,8.5 L21,8.5 Z M17.5,14 C17.2545778,14 17.0504,14.1769086 17.0080571,14.4101355 L17,14.5 L17,18.5 C17,18.7761 17.2239,19 17.5,19 C17.7454222,19 17.9496,18.8230914 17.9919429,18.5898645 L18,18.5 L18,14.5 C18,14.2239 17.7761,14 17.5,14 Z M17.75,3 C19.4830069,3 20.8992442,4.35645051 20.9948551,6.06557565 L21,6.25 L21,7 L3,7 L3,6.25 C3,4.51696414 4.35645051,3.10075377 6.06557565,3.00514477 L6.25,3 L17.75,3 Z\" id=\"🎨-Color\">\r\n+\r\n+\u003C\u002Fpath>\r\n+        \u003C\u002Fg>\r\n+    \u003C\u002Fg>\r\n \u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fplus_icon.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fplus_icon.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fplus_icon.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fplus_icon.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,4 +1,4 @@\n-\u003C?xml version=\"1.0\" ?>\u003Csvg id=\"Layer_1\" width=\"12px\" height=\"12px\" style=\"enable-background:new 0 0 128 128;\" version=\"1.1\" viewBox=\"0 0 128 128\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\n-\t.st0{fill:#EFF2F7;}\n-\t.st1{fill:#0052CC;}\n+\u003C?xml version=\"1.0\" ?>\u003Csvg id=\"Layer_1\" width=\"12px\" height=\"12px\" style=\"enable-background:new 0 0 128 128;\" version=\"1.1\" viewBox=\"0 0 128 128\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\r\n+\t.st0{fill:#EFF2F7;}\r\n+\t.st1{fill:#0052CC;}\r\n \u003C\u002Fstyle>\u003Ccircle class=\"st0\" cx=\"64\" cy=\"64\" r=\"64\"\u002F>\u003Cpath class=\"st1\" d=\"M103,57H71V25c0-0.6-0.4-1-1-1H58c-0.6,0-1,0.4-1,1v32H25c-0.6,0-1,0.4-1,1v12c0,0.6,0.4,1,1,1h32v32  c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1V71h32c0.6,0,1-0.4,1-1V58C104,57.4,103.6,57,103,57z\"\u002F>\u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fplus.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fplus.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fplus.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fplus.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,4 +1,4 @@\n-\u003C?xml version=\"1.0\" ?>\u003Csvg id=\"Layer_1\" width=\"20px\" height=\"20px\" style=\"enable-background:new 0 0 128 128;\" version=\"1.1\" viewBox=\"0 0 128 128\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\n-\t.st0{fill:#0052CC;}\n-\t.st1{fill:#EFF2F7;}\n+\u003C?xml version=\"1.0\" ?>\u003Csvg id=\"Layer_1\" width=\"20px\" height=\"20px\" style=\"enable-background:new 0 0 128 128;\" version=\"1.1\" viewBox=\"0 0 128 128\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\r\n+\t.st0{fill:#0052CC;}\r\n+\t.st1{fill:#EFF2F7;}\r\n \u003C\u002Fstyle>\u003Ccircle class=\"st0\" cx=\"64\" cy=\"64\" r=\"64\"\u002F>\u003Cpath class=\"st1\" d=\"M103,57H71V25c0-0.6-0.4-1-1-1H58c-0.6,0-1,0.4-1,1v32H25c-0.6,0-1,0.4-1,1v12c0,0.6,0.4,1,1,1h32v32  c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1V71h32c0.6,0,1-0.4,1-1V58C104,57.4,103.6,57,103,57z\"\u002F>\u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fprinter_menu.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fprinter_menu.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fprinter_menu.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fprinter_menu.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,28 +1,28 @@\n-\u003C?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n-\u003C!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\n-\u003Csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\" \n-\t viewBox=\"0 0 128 128\" xml:space=\"preserve\" width=\"20px\" height=\"20px\">\n-\u003Cg>\n-\t\u003Ccircle style=\"fill:#0052CC;\" cx=\"64\" cy=\"64\" r=\"64\"\u002F>\n-\t\u003Cg>\n-\t\t\u003Crect x=\"40.413\" y=\"24\" style=\"fill:#FFFFFF;\" width=\"47.935\" height=\"31.196\"\u002F>\n-\t\t\u003Cpath style=\"fill:#4F4955;\" d=\"M96.717,78.097c0,2.06-1.363,3.729-3.044,3.729H34.326c-1.681,0-3.043-1.67-3.043-3.729V52.925\n-\t\t\tc0-2.06,1.363-3.729,3.043-3.729h59.348c1.681,0,3.044,1.67,3.044,3.729L96.717,78.097L96.717,78.097z\"\u002F>\n-\t\t\u003Cpath style=\"fill:#F0F1F3;\" d=\"M84.588,47.058c0,0.712-1.262,1.29-2.82,1.29H46.992c-1.557,0-2.82-0.578-2.82-1.29V29.855\n-\t\t\tc0-0.712,1.262-1.29,2.82-1.29h34.776c1.557,0,2.82,0.578,2.82,1.29C84.588,29.855,84.588,47.058,84.588,47.058z\"\u002F>\n-\t\t\u003Cpath style=\"fill:#5E5862;\" d=\"M31.283,44.543c0-1.681,1.363-3.043,3.043-3.043h59.348c1.681,0,3.044,1.363,3.044,3.043v12.935\n-\t\t\tH31.283V44.543z\"\u002F>\n-\t\t\u003Crect x=\"31.283\" y=\"57.196\" style=\"fill:#796A6F;\" width=\"65.435\" height=\"3.804\"\u002F>\n-\t\t\u003Ccircle style=\"fill:#E6CD11;\" cx=\"38.891\" cy=\"49.87\" r=\"2.283\"\u002F>\n-\t\t\u003Ccircle style=\"fill:#FF4D66;\" cx=\"44.978\" cy=\"49.87\" r=\"1.522\"\u002F>\n-\t\t\u003Ccircle style=\"fill:#60B272;\" cx=\"50.304\" cy=\"49.87\" r=\"1.522\"\u002F>\n-\t\t\u003Crect x=\"43.772\" y=\"68.131\" style=\"fill:#3E3145;\" width=\"42.739\" height=\"13.696\"\u002F>\n-\t\t\u003Cpath style=\"fill:#F0F1F3;\" d=\"M85.468,92.412c0,0.877-1.27,1.588-2.836,1.588H47.651c-1.567,0-2.836-0.711-2.836-1.588V71.24\n-\t\t\tc0-0.877,1.27-1.588,2.836-1.588h34.982c1.566,0,2.836,0.711,2.836,1.588L85.468,92.412L85.468,92.412z\"\u002F>\n-\t\t\u003Crect x=\"49.612\" y=\"74\" style=\"fill:#B9B9BA;\" width=\"29\" height=\"2\"\u002F>\n-\t\t\u003Crect x=\"49.612\" y=\"79\" style=\"fill:#B9B9BA;\" width=\"13\" height=\"2\"\u002F>\n-\t\t\u003Crect x=\"49.612\" y=\"84\" style=\"fill:#B9B9BA;\" width=\"29\" height=\"2\"\u002F>\n-\t\t\u003Crect x=\"49.612\" y=\"89\" style=\"fill:#B9B9BA;\" width=\"13\" height=\"2\"\u002F>\n-\t\u003C\u002Fg>\n-\u003C\u002Fg>\n+\u003C?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\r\n+\u003C!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\r\n+\u003Csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\" \r\n+\t viewBox=\"0 0 128 128\" xml:space=\"preserve\" width=\"20px\" height=\"20px\">\r\n+\u003Cg>\r\n+\t\u003Ccircle style=\"fill:#0052CC;\" cx=\"64\" cy=\"64\" r=\"64\"\u002F>\r\n+\t\u003Cg>\r\n+\t\t\u003Crect x=\"40.413\" y=\"24\" style=\"fill:#FFFFFF;\" width=\"47.935\" height=\"31.196\"\u002F>\r\n+\t\t\u003Cpath style=\"fill:#4F4955;\" d=\"M96.717,78.097c0,2.06-1.363,3.729-3.044,3.729H34.326c-1.681,0-3.043-1.67-3.043-3.729V52.925\r\n+\t\t\tc0-2.06,1.363-3.729,3.043-3.729h59.348c1.681,0,3.044,1.67,3.044,3.729L96.717,78.097L96.717,78.097z\"\u002F>\r\n+\t\t\u003Cpath style=\"fill:#F0F1F3;\" d=\"M84.588,47.058c0,0.712-1.262,1.29-2.82,1.29H46.992c-1.557,0-2.82-0.578-2.82-1.29V29.855\r\n+\t\t\tc0-0.712,1.262-1.29,2.82-1.29h34.776c1.557,0,2.82,0.578,2.82,1.29C84.588,29.855,84.588,47.058,84.588,47.058z\"\u002F>\r\n+\t\t\u003Cpath style=\"fill:#5E5862;\" d=\"M31.283,44.543c0-1.681,1.363-3.043,3.043-3.043h59.348c1.681,0,3.044,1.363,3.044,3.043v12.935\r\n+\t\t\tH31.283V44.543z\"\u002F>\r\n+\t\t\u003Crect x=\"31.283\" y=\"57.196\" style=\"fill:#796A6F;\" width=\"65.435\" height=\"3.804\"\u002F>\r\n+\t\t\u003Ccircle style=\"fill:#E6CD11;\" cx=\"38.891\" cy=\"49.87\" r=\"2.283\"\u002F>\r\n+\t\t\u003Ccircle style=\"fill:#FF4D66;\" cx=\"44.978\" cy=\"49.87\" r=\"1.522\"\u002F>\r\n+\t\t\u003Ccircle style=\"fill:#60B272;\" cx=\"50.304\" cy=\"49.87\" r=\"1.522\"\u002F>\r\n+\t\t\u003Crect x=\"43.772\" y=\"68.131\" style=\"fill:#3E3145;\" width=\"42.739\" height=\"13.696\"\u002F>\r\n+\t\t\u003Cpath style=\"fill:#F0F1F3;\" d=\"M85.468,92.412c0,0.877-1.27,1.588-2.836,1.588H47.651c-1.567,0-2.836-0.711-2.836-1.588V71.24\r\n+\t\t\tc0-0.877,1.27-1.588,2.836-1.588h34.982c1.566,0,2.836,0.711,2.836,1.588L85.468,92.412L85.468,92.412z\"\u002F>\r\n+\t\t\u003Crect x=\"49.612\" y=\"74\" style=\"fill:#B9B9BA;\" width=\"29\" height=\"2\"\u002F>\r\n+\t\t\u003Crect x=\"49.612\" y=\"79\" style=\"fill:#B9B9BA;\" width=\"13\" height=\"2\"\u002F>\r\n+\t\t\u003Crect x=\"49.612\" y=\"84\" style=\"fill:#B9B9BA;\" width=\"29\" height=\"2\"\u002F>\r\n+\t\t\u003Crect x=\"49.612\" y=\"89\" style=\"fill:#B9B9BA;\" width=\"13\" height=\"2\"\u002F>\r\n+\t\u003C\u002Fg>\r\n+\u003C\u002Fg>\r\n \u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fsuccess.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fsuccess.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Fsuccess.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Fsuccess.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,4 +1,4 @@\n-\u003C?xml version=\"1.0\" ?>\u003Csvg id=\"Layer_1\" width=\"30\" height=\"18\" style=\"enable-background:new 0 0 512 512;\" version=\"1.1\" viewBox=\"0 0 512 512\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\n-\t.st0{fill:#3c763d;}\n-\t.st1{fill:none;stroke:#FFFFFF;stroke-width:30;stroke-miterlimit:10;}\n+\u003C?xml version=\"1.0\" ?>\u003Csvg id=\"Layer_1\" width=\"30\" height=\"18\" style=\"enable-background:new 0 0 512 512;\" version=\"1.1\" viewBox=\"0 0 512 512\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\r\n+\t.st0{fill:#3c763d;}\r\n+\t.st1{fill:none;stroke:#FFFFFF;stroke-width:30;stroke-miterlimit:10;}\r\n \u003C\u002Fstyle>\u003Cpath class=\"st0\" d=\"M489,255.9c0-0.2,0-0.5,0-0.7c0-1.6,0-3.2-0.1-4.7c0-0.9-0.1-1.8-0.1-2.8c0-0.9-0.1-1.8-0.1-2.7  c-0.1-1.1-0.1-2.2-0.2-3.3c0-0.7-0.1-1.4-0.1-2.1c-0.1-1.2-0.2-2.4-0.3-3.6c0-0.5-0.1-1.1-0.1-1.6c-0.1-1.3-0.3-2.6-0.4-4  c0-0.3-0.1-0.7-0.1-1C474.3,113.2,375.7,22.9,256,22.9S37.7,113.2,24.5,229.5c0,0.3-0.1,0.7-0.1,1c-0.1,1.3-0.3,2.6-0.4,4  c-0.1,0.5-0.1,1.1-0.1,1.6c-0.1,1.2-0.2,2.4-0.3,3.6c0,0.7-0.1,1.4-0.1,2.1c-0.1,1.1-0.1,2.2-0.2,3.3c0,0.9-0.1,1.8-0.1,2.7  c0,0.9-0.1,1.8-0.1,2.8c0,1.6-0.1,3.2-0.1,4.7c0,0.2,0,0.5,0,0.7c0,0,0,0,0,0.1s0,0,0,0.1c0,0.2,0,0.5,0,0.7c0,1.6,0,3.2,0.1,4.7  c0,0.9,0.1,1.8,0.1,2.8c0,0.9,0.1,1.8,0.1,2.7c0.1,1.1,0.1,2.2,0.2,3.3c0,0.7,0.1,1.4,0.1,2.1c0.1,1.2,0.2,2.4,0.3,3.6  c0,0.5,0.1,1.1,0.1,1.6c0.1,1.3,0.3,2.6,0.4,4c0,0.3,0.1,0.7,0.1,1C37.7,398.8,136.3,489.1,256,489.1s218.3-90.3,231.5-206.5  c0-0.3,0.1-0.7,0.1-1c0.1-1.3,0.3-2.6,0.4-4c0.1-0.5,0.1-1.1,0.1-1.6c0.1-1.2,0.2-2.4,0.3-3.6c0-0.7,0.1-1.4,0.1-2.1  c0.1-1.1,0.1-2.2,0.2-3.3c0-0.9,0.1-1.8,0.1-2.7c0-0.9,0.1-1.8,0.1-2.8c0-1.6,0.1-3.2,0.1-4.7c0-0.2,0-0.5,0-0.7  C489,256,489,256,489,255.9C489,256,489,256,489,255.9z\" id=\"XMLID_3_\"\u002F>\u003Cg id=\"XMLID_1_\">\u003Cline class=\"st1\" id=\"XMLID_2_\" x1=\"213.6\" x2=\"369.7\" y1=\"344.2\" y2=\"188.2\"\u002F>\u003Cline class=\"st1\" id=\"XMLID_4_\" x1=\"233.8\" x2=\"154.7\" y1=\"345.2\" y2=\"266.1\"\u002F>\u003C\u002Fg>\u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Ftags.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Ftags.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Ftags.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Ftags.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,4 +1,4 @@\n-\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n-\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" width=\"16px\" height=\"16px\" color=\"#707070\" data-name=\"Layer 1\" viewBox=\"0 0 24 24\">\n-\t\u003Cpath fill=\"currentColor\" d=\"M21.68,9.108L13.204,.723C12.655,.173,11.869-.089,11.098,.013L4.209,.955c-.274,.038-.466,.29-.428,.563,.037,.273,.293,.461,.562,.428l6.889-.942c.46-.066,.934,.095,1.267,.427l8.476,8.385c1.356,1.356,1.363,3.569,.01,4.94l-.19,.199c-.209-.677-.58-1.314-1.114-1.848L11.204,4.723c-.549-.55-1.337-.812-2.106-.709l-6.889,.942c-.228,.031-.404,.213-.43,.44l-.765,6.916c-.083,.759,.179,1.503,.72,2.044l8.417,8.326c.85,.85,1.979,1.318,3.181,1.318h.014c1.208-.004,2.341-.479,3.189-1.339l3.167-3.208c.886-.898,1.317-2.081,1.292-3.257l.708-.743c1.732-1.754,1.724-4.6-.022-6.345Zm-2.688,9.643l-3.167,3.208c-.66,.669-1.542,1.039-2.481,1.042h-.011c-.935,0-1.812-.364-2.476-1.027L2.439,13.646c-.324-.324-.48-.77-.431-1.225l.722-6.528,6.502-.889c.462-.063,.934,.095,1.267,.427l8.476,8.385c1.356,1.356,1.363,3.569,.017,4.934ZM8,10c0,.552-.448,1-1,1s-1-.448-1-1,.448-1,1-1,1,.448,1,1Z\"\u002F>\n-\u003C\u002Fsvg>\n+\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n+\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" width=\"16px\" height=\"16px\" color=\"#707070\" data-name=\"Layer 1\" viewBox=\"0 0 24 24\">\r\n+\t\u003Cpath fill=\"currentColor\" d=\"M21.68,9.108L13.204,.723C12.655,.173,11.869-.089,11.098,.013L4.209,.955c-.274,.038-.466,.29-.428,.563,.037,.273,.293,.461,.562,.428l6.889-.942c.46-.066,.934,.095,1.267,.427l8.476,8.385c1.356,1.356,1.363,3.569,.01,4.94l-.19,.199c-.209-.677-.58-1.314-1.114-1.848L11.204,4.723c-.549-.55-1.337-.812-2.106-.709l-6.889,.942c-.228,.031-.404,.213-.43,.44l-.765,6.916c-.083,.759,.179,1.503,.72,2.044l8.417,8.326c.85,.85,1.979,1.318,3.181,1.318h.014c1.208-.004,2.341-.479,3.189-1.339l3.167-3.208c.886-.898,1.317-2.081,1.292-3.257l.708-.743c1.732-1.754,1.724-4.6-.022-6.345Zm-2.688,9.643l-3.167,3.208c-.66,.669-1.542,1.039-2.481,1.042h-.011c-.935,0-1.812-.364-2.476-1.027L2.439,13.646c-.324-.324-.48-.77-.431-1.225l.722-6.528,6.502-.889c.462-.063,.934,.095,1.267,.427l8.476,8.385c1.356,1.356,1.363,3.569,.017,4.934ZM8,10c0,.552-.448,1-1,1s-1-.448-1-1,.448-1,1-1,1,.448,1,1Z\"\u002F>\r\n+\u003C\u002Fsvg>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Ftaskbuilder_logo.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Ftaskbuilder_logo.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Ftaskbuilder_logo.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Ftaskbuilder_logo.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,31 +1,31 @@\n-\u003C?xml version=\"1.0\" standalone=\"no\"?>\n-\u003C!DOCTYPE svg PUBLIC \"-\u002F\u002FW3C\u002F\u002FDTD SVG 20010904\u002F\u002FEN\"\n- \"http:\u002F\u002Fwww.w3.org\u002FTR\u002F2001\u002FREC-SVG-20010904\u002FDTD\u002Fsvg10.dtd\">\n-\u003Csvg version=\"1.0\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\"\n- width=\"17.000000pt\" height=\"17.000000pt\" viewBox=\"0 0 256.000000 256.000000\"\n- preserveAspectRatio=\"xMidYMid meet\">\n-\n-\u003Cg transform=\"translate(0.000000,256.000000) scale(0.100000,-0.100000)\"\n-fill=\"#ffffff\" stroke=\"none\">\n-\u003Cpath d=\"M1195 2488 c-2 -7 -10 -38 -18 -68 l-13 -54 -64 -23 c-36 -13 -82\n--35 -102 -48 l-38 -25 -53 30 c-30 16 -58 30 -64 30 -6 0 -35 -27 -63 -60\n-l-53 -61 37 -54 38 -54 -29 -77 -28 -78 -63 -14 -63 -14 3 -86 3 -87 63 -14\n-c34 -8 62 -19 62 -25 0 -6 11 -38 25 -70 l24 -59 -39 -55 -40 -55 30 -36 c16\n--20 40 -49 52 -65 l24 -28 61 31 61 30 59 -35 c32 -19 76 -40 98 -46 57 -16\n-61 -21 75 -88 l13 -60 87 0 87 0 13 58 c14 64 25 82 49 82 9 0 52 18 96 40\n-l80 40 58 -31 57 -30 53 57 c28 31 54 61 55 65 2 5 -13 32 -34 60 -35 48 -37\n-53 -25 83 7 17 20 52 28 77 16 45 17 46 77 60 l61 14 3 87 3 86 -55 13 c-30 6\n--59 15 -65 18 -5 4 -21 36 -34 73 l-24 67 39 55 39 56 -52 60 c-28 33 -56 60\n--61 60 -5 0 -31 -11 -58 -25 -61 -31 -62 -31 -110 1 -22 15 -68 37 -102 49\n-l-63 23 -15 63 -16 64 -82 3 c-60 2 -84 -1 -87 -10z m220 -381 c260 -133 216\n--503 -69 -574 -61 -15 -71 -15 -132 0 -313 78 -323 497 -14 598 49 16 162 4\n-215 -24z\"\u002F>\n-\u003Cpath d=\"M481 1109 c-141 -28 -250 -79 -424 -200 -10 -7 331 -649 343 -649 4\n-0 38 20 76 45 85 56 125 68 178 54 22 -6 151 -68 286 -138 135 -70 261 -134\n-280 -141 52 -21 211 -19 280 4 88 30 110 43 528 318 406 266 443 293 468 340\n-19 37 18 64 -8 115 -42 84 -110 118 -190 94 -59 -18 -516 -278 -563 -320 -90\n--82 -217 -152 -317 -176 -158 -37 -369 2 -483 89 -18 14 -14 14 35 0 91 -25\n-252 -29 350 -10 249 50 409 222 263 282 -20 9 -95 22 -167 30 -264 29 -338 52\n--426 130 -74 66 -137 99 -238 125 -79 20 -193 24 -271 8z\"\u002F>\n-\u003C\u002Fg>\n-\u003C\u002Fsvg>\n+\u003C?xml version=\"1.0\" standalone=\"no\"?>\r\n+\u003C!DOCTYPE svg PUBLIC \"-\u002F\u002FW3C\u002F\u002FDTD SVG 20010904\u002F\u002FEN\"\r\n+ \"http:\u002F\u002Fwww.w3.org\u002FTR\u002F2001\u002FREC-SVG-20010904\u002FDTD\u002Fsvg10.dtd\">\r\n+\u003Csvg version=\"1.0\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\"\r\n+ width=\"17.000000pt\" height=\"17.000000pt\" viewBox=\"0 0 256.000000 256.000000\"\r\n+ preserveAspectRatio=\"xMidYMid meet\">\r\n+\r\n+\u003Cg transform=\"translate(0.000000,256.000000) scale(0.100000,-0.100000)\"\r\n+fill=\"#ffffff\" stroke=\"none\">\r\n+\u003Cpath d=\"M1195 2488 c-2 -7 -10 -38 -18 -68 l-13 -54 -64 -23 c-36 -13 -82\r\n+-35 -102 -48 l-38 -25 -53 30 c-30 16 -58 30 -64 30 -6 0 -35 -27 -63 -60\r\n+l-53 -61 37 -54 38 -54 -29 -77 -28 -78 -63 -14 -63 -14 3 -86 3 -87 63 -14\r\n+c34 -8 62 -19 62 -25 0 -6 11 -38 25 -70 l24 -59 -39 -55 -40 -55 30 -36 c16\r\n+-20 40 -49 52 -65 l24 -28 61 31 61 30 59 -35 c32 -19 76 -40 98 -46 57 -16\r\n+61 -21 75 -88 l13 -60 87 0 87 0 13 58 c14 64 25 82 49 82 9 0 52 18 96 40\r\n+l80 40 58 -31 57 -30 53 57 c28 31 54 61 55 65 2 5 -13 32 -34 60 -35 48 -37\r\n+53 -25 83 7 17 20 52 28 77 16 45 17 46 77 60 l61 14 3 87 3 86 -55 13 c-30 6\r\n+-59 15 -65 18 -5 4 -21 36 -34 73 l-24 67 39 55 39 56 -52 60 c-28 33 -56 60\r\n+-61 60 -5 0 -31 -11 -58 -25 -61 -31 -62 -31 -110 1 -22 15 -68 37 -102 49\r\n+l-63 23 -15 63 -16 64 -82 3 c-60 2 -84 -1 -87 -10z m220 -381 c260 -133 216\r\n+-503 -69 -574 -61 -15 -71 -15 -132 0 -313 78 -323 497 -14 598 49 16 162 4\r\n+215 -24z\"\u002F>\r\n+\u003Cpath d=\"M481 1109 c-141 -28 -250 -79 -424 -200 -10 -7 331 -649 343 -649 4\r\n+0 38 20 76 45 85 56 125 68 178 54 22 -6 151 -68 286 -138 135 -70 261 -134\r\n+280 -141 52 -21 211 -19 280 4 88 30 110 43 528 318 406 266 443 293 468 340\r\n+19 37 18 64 -8 115 -42 84 -110 118 -190 94 -59 -18 -516 -278 -563 -320 -90\r\n+-82 -217 -152 -317 -176 -158 -37 -369 2 -483 89 -18 14 -14 14 35 0 91 -25\r\n+252 -29 350 -10 249 50 409 222 263 282 -20 9 -95 22 -167 30 -264 29 -338 52\r\n+-426 130 -74 66 -137 99 -238 125 -79 20 -193 24 -271 8z\"\u002F>\r\n+\u003C\u002Fg>\r\n+\u003C\u002Fsvg>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Ftime-tracker.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Ftime-tracker.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Ftime-tracker.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Ftime-tracker.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg id=\"Layer_1\" style=\"enable-background:new 0 0 64 64;\" version=\"1.1\" width=\"40px\" height=\"40px\" viewBox=\"0 0 64 64\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\n-\t.st0{fill:#ffffff;}\n+\u003C?xml version=\"1.0\" ?>\u003C!DOCTYPE svg  PUBLIC '-\u002F\u002FW3C\u002F\u002FDTD SVG 1.1\u002F\u002FEN'  'http:\u002F\u002Fwww.w3.org\u002FGraphics\u002FSVG\u002F1.1\u002FDTD\u002Fsvg11.dtd'>\u003Csvg id=\"Layer_1\" style=\"enable-background:new 0 0 64 64;\" version=\"1.1\" width=\"40px\" height=\"40px\" viewBox=\"0 0 64 64\" xml:space=\"preserve\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\u003Cstyle type=\"text\u002Fcss\">\r\n+\t.st0{fill:#ffffff;}\r\n \u003C\u002Fstyle>\u003Cg>\u003Cg id=\"Icon-Clock\" transform=\"translate(378.000000, 428.000000)\">\u003Cpath class=\"st0\" d=\"M-346.1-373.1c-12.6,0-22.9-10.3-22.9-22.9c0-12.6,10.3-22.9,22.9-22.9     c12.6,0,22.9,10.3,22.9,22.9C-323.1-383.4-333.4-373.1-346.1-373.1L-346.1-373.1z M-346.1-416.5c-11.3,0-20.4,9.2-20.4,20.4     s9.2,20.4,20.4,20.4s20.4-9.2,20.4-20.4S-334.8-416.5-346.1-416.5L-346.1-416.5z\" id=\"Fill-131\"\u002F>\u003Cpolyline class=\"st0\" id=\"Fill-132\" points=\"-338.9,-384.3 -347.4,-392.8 -347.4,-408.3 -344.7,-408.3 -344.7,-393.9      -337,-386.2 -338.9,-384.3    \"\u002F>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Ftrash-alt-solid.svg \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Ftrash-alt-solid.svg\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fimages\u002Ftrash-alt-solid.svg\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fimages\u002Ftrash-alt-solid.svg\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,11 +1,11 @@\n-\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n-\u003Csvg width=\"16px\" height=\"16px\" color=\"#707070\" viewBox=\"0 0 384 470\" version=\"1.1\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\n-    \u003Cg id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n-        \u003Cg id=\"delete\" fill=\"currentColor\" fill-rule=\"nonzero\">\n-            \u003Cpath d=\"M341.333333,128 C329.551259,128 320,137.551259 320,149.333333 L320,388.074667 C318.726183,410.529608 299.584596,427.757036 277.12,426.666667 L106.88,426.666667 C84.4154039,427.757036 65.2738172,410.529608 64,388.074667 L64,149.333333 C63.9999996,137.551259 54.4487411,128 42.6666667,128 C30.8845923,128 21.3333333,137.551259 21.3333333,149.333333 L21.3333333,388.074667 C22.6011339,434.099423 60.850894,470.431926 106.88,469.333333 L277.12,469.333333 C323.149106,470.431926 361.398866,434.099423 362.666667,388.074667 L362.666667,149.333333 C362.666667,137.551259 353.115408,128 341.333333,128 Z\" id=\"Path\">\u003C\u002Fpath>\n-            \u003Cpath d=\"M362.666667,64 L277.333333,64 L277.333333,21.3333333 C277.333333,9.55125867 267.782075,0 256,0 L128,0 C116.217925,0 106.666667,9.55125867 106.666667,21.3333333 L106.666667,64 L21.3333333,64 C9.55125867,64 0,73.5512587 0,85.3333333 C0,97.115408 9.55125867,106.666667 21.3333333,106.666667 L362.666667,106.666667 C374.448741,106.666667 384,97.115408 384,85.3333333 C384,73.5512587 374.448741,64 362.666667,64 Z M149.333333,64 L149.333333,42.6666667 L234.666667,42.6666667 L234.666667,64 L149.333333,64 Z\" id=\"Shape\">\u003C\u002Fpath>\n-            \u003Cpath d=\"M170.666667,341.333333 L170.666667,192 C170.666667,180.217925 161.115408,170.666667 149.333333,170.666667 C137.551259,170.666667 128,180.217925 128,192 L128,341.333333 C128,353.115408 137.551259,362.666667 149.333333,362.666667 C161.115408,362.666667 170.666667,353.115408 170.666667,341.333333 Z\" id=\"Path\">\u003C\u002Fpath>\n-            \u003Cpath d=\"M256,341.333333 L256,192 C256,180.217925 246.448741,170.666667 234.666667,170.666667 C222.884592,170.666667 213.333333,180.217925 213.333333,192 L213.333333,341.333333 C213.333333,353.115408 222.884592,362.666667 234.666667,362.666667 C246.448741,362.666667 256,353.115408 256,341.333333 Z\" id=\"Path\">\u003C\u002Fpath>\n-        \u003C\u002Fg>\n-    \u003C\u002Fg>\n+\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n+\u003Csvg width=\"16px\" height=\"16px\" color=\"#707070\" viewBox=\"0 0 384 470\" version=\"1.1\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\">\r\n+    \u003Cg id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n+        \u003Cg id=\"delete\" fill=\"currentColor\" fill-rule=\"nonzero\">\r\n+            \u003Cpath d=\"M341.333333,128 C329.551259,128 320,137.551259 320,149.333333 L320,388.074667 C318.726183,410.529608 299.584596,427.757036 277.12,426.666667 L106.88,426.666667 C84.4154039,427.757036 65.2738172,410.529608 64,388.074667 L64,149.333333 C63.9999996,137.551259 54.4487411,128 42.6666667,128 C30.8845923,128 21.3333333,137.551259 21.3333333,149.333333 L21.3333333,388.074667 C22.6011339,434.099423 60.850894,470.431926 106.88,469.333333 L277.12,469.333333 C323.149106,470.431926 361.398866,434.099423 362.666667,388.074667 L362.666667,149.333333 C362.666667,137.551259 353.115408,128 341.333333,128 Z\" id=\"Path\">\u003C\u002Fpath>\r\n+            \u003Cpath d=\"M362.666667,64 L277.333333,64 L277.333333,21.3333333 C277.333333,9.55125867 267.782075,0 256,0 L128,0 C116.217925,0 106.666667,9.55125867 106.666667,21.3333333 L106.666667,64 L21.3333333,64 C9.55125867,64 0,73.5512587 0,85.3333333 C0,97.115408 9.55125867,106.666667 21.3333333,106.666667 L362.666667,106.666667 C374.448741,106.666667 384,97.115408 384,85.3333333 C384,73.5512587 374.448741,64 362.666667,64 Z M149.333333,64 L149.333333,42.6666667 L234.666667,42.6666667 L234.666667,64 L149.333333,64 Z\" id=\"Shape\">\u003C\u002Fpath>\r\n+            \u003Cpath d=\"M170.666667,341.333333 L170.666667,192 C170.666667,180.217925 161.115408,170.666667 149.333333,170.666667 C137.551259,170.666667 128,180.217925 128,192 L128,341.333333 C128,353.115408 137.551259,362.666667 149.333333,362.666667 C161.115408,362.666667 170.666667,353.115408 170.666667,341.333333 Z\" id=\"Path\">\u003C\u002Fpath>\r\n+            \u003Cpath d=\"M256,341.333333 L256,192 C256,180.217925 246.448741,170.666667 234.666667,170.666667 C222.884592,170.666667 213.333333,180.217925 213.333333,192 L213.333333,341.333333 C213.333333,353.115408 222.884592,362.666667 234.666667,362.666667 C246.448741,362.666667 256,353.115408 256,341.333333 Z\" id=\"Path\">\u003C\u002Fpath>\r\n+        \u003C\u002Fg>\r\n+    \u003C\u002Fg>\r\n \u003C\u002Fsvg>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002Fadmin.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002Fadmin.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002Fadmin.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002Fadmin.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,2434 +1,2434 @@\n-function wppm_add_new_project(){\n-  jQuery('#wppm_project_container').show();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_add_new_project'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_project_container').html(response);\n-  });  \n-}\n-\n-function wppm_projects(){\n-  jQuery('#wppm_project_container').hide();\n-  jQuery('#wppm_project_list').show(); \n-}\n-\n-function wppm_get_users(proj_id){\n-  wppm_modal_open('Add Users'); \n-  var data = {\n-    action: 'wppm_get_users',\n-    proj_id: proj_id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-  });\n-}\n-\n-function wppm_get_general_settings(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_settings_general').addClass('active');\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_general_setings'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_get_page_settings(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_settings_page').addClass('active');\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_page_setings'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_set_page_settings(){\n-  jQuery('.wppm_submit_wait').show();\n-    var dataform = new FormData(jQuery('#wppm-frm-ps')[0]);\n-    jQuery.ajax({\n-      url: wppm_admin.ajax_url,\n-      type: 'POST',\n-      data: dataform,\n-      processData: false,\n-      contentType: false\n-  })\n-  .done(function (response_str) {\n-    var response = JSON.parse(response_str);\n-    jQuery('.wppm_submit_wait').hide();\n-    if (response.sucess_status=='1') {\n-      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-    }\n-    jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-  });\n-}\n-\n- \u002F*\n- * Category Settings\n- *\u002F\n-function wppm_get_category_settings(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_settings_category').addClass('active');\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_category_settings'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-\u002F**\n- * Delete category\n- *\u002F\n-function wppm_delete_category(cat_id) {\n-\n-  const flag = confirm(wppm_admin.confirm);\n-  if (!flag) return;\n-\n-  var data = { action: 'wppm_delete_category', \n-    cat_id,\n-    _ajax_nonce:jQuery('#wppm_delete_cat_ajax_nonce').val()\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function (res) {\n-    wppm_get_category_settings();\n-  });\n-}\n-\n-function wppm_get_proj_status_settings(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_settings_proj_status').addClass('active');\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_proj_status_settings'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_get_add_proj_status(){\n-  wppm_modal_open(wppm_admin.add_new_status); \n-  var data = {\n-    action: 'wppm_get_add_proj_status'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-    jQuery('#wppm_proj_status_name').focus();\n-  });\n-}\n-\n-function wppm_delete_proj_status(status_id){\n-  const flag = confirm(wppm_admin.confirm);\n-  if (!flag) return;\n-\n-  var data = { action: 'wppm_delete_status', status_id,\n-    _ajax_nonce:jQuery('#wppm_delete_pstatus_ajax_nonce').val()\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function (res) {\n-    wppm_get_proj_status_settings();\n-  });\n-}\n-\n-function wppm_set_project_users(){\n-  var dataform = new FormData(jQuery('#frm_get_project_users')[0]);\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  var proj_id = jQuery('#wppm_proj_id').val();\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function () {\n-    wppm_modal_close(); \n-    wppm_open_project(proj_id);\n-  });\n-}\n-\n-function wppm_set_task_users(proj_id,project_id){\n-  var dataform = new FormData(jQuery('#frm_get_task_users')[0]);\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var task_id = jQuery('#wppm_task_id').val();\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function () {\n-    if((proj_id!=0)||(proj_id!=\"\")){\n-      wppm_task_modal_close(); \n-      wppm_open_project_tasks(task_id,proj_id);\n-    }else if((proj_id==0)||(proj_id==\"\")){\n-      wppm_task_modal_close(); \n-      wppm_open_task(task_id,project_id);\n-    }\n-  });\n-}\n-\n-function wppm_get_project_list(page_no){\n-  jQuery('#wppm_project_container').show();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);\n-\tdataform.append(\"page_no\", page_no);\n-  dataform.append(\"action\", 'wppm_get_project_list');\n-  jQuery.ajax( {\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  }) \n-  .done(function( response ) {\n-    jQuery('#wppm_project_container').html(response);\n-  });\n-}\n-\n-function wppm_add_new_task(proj_id,project_id){\n-  jQuery('#wppm_task_container').show();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_add_new_task',\n-    proj_id:proj_id,\n-    project_id:project_id\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response);\n-  }); \n-}\n-\n-function wppm_get_task_list(page_no,id){\n-  jQuery('#wppm_task_container').show();\n-  \u002F\u002F window.history.replaceState( {}, null, 'admin.php?page=wppm-tasks&section=task-list' );\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_task_list',\n-    page_no:page_no,\n-    page:wppm_admin.page,\n-    project_id:id\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response);\n-  }); \n-}\n-\n-function wppm_get_task_prioriy_settings(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_settings_task_priorities').addClass('active');\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_priority_settings'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_add_task_priority(){\n-  wppm_modal_open(wppm_admin.add_new_priority); \n-  var data = {\n-    action: 'wppm_add_task_priority'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-    jQuery('#wppm_cat_name').focus();\n-  });\n-}\n-\n-function wppm_delete_task_priority(priority_id){\n-  const flag = confirm(wppm_admin.confirm);\n-  if (!flag) return;\n-\n-  var data = { action: 'wppm_delete_task_priority', priority_id,\n-    _ajax_nonce:jQuery('#wppm_delete_tprio_ajax_nonce').val()\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function (res) {\n-    wppm_get_task_prioriy_settings();\n-  });\n-}\n-\n-function wppm_get_task_status_settings(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_settings_task_status').addClass('active');\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_task_status_settings'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_get_add_task_status(){\n-  wppm_modal_open(wppm_admin.add_new_status); \n-  var data = {\n-    action: 'wppm_get_add_task_status'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-    jQuery('#wppm_cat_name').focus();\n-  });\n-}\n-\n-function wppm_delete_task_status(status_id){\n-  const flag = confirm(wppm_admin.confirm);\n-  if (!flag) return;\n-\n-  var data = { action: 'wppm_delete_task_status', status_id,\n-    _ajax_nonce: jQuery('#wppm_delete_tstatus_ajax_nonce').val()};\n-  jQuery.post(wppm_admin.ajax_url, data, function (res) {\n-    wppm_get_task_status_settings();\n-  });\n-}\n-\n-function wppm_task_search_filter(page){\n-  var task_search = jQuery(\"#wppm_task_search_filter\").val();\n-  jQuery('#wppm_task_container').show();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var data = {\n-      action: 'wppm_get_task_list',\n-      task_search:task_search,\n-      page:page\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response);\n-  });\n-}\n-\n-function wppm_view_task_search_filter(page_no,page,proj_id){\n-  var task_search = jQuery(\"#wppm_view_task_search_filter\").val() || '';\n-  jQuery('#wppm_task_container').show();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-\n-  var data = {\n-    action: 'wppm_get_task_list_card_view',\n-    task_search:task_search,\n-    page_no:page_no,\n-    page:page,\n-    project_id:proj_id\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response);\n-  });\n-}\n-\n-function wppm_open_task(id,proj_id){\n-  jQuery('#wppm_task_container').show();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_open_task',\n-    id:id,\n-    auth_code: wppm_admin.auth_code,\n-    page:wppm_admin.page,\n-    project_id:proj_id\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response);\n-  });\n-}\n-\n-function wppm_open_dashboard_task(id){\n-     window.location.href = 'admin.php?page=wppm-tasks&task_id=' + id;\n-}\n-\n-function wppm_open_project_tasks(id,proj_id){\n-  wppm_modal_open('Open Tasks');\n-  jQuery('#wppm_task_container').show();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_open_task',\n-    id: id,\n-    proj_id:proj_id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    jQuery('#wppm_popup_body').html(response_str);\n-    \u002F\u002FjQuery('#wppm_task_container').html(response_str);\n-  });\n-}\n-\n-function wppm_add_new_checklist(task_id,proj_id){\n-  if(jQuery('#wppm_checklist_label').val()==''){\n-    jQuery('#wppm_checklist_label').focus();\n-    return  false;\n-  }\n-  var data = {\n-    action: 'wppm_add_new_checklist',\n-    task_id: task_id,\n-    proj_id: proj_id,\n-    checklist_name: jQuery('#wppm_checklist_label').val(),\n-    _ajax_nonce:jQuery('#wppm_checklist_ajax_nonce').val()\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    if((proj_id!=0)||(proj_id!=\"\")){\n-      \u002F\u002Fwppm_modal_close(); \n-      wppm_open_project_tasks(task_id,proj_id);\n-    }else if((proj_id==0)||(proj_id==\"\")){\n-      \u002F\u002Fwppm_modal_close(); \n-      wppm_open_task(task_id);\n-    }\n-  });\n-}\n-\n-function wppm_add_new_checklist_item(checklist_id,task_id,proj_id){\n-  if(jQuery('#wppm_checklist_item_label_'+checklist_id).val()==''){\n-    jQuery('#wppm_checklist_item_label_'+checklist_id).focus();\n-    return  false;\n-  }\n-  var data = {\n-    action: 'wppm_add_new_checklist_item',\n-    checklist_id: checklist_id,\n-    proj_id:proj_id,\n-    label: jQuery('#wppm_checklist_item_label_'+checklist_id).val(),\n-    _ajax_nonce:jQuery('#wppm_checklist_item_ajax_nonce').val()\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    if((proj_id!=0)||(proj_id!=\"\")){\n-      wppm_open_project_tasks(task_id,proj_id);\n-    }else if((proj_id==0)||(proj_id==\"\")){\n-      wppm_open_task(task_id);\n-    }\n-  });\n-}\n-\n-function wppm_delete_checklist(checklist_id,task_id,proj_id){\n-  const flag = confirm(wppm_admin.confirm);\n-  if (!flag) return;\n-  var data = {\n-    action: 'wppm_delete_checklist',\n-    checklist_id: checklist_id,\n-    task_id:task_id,\n-    proj_id:proj_id,\n-    _ajax_nonce:jQuery('#wppm_delete_checklist_ajax_nonce').val()\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    if((proj_id!=0)||(proj_id!=\"\")){\n-      wppm_open_project_tasks(task_id,proj_id);\n-    }else if((proj_id==0)||(proj_id==\"\")){\n-      wppm_open_task(task_id);\n-    }\n-  });\n-}\n-\n-function wppm_delete_checklist_item(item_id,checklist_id,proj_id,task_id){\n-  const flag = confirm(wppm_admin.confirm);\n-  if (!flag) return;\n-  var data = {\n-    action: 'wppm_remove_checklist_item',\n-    item_id:item_id,\n-    checklist_id: checklist_id,\n-    proj_id:proj_id,\n-    task_id:task_id,\n-    _ajax_nonce:jQuery('#wppm_delete_checklist_item_ajax_nonce').val()\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    if((proj_id!=0)||(proj_id!=\"\")){\n-      wppm_open_project_tasks(task_id,proj_id);\n-    }else if((proj_id==0)||(proj_id==\"\")){\n-      wppm_open_task(task_id);\n-    }\n-  });\n-}\n-\n-function wppm_checklist_progress(checklist_id,item_id,task_id){\n-  var $checkboxes = jQuery('.wppm_checklist_item_'+checklist_id);\n-  var $progress = jQuery('#CheckProgress_'+checklist_id);\n-  var total = $checkboxes.length;\n-  var checked = jQuery('.wppm_checklist_item_'+checklist_id).filter(':checked').length;\n-  var progressWidth = (checked \u002F total) * 100;\n-  var checked_item;\n-  jQuery('#CheckProgress_'+checklist_id).css('background','#5ba4cf');\n-  jQuery('#CheckProgress_'+checklist_id).css('width', progressWidth + '%');\n-  if (jQuery(\"#wppm_checklist_item_\"+item_id).prop(\"checked\")==true) { \n-    checked_item=1;\n-  }else{\n-    checked_item=0;\n-  }\n-  var data = {\n-    action: 'wppm_set_checklist_progress',\n-    checklist_id: checklist_id,\n-    item_id:item_id,\n-    checked_item: checked_item,\n-    _ajax_nonce:jQuery('#wppm_checklist_progress_ajax_nonce').val()\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    wppm_open_task(task_id);\n-  });\n-}\n-\n-function wppm_open_individual_task(id){\n-  jQuery('#wppm_project_container').show();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_open_task',\n-    id:id\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_project_container').html(response);\n-  });\n-}\n-\n-\n-function wppm_display_grid_view(page,id){\n-  var task_search = jQuery(\"#wppm_view_task_search_filter\").val() || '';\n-  jQuery('#wppm_task_container').show();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var data = {\n-        action: 'wppm_get_task_list_card_view',\n-        task_search: task_search,\n-        page:page,  \n-        id:id\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response);\n-  });\n-}\n-\n-function wppm_remove_filter(id){\n-  jQuery('#wppm_user_display_container_'+id).remove();\n-}\n-\n-function wppm_remove_user_from_project(id){\n-  jQuery('#wppm_user_container_'+id).remove();\n-}\n-\n-function wppm_remove_task_user_filter(id){\n-  jQuery('#wppm_task_user_display_container_'+id).remove();\n-}\n-\n-function wppm_attachment_cancel( obj ){\n-  jQuery(obj).parent().remove();\n-}\n-\n-function wppm_get_en_general_setting(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_en_setting_general').addClass('active');\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  \n-  var data = {\n-    action: 'wppm_get_en_general_setting',\n-  };\n-\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_set_en_general_settings(){\n-  jQuery('.wppm_submit_wait').show();\n-  var dataform = new FormData(jQuery('#wppm_en_frm_general_settings')[0]);\n-  \n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    var response = JSON.parse(response_str);\n-    jQuery('.wppm_submit_wait').hide();\n-    if (response.sucess_status=='1') {\n-      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-    }\n-    jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-  });\n-}\n-\n-function wppm_get_en_task_notifications(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_en_ticket_notifications').addClass('active');\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  \n-  var data = {\n-    action: 'wppm_get_en_task_notifications'\n-  };\n-\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_edit_task_status(id,proj_id,project_id){\n-  if(proj_id==0){\n-    wppm_task_modal_open('Edit'); \n-  }else{\n-    wppm_modal_open('Edit'); \n-  }\n-  var data = {\n-    action: 'wppm_edit_task_status',\n-    task_id: id,\n-    proj_id:proj_id,\n-    project_id:project_id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    if(proj_id==0){\n-      jQuery('#wppm_task_popup_body').html(response.body);\n-      jQuery('#wppm_task_popup_footer').html(response.footer);\n-    }else{\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    }\n-  });\n-}\n-\n-function wppm_edit_task_users(task_id,proj_id,project_id){\n-  if(proj_id==0){\n-    wppm_task_modal_open('Add Users'); \n-  }else{\n-    wppm_modal_open('Add Users'); \n-  } \n-  var data = {\n-    action: 'wppm_get_task_users',\n-    task_id: task_id,\n-    proj_id:proj_id,\n-    project_id:project_id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    if(proj_id==0){\n-      jQuery('#wppm_task_popup_body').html(response.body);\n-      jQuery('#wppm_task_popup_footer').html(response.footer);\n-    }else{\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    }\n-  });\n-}\n-\n-function wppm_edit_task_details(id,proj_id,project_id){\n-  if(proj_id==0){\n-    wppm_task_modal_open('Edit Task Details'); \n-  }else{\n-    wppm_modal_open('Edit Task Details'); \n-  }\n-  var data = {\n-    action: 'wppm_edit_task_details',\n-    task_id: id,\n-    proj_id:proj_id,\n-    project_id:project_id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    if(proj_id==0){\n-      jQuery('#wppm_task_popup_body').html(response.body);\n-      jQuery('#wppm_task_popup_footer').html(response.footer);\n-    }else{\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    }\n-  });\n-}\n-\n-function wppm_set_change_task_status(task_id,proj_id,project_id){\n-  var dataform = new FormData(jQuery('#frm_get_task_change_status')[0]);\n-  if(proj_id == 0){\n-    wppm_task_modal_close();\n-  }else{\n-    wppm_modal_close();\n-  }\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    if((proj_id!=0)||(proj_id!=\"\")){\n-      wppm_open_project_tasks(task_id,proj_id);\n-    }else if((proj_id==0)||(proj_id==\"\")){\n-      wppm_open_task(task_id,project_id);\n-    }\n-    \n-  }); \n-}\n-\n-function wppm_edit_task_creator(task_id,proj_id,project_id){\n-  if(proj_id==0){\n-    wppm_task_modal_open('Edit Task Creator'); \n-  }else{\n-    wppm_modal_open('Edit Task Creator'); \n-  }\n-  var data = {\n-    action: 'wppm_edit_task_creator',\n-    task_id: task_id,\n-    proj_id: proj_id,\n-    project_id: project_id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    if(proj_id==0){\n-      jQuery('#wppm_task_popup_body').html(response.body);\n-      jQuery('#wppm_task_popup_footer').html(response.footer);\n-    }else{\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    }\n-  });\n-}\n-\n-function wppm_set_change_raised_by(task_id,proj_id,project_id){\n-  var dataform = new FormData(jQuery('#frm_get_task_creator')[0]);\n-  if(proj_id==0){\n-    wppm_task_modal_close(); \n-  }else{\n-    wppm_modal_close(); \n-  }\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    if((proj_id!=0)||(proj_id!=\"\")){\n-      wppm_open_project_tasks(task_id,proj_id);\n-    }else if((proj_id==0)||(proj_id==\"\")){\n-      wppm_open_task(task_id,project_id);\n-    }\n-  }); \n-}\n-\n-function wppm_set_change_task_details(task_id,proj_id,project_id){\n-  var dataform = new FormData(jQuery('#frm_get_edit_task_deatils')[0]);\n-  var description = tinyMCE.get('wppm_edit_task_description').getContent().trim();\n-  dataform.append('wppm_edit_task_description', description);\n-  if(proj_id==0){\n-    wppm_task_modal_close(); \n-  }else{\n-    wppm_modal_close(); \n-  }\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    if((proj_id!=0)||(proj_id!=\"\")){\n-      wppm_open_project_tasks(task_id,proj_id);\n-    }else if((proj_id==0)||(proj_id==\"\")){\n-      wppm_open_task(task_id,project_id);\n-    }\n-  });\n-}\n-\n-function wppm_edit_thread(comment_id,task_id,proj_id){\n-  if(proj_id==0){\n-    wppm_task_modal_open('Edit Thread'); \n-  }else{\n-    wppm_modal_open('Edit Thread'); \n-  }\n-  var data = {\n-    action: 'wppm_edit_task_thread',\n-    comment_id:comment_id,\n-    task_id: task_id,\n-    proj_id: proj_id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    if(proj_id==0){\n-      jQuery('#wppm_task_popup_body').html(response.body);\n-      jQuery('#wppm_task_popup_footer').html(response.footer);\n-    }else{\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    }\n-  });\n-}\n-\n-function wppm_edit_proj_thread(comment_id,proj_id){\n-  wppm_modal_open('Edit Thread'); \n-  var data = {\n-    action: 'wppm_edit_proj_thread',\n-    comment_id:comment_id,\n-    proj_id: proj_id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-  });\n-}\n-\n-function wppm_set_edit_task_thread(task_id,proj_id){\n-  var dataform = new FormData(jQuery('#frm_edit_task_thread')[0]);\n-  if(wppm_admin.rich_text_editor == 1){\n-    var comment_body = tinyMCE.get('wppm_edit_task_thread_editor').getContent().trim();\n-  }else{\n-    var comment_body = jQuery('#wppm_edit_task_thread_editor').val().trim();\n-  }\n-  dataform.append('wppm_edit_task_thread', comment_body);\n-  if(proj_id==0){\n-    wppm_task_modal_close(); \n-  }else{\n-    wppm_modal_close(); \n-  }\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    if((proj_id!=0)||(proj_id!=\"\")){\n-      wppm_open_project_tasks(task_id,proj_id);\n-    }else if((proj_id==0)||(proj_id==\"\")){\n-      wppm_open_task(task_id);\n-    }\n-  }); \n-}\n-\n-function wppm_set_edit_proj_thread(proj_id){\n-  var dataform = new FormData(jQuery('#frm_edit_proj_thread')[0]);\n-  if(wppm_admin.rich_text_editor == 1){\n-    var comment_body = tinyMCE.get('wppm_edit_proj_thread_editor').getContent().trim();\n-  }else{\n-    var comment_body = jQuery('#wppm_edit_proj_thread_editor').val().trim();\n-  }\n-  dataform.append('wppm_edit_proj_thread', comment_body);\n-  wppm_modal_close();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-      wppm_open_project(proj_id);\n-  }); \n-}\n-\n-function wppm_delete_thread(comment_id,task_id,proj_id){\n-  if(proj_id==0){\n-    wppm_task_modal_open('Delete Thread'); \n-  }else{\n-    wppm_modal_open('Delete Thread'); \n-  }\n-  var data = {\n-    action: 'wppm_delete_task_thread',\n-    comment_id:comment_id,\n-    task_id: task_id,\n-    proj_id:proj_id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    if(proj_id==0){\n-      jQuery('#wppm_task_popup_body').html(response.body);\n-      jQuery('#wppm_task_popup_footer').html(response.footer);\n-    }else{\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    }\n-  });\n-}\n-\n-function wppm_delete_proj_thread(comment_id,proj_id){\n-  wppm_modal_open('Delete Thread'); \n-  var data = {\n-    action: 'wppm_delete_proj_thread',\n-    comment_id:comment_id,\n-    proj_id:proj_id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-  });\n-}\n-\n-function wppm_set_delete_thread(task_id,proj_id){\n-  var dataform = new FormData(jQuery('#frm_delete_task_thread')[0]);\n-  if(proj_id==0){\n-    wppm_task_modal_close(); \n-  }else{\n-    wppm_modal_close(); \n-  }\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    if((proj_id!=0)||(proj_id!=\"\")){\n-      wppm_open_project_tasks(task_id,proj_id);\n-    }else if((proj_id==0)||(proj_id==\"\")){\n-      wppm_open_task(task_id);\n-    }\n-  }); \n-}\n-\n-function wppm_set_delete_proj_thread(proj_id){\n-  var dataform = new FormData(jQuery('#frm_delete_proj_thread')[0]);\n-  wppm_modal_close();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_open_project(proj_id);\n-  }); \n-}\n-\n-function wppm_edit_proj_details(id){\n-  wppm_modal_open('Edit Project Details'); \n-  var data = {\n-    action: 'wppm_edit_project_details',\n-    id: id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-  });\n-}\n-\n-function wppm_set_change_project_details(id){\n-  var dataform = new FormData(jQuery('#frm_get_edit_project_deatils')[0]);\n-  var description = tinyMCE.get('wppm_edit_project_description').getContent().trim();\n-  dataform.append('wppm_edit_project_description', description);\n-  wppm_modal_close();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_open_project(id);\n-  });\n-}\n-\n-function wppm_edit_project_status(id){\n-  wppm_modal_open('Edit Project Status'); \n-  var data = {\n-    action: 'wppm_edit_project_status',\n-    id: id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-  });\n-}\n-\n-function wppm_set_change_project_status(id){\n-  var dataform = new FormData(jQuery('#frm_get_project_change_status')[0]);\n-  wppm_modal_close();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_open_project(id);\n-  });\n-}\n-\n-function wppm_edit_project_creator(id){\n-  wppm_modal_open('Edit Project Creator'); \n-  var data = {\n-    action: 'wppm_edit_project_creator',\n-    id: id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-  });\n-}\n-\n-function wppm_set_change_project_raised_by(id){\n-  var dataform = new FormData(jQuery('#frm_get_project_creator')[0]);\n-  wppm_modal_close();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_open_project(id);\n-  });\n-}\n-\n-function wppm_edit_project_users(id){\n-  wppm_modal_open('Add Users'); \n-  var data = {\n-    action: 'wppm_get_project_users',\n-    id: id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-  });\n-}\n-\n-function wppm_delete_project(id){\n-  wppm_modal_open('Delete Project'); \n-  var data = {\n-    action: 'wppm_get_delete_project',\n-    id: id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-  });\n-}\n-\n-function wppm_set_delete_project(){\n-  var dataform = new FormData(jQuery('#frm_delete_project')[0]);\n-  wppm_modal_close();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_get_project_list();\n-  });\n-}\n-\n-function wppm_get_delete_task(id,proj_id,project_id){\n-  if(proj_id==0){\n-    wppm_task_modal_open('Delete Task'); \n-  }else{\n-    wppm_modal_open('Delete Task'); \n-  } \n-  var data = {\n-    action: 'wppm_get_delete_task',\n-    id: id,\n-    proj_id:proj_id,\n-    project_id:project_id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    if(proj_id==0){\n-      jQuery('#wppm_task_popup_body').html(response.body);\n-      jQuery('#wppm_task_popup_footer').html(response.footer);\n-    }else{\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    }\n-  });\n-}\n-\n-function wppm_set_delete_task(proj_id,project_id){\n-  var dataform = new FormData(jQuery('#frm_delete_task')[0]);\n-  if(proj_id==0){\n-    wppm_task_modal_close();\n-  }else{\n-    wppm_modal_close(); \n-  }\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    if(project_id!=0){\n-      wppm_get_project_tasks_kanban_view(project_id);\n-    }else{\n-      if(proj_id==0){\n-        wppm_get_task_list();\n-      }else{\n-        wppm_get_project_tasks(proj_id);\n-      }\n-    }\n-  });\n-}\n-\n-function wppm_get_edit_email_notification(id){\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_edit_email_notification',\n-    id : id\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_get_tinymce(selector,body_id){ \n-  jQuery('#visual').addClass('btn btn-primary');\n-  jQuery('#text').removeClass('btn btn-primary');\n-  jQuery('#text').addClass('btn btn-default');\n-  tinymce.init({ \n-\t  selector:'#'+selector,\n-\t  body_id: body_id,\n-\t  menubar: false,\n-\t\tstatusbar: false,\n-\t  height : '200',\n-\t  plugins: [\n-\t      'lists link image directionality'\n-\t  ],\n-\t  image_advtab: true,\n-\t  toolbar: 'bold italic underline blockquote | alignleft aligncenter alignright | bullist numlist | rtl | link image',\n-\t  branding: false,\n-\t  autoresize_bottom_margin: 20,\n-\t  browser_spellcheck : true,\n-\t  relative_urls : false,\n-\t  remove_script_host : false,\n-\t  convert_urls : true,\n-\t\tsetup: function (editor) {\n-\t  }\n-\t});\n-}\n-\n-function wppm_get_textarea(){\n-  jQuery('#visual').removeClass('btn btn-primary');\n-  jQuery('#visual').addClass('btn btn-default');\n-  jQuery('#text').addClass('btn btn-primary');\n-  tinymce.remove();\n-}\n-\n-function wppm_get_templates(){\n-  wppm_modal_open(wppm_admin.templates);\n-  var data = {\n-    action: 'wppm_get_templates'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-  });\n-}\n-\n-function wppm_set_edit_email_notification(){\n-  var dataform = new FormData(jQuery('#wppm_edit_email_notification_settings')[0]);\n-  wppm_modal_close();\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    var response = JSON.parse(response_str);\n-    if (response.sucess_status=='1') {\n-      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-    }\n-    jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-    wppm_get_en_task_notifications();\n-  });\n-}\n-\n-function wppm_set_general_settings(){\n-  jQuery('.wppm_submit_wait').show();\n-  var dataform = new FormData(jQuery('#wppm_frm_general_settings')[0]);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    var response = JSON.parse(response_str);\n-    jQuery('.wppm_submit_wait').hide();\n-    if (response.sucess_status=='1') {\n-      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-    }\n-    jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-  });\n-}\n-\n-function wppm_get_project_tasks(id){\n-  wppm_modal_open('Tasks'); \n-  var data = {\n-    action: 'wppm_get_project_tasks',\n-    id: id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-  });\n-}\n-\n-function wppm_create_project_task(id){\n-  wppm_task_modal_open('Tasks'); \n-  var data = {\n-    action: 'wppm_add_new_task',\n-    proj_id: id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    jQuery('#wppm_popup_body').html(response_str);\n-  });\n-}\n-\n-function wppm_load_prev_page(prev_page_no,page_no,sort_by, order){\n-  if(prev_page_no!=0){\n-    page_no=prev_page_no-1;\n-\t\twppm_get_project_list(page_no,sort_by,order);\n-\t}\n-}\n-\n-function wppm_load_next_page(next_page_no,page_no,sort_by,order){\n-\tif(next_page_no!=page_no){\n-    page_no = next_page_no;\n-\t  wppm_get_project_list(page_no,sort_by,order);\n-\t}\n-}\n-\n-function wppm_load_prev_task_page(prev_page_no,page_no, sort_by, order){\n-  if(prev_page_no!=0){\n-    page_no=prev_page_no-1;\n-\t\twppm_get_task_list(page_no,sort_by,order);\n-\t}\n-}\n-\n-function wppm_load_next_task_page(next_page_no,page_no,sort_by,order){\n-\tif(next_page_no!=page_no){\n-    page_no = next_page_no;\n-\t  wppm_get_task_list(page_no,sort_by,order);\n-\t}\n-}\n-\n-function wppm_load_prev_task_page_card_view(prev_page_no,page_no){\n-  if(prev_page_no!=0){\n-    page_no=prev_page_no-1;\n-\t\twppm_view_task_search_filter(page_no);\n-\t}\n-}\n-\n-function wppm_load_next_task_page_card_view(next_page_no,page_no){\n-\tif(next_page_no!=page_no){\n-    page_no = next_page_no;\n-\t  wppm_view_task_search_filter(page_no);\n-\t}\n-}\n-\n-function wppm_thread_attachment_remove(obj,attachment,comment_id,task_id,proj_id){\n-  if( confirm(wppm_admin.confirm) ){\n-   var data = {\n-     action: 'wppm_remove_thread_attachment',\n-     attachment : attachment,\n-     comment_id : comment_id,\n-     task_id:task_id,\n-     _ajax_nonce : jQuery('#wppm_ajax_nonce').val()\n-   };\n-   jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-      jQuery(obj).parent('td').parent('tr').remove();\n-      if((proj_id!=0)||(proj_id!=\"\")){\n-        wppm_open_project_tasks(task_id,proj_id);\n-      }else if((proj_id==0)||(proj_id==\"\")){\n-        wppm_open_task(task_id);\n-      }\n-    });\n-  }\n-}\n-\n-function wppm_proj_thread_attachment_remove(obj,attachment,comment_id,id){\n-  if( confirm(wppm_admin.confirm) ){\n-   var data = {\n-     action: 'wppm_remove_proj_thread_attachment',\n-     attachment : attachment,\n-     comment_id : comment_id,\n-     proj_id:id,\n-     _ajax_nonce:jQuery('#wppm_proj_thread_attachment_remove').val()\n-   };\n-   jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-      jQuery(obj).parent('td').parent('tr').remove();\n-      wppm_open_project(id);\n-    });\n-  }\n-}\n-\n-function wppm_open_project(id){\n-  jQuery('#wppm_project_list').hide();\n-  jQuery('#wppm_project_container').show();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_open_project',\n-    id:id,\n-    auth_code: wppm_admin.auth_code\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_project_container').html(response);\n-  });\n-}\n-\n-function wppm_project_search_filter(){\n-  var project_search = jQuery(\"#wppm_project_search_filter\").val();\n-  jQuery('#wppm_project_container').show();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  var data = {\n-      action: 'wppm_get_project_list',\n-      project_search:project_search\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_project_container').html(response);\n-  });\n-}\n-\n-function wppm_clone_task(id,proj_id,project_id){\n-  if(proj_id==0){\n-    wppm_task_modal_open('Clone Task'); \n-  }else{\n-    wppm_modal_open('Clone Task'); \n-  }\n-  var data = {\n-    action: 'wppm_clone_task',\n-    id: id,\n-    proj_id: proj_id,\n-    project_id: project_id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    if(proj_id==0){\n-      jQuery('#wppm_task_popup_body').html(response.body);\n-      jQuery('#wppm_task_popup_footer').html(response.footer);\n-    }else{\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    }\n-  });\n-}\n-\n-function wppm_set_clone_task(proj_id,project_id){\n-  var dataform = new FormData(jQuery('#frm_edit_clone_task_name')[0]);\n-  if(proj_id==0){\n-    wppm_task_modal_close();\n-  }else{\n-    wppm_modal_close(); \n-  }\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    if(project_id!=0){\n-      wppm_get_project_tasks_kanban_view(project_id);\n-    }else{\n-      if(proj_id==0){\n-        wppm_get_task_list();\n-      }else{\n-        wppm_get_project_tasks(proj_id);\n-      }\n-    }\n-  });\n-}\n-\n-function wppm_sort_up_task_list(sort_by,order,page){\n-  jQuery('#wppm_task_container').show();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_task_list',\n-    sort_by:sort_by,\n-    order:order,\n-    page:page\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response);\n-  }); \n-}\n-\n-function wppm_sort_up_project_list(sort_by,order){\n-  jQuery('#wppm_project_container').show();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_project_list',\n-    sort_by:sort_by,\n-    order:order\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_project_container').html(response);\n-  }); \n-}\n-\n-function wppm_get_miscellaneous_settings(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_settings_miscellaneous').addClass('active');\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_advanced_settings'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_get_appearance_settings(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_settings_appearance').addClass('active');\n-  var data = {\n-    action: 'wppm_get_appearance_settings'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_get_coworker_permission_settings(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_settings_coworker').addClass('active');\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_coworker_permission_settings'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_set_coworkers_permission_settings(){\n-  jQuery('.wppm_submit_wait').show();\n-  var dataform = new FormData(jQuery('#wppm_frm_coworkers_permission_settings')[0]);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    var response = JSON.parse(response_str);\n-    jQuery('.wppm_submit_wait').hide();\n-    if (response.sucess_status=='1') {\n-      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-    }\n-    jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-  });\n-}\n-\n-function wppm_get_rich_text_editor_settings(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_settings_rich_text_editor').addClass('active');\n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_rich_text_editor_settings'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_set_rich_text_editor_settings(){\n-  jQuery('.wppm_submit_wait').show();\n-  var dataform = new FormData(jQuery('#wppm_frm_rich_text_editor_settings')[0]);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    var response = JSON.parse(response_str);\n-    jQuery('.wppm_submit_wait').hide();\n-    if (response.sucess_status=='1') {\n-      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-    }\n-    jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-  });\n-}\n-\n-function wppm_get_ap_proj_list(current_tab_class) {\n-\tjQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\n-\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\n-\tjQuery('.wppm-setting-section-body').html(wppm_admin.loading_html);\n-  var data = { action: 'wppm_get_ap_proj_list' ,\n-      current_tab:current_tab_class\n-  };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction (response) {\n-\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\n-\t\t}\n-\t);\n-}\n-\n-function wppm_get_ap_modal_popup(current_tab_class){\n-  jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\n-\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\n-\tjQuery('.wppm-setting-section-body').html(wppm_admin.loading_html);\n-  var data = { action: 'wppm_get_ap_modal_popup' ,\n-      current_tab:current_tab_class };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction (response) {\n-\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\n-\t\t}\n-\t);\n-}\n-\n-function wppm_get_ap_task_list(current_tab_class){\n-  jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\n-\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\n-\tjQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);\n-\tvar data = { action: 'wppm_get_ap_task_list' ,\n-      current_tab:current_tab_class\n-  };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction (response) {\n-\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\n-\t\t}\n-\t);\n-}\n-\n-function wppm_get_ap_individual_proj(current_tab_class){\n-  jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\n-\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\n-\tjQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);\n-\tvar data = { action: 'wppm_get_ap_individual_proj' ,\n-      current_tab:current_tab_class\n-  };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction (response) {\n-\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\n-\t\t}\n-\t);\n-}\n-\n-function wppm_get_ap_individual_task(current_tab_class){\n-  jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\n-\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\n-\tjQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);\n-\tvar data = { action: 'wppm_get_ap_individual_task' ,\n-      current_tab:current_tab_class\n-  };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction (response) {\n-\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\n-\t\t}\n-\t);\n-}\n-\n-function wppm_get_ap_grid_view(current_tab_class){\n-  jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\n-\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\n-\tjQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);\n-\tvar data = { action: 'wppm_get_ap_grid_view' ,\n-      current_tab:current_tab_class\n-  };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction (response) {\n-\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\n-\t\t}\n-\t);\n-}\n-\n-function wppm_get_ap_settings(current_tab_class){\n-  jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\n-\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\n-\tjQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);\n-\tvar data = { action: 'wppm_get_ap_settings' ,\n-      current_tab:current_tab_class\n-  };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction (response) {\n-\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\n-\t\t}\n-\t);\n-}\n-\n-function wppm_set_ap_settings(){\n-  var form     = jQuery( '.wppm-frm-ap-settings' )[0];\n-\tvar dataform = new FormData( form );\n-\tjQuery('.wppm_submit_wait').show();\n-\tjQuery.ajax(\n-\t\t{\n-\t\t\turl: wppm_admin.ajax_url,\n-\t\t\ttype: 'POST',\n-\t\t\tdata: dataform,\n-\t\t\tprocessData: false,\n-\t\t\tcontentType: false\n-\t\t}\n-\t).done(\n-\t\tfunction (response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('.wppm_submit_wait').hide();\n-      if (response.sucess_status=='1') {\n-        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-      }\n-      jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \n-\t\t}\n-\t);\n-}\n-\n-function wppm_set_ap_proj_list() {\n-\tvar form     = jQuery( '.wppm-frm-ap-pl' )[0];\n-\tvar dataform = new FormData( form );\n-\tjQuery('.wppm_submit_wait').show();\n-\tjQuery.ajax(\n-\t\t{\n-\t\t\turl: wppm_admin.ajax_url,\n-\t\t\ttype: 'POST',\n-\t\t\tdata: dataform,\n-\t\t\tprocessData: false,\n-\t\t\tcontentType: false\n-\t\t}\n-\t).done(\n-\t\tfunction (response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('.wppm_submit_wait').hide();\n-      if (response.sucess_status=='1') {\n-        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-      }\n-      jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \n-\t\t}\n-\t);\n-}\n-\n-function wppm_set_ap_task_list(){\n-  var form     = jQuery( '.wppm-frm-ap-tl' )[0];\n-\tvar dataform = new FormData( form );\n-\tjQuery('.wppm_submit_wait').show();\n-\tjQuery.ajax(\n-\t\t{\n-\t\t\turl: wppm_admin.ajax_url,\n-\t\t\ttype: 'POST',\n-\t\t\tdata: dataform,\n-\t\t\tprocessData: false,\n-\t\t\tcontentType: false\n-\t\t}\n-\t).done(\n-\t\tfunction (response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('.wppm_submit_wait').hide();\n-      if (response.sucess_status=='1') {\n-        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-      }\n-      jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \n-\t\t}\n-\t);\n-}\n-\n-function wppm_set_ap_individual_proj(){\n-  var form     = jQuery( '.wppm-frm-ap-individual_pl' )[0];\n-\tvar dataform = new FormData( form );\n-\tjQuery('.wppm_submit_wait').show();\n-\tjQuery.ajax(\n-\t\t{\n-\t\t\turl: wppm_admin.ajax_url,\n-\t\t\ttype: 'POST',\n-\t\t\tdata: dataform,\n-\t\t\tprocessData: false,\n-\t\t\tcontentType: false\n-\t\t}\n-\t).done(\n-\t\tfunction (response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('.wppm_submit_wait').hide();\n-      if (response.sucess_status=='1') {\n-        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-      }\n-      jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \n-\t\t}\n-\t);\n-}\n-\n-function wppm_set_ap_individual_task(){\n-  var form     = jQuery( '.wppm-frm-ap-individual_tl' )[0];\n-\tvar dataform = new FormData( form );\n-\tjQuery('.wppm_submit_wait').show();\n-\tjQuery.ajax(\n-\t\t{\n-\t\t\turl: wppm_admin.ajax_url,\n-\t\t\ttype: 'POST',\n-\t\t\tdata: dataform,\n-\t\t\tprocessData: false,\n-\t\t\tcontentType: false\n-\t\t}\n-\t).done(\n-\t\tfunction (response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('.wppm_submit_wait').hide();\n-      if (response.sucess_status=='1') {\n-        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-      }\n-      jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \n-\t\t}\n-\t);\n-}\n-\n-function wppm_set_ap_modal_popup(){\n-  var form     = jQuery( '.wppm-frm-ap-modal_popup' )[0];\n-\tvar dataform = new FormData( form );\n-\tjQuery('.wppm_submit_wait').show();\n-\tjQuery.ajax(\n-\t\t{\n-\t\t\turl: wppm_admin.ajax_url,\n-\t\t\ttype: 'POST',\n-\t\t\tdata: dataform,\n-\t\t\tprocessData: false,\n-\t\t\tcontentType: false\n-\t\t}\n-\t).done(\n-\t\tfunction (response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('.wppm_submit_wait').hide();\n-      if (response.sucess_status=='1') {\n-        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-      }\n-      jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \n-\t\t}\n-\t);\n-}\n-\n-function wppm_set_ap_grid_view(){\n-  var form     = jQuery( '.wppm-frm-ap-grid_view' )[0];\n-\tvar dataform = new FormData( form );\n-\tjQuery('.wppm_submit_wait').show();\n-\tjQuery.ajax(\n-\t\t{\n-\t\t\turl: wppm_admin.ajax_url,\n-\t\t\ttype: 'POST',\n-\t\t\tdata: dataform,\n-\t\t\tprocessData: false,\n-\t\t\tcontentType: false\n-\t\t}\n-\t).done(\n-\t\tfunction (response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('.wppm_submit_wait').hide();\n-      if (response.sucess_status=='1') {\n-        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-      }\n-      jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \n-\t\t}\n-\t);\n-}\n-\n-function wppm_set_advanced_settings(){\n-  jQuery('.wppm_submit_wait').show();\n-  var dataform = new FormData(jQuery('#wppm_frm_advanced_settings')[0]);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    var response = JSON.parse(response_str);\n-    jQuery('.wppm_submit_wait').hide();\n-    if (response.sucess_status=='1') {\n-      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-    }\n-    jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-  });\n-}\n-\n-function wppm_get_project_visibility(id){\n-  wppm_modal_open('Change Visibility'); \n-  var data = {\n-    action: 'wppm_get_project_visibility',\n-    id: id\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    var response = JSON.parse(response_str);\n-    jQuery('#wppm_popup_body').html(response.body);\n-    jQuery('#wppm_popup_footer').html(response.footer);\n-  });\n-}\n-\n-function wppm_select_project_visibility(proj_id){\n-  if(jQuery('input[name=\"wppm_project_visibility_option\"]').is(':checked')){\n-    var project_visibility = jQuery('input[name=\"wppm_project_visibility_option\"]:checked').val();\n-  }else{\n-    var project_visibility = 0;\n-  }\n-  var data = {\n-    action: 'wppm_change_project_visibility',\n-    project_id:proj_id,\n-    project_visibility:project_visibility,\n-    _ajax_nonce:jQuery('#wppm_proj_visibility_ajax_nonce').val()\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function() {\n-  });\n-}\n-\n-function wppm_apply_project_filter(){\n-  wppm_project_filter = jQuery('#wppm_project_filter').find(\":selected\").val();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_project_list',\n-    wppm_project_filter:wppm_project_filter\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_project_container').html(response);\n-  }); \n-}\n-\n-function wppm_apply_task_filter(page){\n-  wppm_task_filter = jQuery('#wppm_task_filter').find(\":selected\").val();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_task_list',\n-    wppm_task_filter:wppm_task_filter,\n-    page:page\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response);\n-  }); \n-}\n-\n-function wppm_tl_reset_filter(page){\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_task_list',\n-    wppm_task_filter:'all',\n-    task_search:\"\",\n-    sort_by:\"task_name\",\n-    order:\"ASC\",\n-    wppm_proj_filter:0,\n-    page:page\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response);\n-  }); \n-}\n-\n-function wppm_apply_task_filter_grid_view(page,id){\n-  wppm_task_filter = jQuery('#wppm_task_filter').find(\":selected\").val();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html); \n-  var data = {\n-    action: 'wppm_view_project_tasks',\n-    wppm_task_filter:wppm_task_filter,\n-    page:page,\n-    id:id\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response); \n-  }); \n-}\n-\n-function wppm_tl_reset_grid_view_filter(page,id){\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html); \n-  var data = {\n-    action: 'wppm_view_project_tasks',\n-    wppm_task_filter:'all',\n-    task_search:\"\",\n-    sort_by:\"task_name\",\n-    order:\"ASC\",\n-    wppm_proj_filter:\"0\",\n-    page:page,\n-    id:id\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response); \n-  }); \n-}\n-\n-function wppm_pl_reset_filter(){\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_project_list',\n-    wppm_project_filter:'all',\n-    project_search:\"\",\n-    sort_by:\"project_name\",\n-    order:\"ASC\"\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_project_container').html(response);\n-  }); \n-}\n-\n-function wppm_tasks_by_select_project(page){\n-  wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(\":selected\").val();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_task_list',\n-    wppm_proj_filter:wppm_proj_filter,\n-    page:page\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response);\n-  });  \n-}\n-\n-function wppm_tasks_by_select_project_grid_view(page){\n-  wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(\":selected\").val();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_view_project_tasks',\n-    wppm_proj_filter:wppm_proj_filter,\n-    page:page\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_task_container').html(response);\n-  });  \n-}\n-\n-function wppm_reset_ap_proj_list(){\n-  jQuery( \"#wppm_reset_ap_proj_list_btn\" ).text( wppm_admin.please_wait );\n-  var _ajax_nonce = jQuery(\"#wppm_reset_ap_proj_list_nonce\").val();\n-\tvar data = { action: 'wppm_reset_ap_proj_list',_ajax_nonce };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction () {\n-\t\t\twppm_get_ap_proj_list('project-list');\n-\t\t}\n-\t);\n-}\n-\n-function wppm_reset_ap_task_list(){\n-  jQuery( \"#wppm_reset_ap_task_list_btn\" ).text( wppm_admin.please_wait );\n-  var _ajax_nonce = jQuery(\"#wppm_reset_ap_task_list_ajax_nonce\").val();\n-\tvar data = { action: 'wppm_reset_ap_task_list',_ajax_nonce };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction () {\n-\t\t\twppm_get_ap_task_list('task-list');\n-\t\t}\n-\t);\n-}\n-\n-function wppm_reset_ap_individual_proj(){\n-  jQuery( \"#wppm_reset_ap_individual_proj_btn\" ).text( wppm_admin.please_wait );\n-  var _ajax_nonce =  jQuery( \"#wppm_reset_ap_individual_proj_ajax_nonce\").val();\n-\tvar data = { action: 'wppm_reset_ap_individual_proj',\n-          _ajax_nonce, };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction () {\n-\t\t\twppm_get_ap_individual_proj('individual-project');\n-\t\t}\n-\t);\n-}\n-\n-function wppm_reset_ap_individual_task(){\n-  jQuery( \"#wppm_reset_ap_individual_task_btn\" ).text( wppm_admin.please_wait );\n-  var _ajax_nonce = jQuery( \"#wppm_reset_ap_individual_task_ajax_nonce\" ).val();\n-\tvar data = { action: 'wppm_reset_ap_individual_task',_ajax_nonce };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction () {\n-\t\t\twppm_get_ap_individual_task('individual-task');\n-\t\t}\n-\t);\n-}\n-\n-function wppm_reset_ap_modal_popup(){\n-  jQuery( \"#wppm_reset_ap_modal_popup_btn\" ).text( wppm_admin.please_wait );\n-  var _ajax_nonce = jQuery( \"#wppm_reset_ap_modal_popup_nonce\" ).val();\n-\tvar data = { action: 'wppm_reset_ap_modal_popup',_ajax_nonce };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction () {\n-\t\t\twppm_get_ap_modal_popup('modal-popup');\n-\t\t}\n-\t);\n-}\n-\n-function wppm_reset_ap_grid_view(){\n-  jQuery( \"#wppm_reset_ap_grid_view_btn\" ).text( wppm_admin.please_wait );\n-  var wppm_reset_grid_ajax_nonce = jQuery( \"#wppm_reset_ap_grid_view_ajax_nonce\" ).val();\n-  var data = {\n-    action: 'wppm_reset_ap_grid_view',\n-    wppm_reset_grid_ajax_nonce:wppm_reset_grid_ajax_nonce\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    wppm_get_ap_grid_view('grid-view');\n-  }); \n-}\n-\n-function wppm_reset_ap_settings(){\n-  jQuery( \"#wppm_reset_ap_settings_btn\" ).text( wppm_admin.please_wait );\n-  var _ajax_nonce = jQuery(\"#wppm_reset_ap_settings_nonce\").val();\n-\tvar data = { action: 'wppm_reset_ap_settings',_ajax_nonce };\n-\tjQuery.post(\n-\t\twppm_admin.ajax_url,\n-\t\tdata,\n-\t\tfunction () {\n-\t\t\twppm_get_ap_settings('settings');\n-\t\t}\n-\t);\n-}\n-\u002F**\n- * Bulk selector change\n- *\u002F\n-function wppm_bulk_select_change() {\n-  jQuery(\"#wppm-bulk-actions-btn\").show();\n-  var checked = jQuery(\".wppm-bulk-selector\").is(\":checked\");\n-  jQuery(\".wppm-bulk-select\").prop(\"checked\", checked);\n-  if(!checked){\n-    jQuery(\"#wppm-bulk-actions-btn\").hide();\n-  }\n-}\n-\n-function wppm_task_bulk_select_change() {\n-  jQuery(\"#wppm-task-bulk-actions-btn\").show();\n-  var checked = jQuery(\".wppm-bulk-selector\").is(\":checked\");\n-  jQuery(\".wppm-task-bulk-select\").prop(\"checked\", checked);\n-  if(!checked){\n-    jQuery(\"#wppm-bulk-actions-btn\").hide();\n-  }\n-}\n-\n-function wppm_bulk_change_status(nonce){\n-  var items = jQuery(\".wppm-bulk-select:checked\");\n-  var checked = items.length === 0 ? false : true;\n-  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\n-  if (items.length != 0) {\n-    var proj_ids = jQuery(\".wppm-bulk-select:checked\")\n-      .map(function () {\n-        return this.value;\n-      })\n-      .get();\n-      wppm_modal_open('Change Status'); \n-    var data = {\n-      action: \"wppm_get_bulk_change_proj_status\",\n-      proj_ids,\n-      _ajax_nonce: nonce,\n-    };\n-    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    });\n-  }\n-}\n-\n-function wppm_set_bulk_change_project_status(){\n-  var dataform = new FormData(jQuery('#frm_get_bulk_project_change_status')[0]);\n-  wppm_modal_close();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_get_project_list();\n-  });\n-}\n-\n-function wppm_bulk_change_category(nonce){\n-  var items = jQuery(\".wppm-bulk-select:checked\");\n-  var checked = items.length === 0 ? false : true;\n-  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\n-  if (items.length != 0) {\n-    var proj_ids = jQuery(\".wppm-bulk-select:checked\")\n-      .map(function () {\n-        return this.value;\n-      })\n-      .get();\n-      wppm_modal_open('Change Category'); \n-    var data = {\n-      action: \"wppm_get_bulk_change_proj_cat\",\n-      proj_ids,\n-      _ajax_nonce: nonce,\n-    };\n-    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    });\n-  }\n-}\n-\n-function wppm_set_bulk_change_project_category(){\n-  var dataform = new FormData(jQuery('#frm_get_bulk_project_change_category')[0]);\n-  wppm_modal_close();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_get_project_list();\n-  });\n-}\n-\n-function wppm_bulk_assign_users(nonce){\n-  var items = jQuery(\".wppm-bulk-select:checked\");\n-  var checked = items.length === 0 ? false : true;\n-  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\n-  if (items.length != 0) {\n-    var proj_ids = jQuery(\".wppm-bulk-select:checked\")\n-      .map(function () {\n-        return this.value;\n-      })\n-      .get();\n-      wppm_modal_open('Assign Co-workers'); \n-    var data = {\n-      action: \"wppm_get_bulk_assign_users\",\n-      proj_ids,\n-      _ajax_nonce: nonce,\n-    };\n-    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    });\n-  }\n-}\n-\n-function wppm_set_bulk_project_users(){\n-  var dataform = new FormData(jQuery('#frm_get_bulk_project_users')[0]);\n-  wppm_modal_close();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_get_project_list();\n-  });\n-}\n-\n-function wppm_bulk_delete_project(nonce){\n-  var items = jQuery(\".wppm-bulk-select:checked\");\n-  var checked = items.length === 0 ? false : true;\n-  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\n-  if (items.length != 0) {\n-    var proj_ids = jQuery(\".wppm-bulk-select:checked\")\n-      .map(function () {\n-        return this.value;\n-      })\n-      .get();\n-      wppm_modal_open('Delete Project'); \n-    var data = {\n-      action: \"wppm_get_bulk_delete_project\",\n-      proj_ids,\n-      _ajax_nonce: nonce,\n-    };\n-    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    });\n-  }\n-}\n-\n-function wppm_set_delete_bulk_projects(){\n-  var dataform = new FormData(jQuery('#frm_delete_bulk_project')[0]);\n-  wppm_modal_close();\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_get_project_list();\n-  });\n-}\n-\n-function wppm_bulk_change_task_status(nonce){\n-  var items = jQuery(\".wppm-task-bulk-select:checked\");\n-  var checked = items.length === 0 ? false : true;\n-  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\n-  if (items.length != 0) {\n-    var task_ids = jQuery(\".wppm-task-bulk-select:checked\")\n-      .map(function () {\n-        return this.value;\n-      })\n-      .get();\n-      wppm_task_modal_open('Change Task Status'); \n-    var data = {\n-      action: \"wppm_get_bulk_change_task_status\",\n-      task_ids,\n-      _ajax_nonce: nonce,\n-    };\n-    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('#wppm_task_popup_body').html(response.body);\n-      jQuery('#wppm_task_popup_footer').html(response.footer);\n-    });\n-  }\n-}\n-\n-function wppm_set_bulk_change_task_priority(){\n-  var dataform = new FormData(jQuery('#frm_get_bulk_task_change_priority')[0]);\n-  wppm_task_modal_close();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_get_task_list();\n-  });\n-}\n-\n-function wppm_set_bulk_change_task_status(){\n-  var dataform = new FormData(jQuery('#frm_get_bulk_task_change_status')[0]);\n-  wppm_task_modal_close();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_get_task_list();\n-  });\n-}\n-\n-function wppm_bulk_change_task_priority(nonce){\n-  var items = jQuery(\".wppm-task-bulk-select:checked\");\n-  var checked = items.length === 0 ? false : true;\n-  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\n-  if (items.length != 0) {\n-    var task_ids = jQuery(\".wppm-task-bulk-select:checked\")\n-      .map(function () {\n-        return this.value;\n-      })\n-      .get();\n-      wppm_task_modal_open('Change Task Priority'); \n-    var data = {\n-      action: \"wppm_get_bulk_change_task_priority\",\n-      task_ids,\n-      _ajax_nonce: nonce\n-    };\n-    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('#wppm_task_popup_body').html(response.body);\n-      jQuery('#wppm_task_popup_footer').html(response.footer);\n-    });\n-  }\n-}\n-\n-function wppm_bulk_delete_task(nonce){\n-  var items = jQuery(\".wppm-task-bulk-select:checked\");\n-  var checked = items.length === 0 ? false : true;\n-  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\n-  if (items.length != 0) {\n-    var task_ids = jQuery(\".wppm-task-bulk-select:checked\")\n-      .map(function () {\n-        return this.value;\n-      })\n-      .get();\n-      wppm_task_modal_open('Delete Task'); \n-    var data = {\n-      action: \"wppm_get_bulk_delete_task\",\n-      task_ids,\n-      _ajax_nonce: nonce,\n-    };\n-    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-      var response = JSON.parse(response_str);\n-      jQuery('#wppm_task_popup_body').html(response.body);\n-      jQuery('#wppm_task_popup_footer').html(response.footer);\n-    });\n-  }\n-}\n-\n-function wppm_set_delete_bulk_tasks(){\n-  var dataform = new FormData(jQuery('#frm_delete_bulk_tasks')[0]);\n-  wppm_task_modal_close();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_get_task_list();\n-  });\n-}\n-\n-function wppm_print_task(id){\n-  jQuery('#wppmprint_menu').css('display', 'flex');\n-}\n-\n-function wppm_open_pdf(id){\n-  window.open(wppm_admin.ajax_url + \"?action=wppm_get_task_pdf&id=\" + id, \"_blank\");\n-}\n-\n-function wppm_download_pdf(id){\n-  window.open(wppm_admin.ajax_url + \"?action=wppm_download_pdf&id=\" + id, \"_blank\");\n-}\n-\n-function wppm_archive_task(id,is_archived,project_id){\n-  if (!confirm(wppm_admin.confirm)) {\n-      return;\n-  } else {\n-    var data = {\n-      action: 'wppm_archive_task',\n-      id: id,\n-      is_archived: is_archived,\n-      project_id: project_id,\n-    };\n-    jQuery.post(wppm_admin.ajax_url, data, function() { \n-      wppm_open_task(id,project_id);\n-    });\n-  }\n-}\n-\n-function wppm_get_print_task_settings(){\n-  jQuery('.wppm_setting_pills li').removeClass('active');\n-  jQuery('#wppm_settings_print_task').addClass('active'); \n-  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_print_task_settings'\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('.wppm_setting_col2').html(response);\n-  });\n-}\n-\n-function wppm_set_print_task_settings(){\n-  jQuery('.wppm_submit_wait').show();\n-  var dataform = new FormData(jQuery('#wppm_print_task_settings')[0]);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    var response = JSON.parse(response_str);\n-    jQuery('.wppm_submit_wait').hide();\n-    if (response.sucess_status=='1') {\n-      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-    }\n-    jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-  });\n-}\n-\n-function wppm_edit_checklist_item(item_id,checklist_id,proj_id,task_id){\n-  wppm_task_modal_open('Edit Checklist Item') ;\n-  var data = {\n-    action: 'wppm_edit_checklist_item',\n-    item_id:item_id,\n-    checklist_id: checklist_id,\n-    task_id: task_id,\n-    proj_id: proj_id,\n-    _ajax_nonce:jQuery('#wppm_edit_checklist_item_ajax_nonce').val()\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    var response = JSON.parse(response);\n-    if(proj_id==0){\n-      jQuery('#wppm_task_popup_body').html(response.body);\n-      jQuery('#wppm_task_popup_footer').html(response.footer);\n-    }else{\n-      jQuery('#wppm_popup_body').html(response.body);\n-      jQuery('#wppm_popup_footer').html(response.footer);\n-    }\n-  });\n-}\n-\n-function wppm_set_checklist_item_name(item_id,checklist_id,task_id){\n-  var dataform = new FormData(jQuery('#frm_get_edit_checklist_item')[0]);\n-  wppm_task_modal_close();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_open_task(task_id);\n-  });\n-}\n-\n-function wppm_get_project_tasks_kanban_view(proj_id){\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_get_project_tasks_kanban_view',\n-    id:proj_id\n-  };\n-  jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-    jQuery('#wppm_project_container').html(response);\n-  });\n-}\n-\n+function wppm_add_new_project(){\r\n+  jQuery('#wppm_project_container').show();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_add_new_project'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_project_container').html(response);\r\n+  });  \r\n+}\r\n+\r\n+function wppm_projects(){\r\n+  jQuery('#wppm_project_container').hide();\r\n+  jQuery('#wppm_project_list').show(); \r\n+}\r\n+\r\n+function wppm_get_users(proj_id){\r\n+  wppm_modal_open('Add Users'); \r\n+  var data = {\r\n+    action: 'wppm_get_users',\r\n+    proj_id: proj_id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_general_settings(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_settings_general').addClass('active');\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_general_setings'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_page_settings(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_settings_page').addClass('active');\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_page_setings'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_page_settings(){\r\n+  jQuery('.wppm_submit_wait').show();\r\n+    var dataform = new FormData(jQuery('#wppm-frm-ps')[0]);\r\n+    jQuery.ajax({\r\n+      url: wppm_admin.ajax_url,\r\n+      type: 'POST',\r\n+      data: dataform,\r\n+      processData: false,\r\n+      contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('.wppm_submit_wait').hide();\r\n+    if (response.sucess_status=='1') {\r\n+      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+    }\r\n+    jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+  });\r\n+}\r\n+\r\n+ \u002F*\r\n+ * Category Settings\r\n+ *\u002F\r\n+function wppm_get_category_settings(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_settings_category').addClass('active');\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_category_settings'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+\u002F**\r\n+ * Delete category\r\n+ *\u002F\r\n+function wppm_delete_category(cat_id) {\r\n+\r\n+  const flag = confirm(wppm_admin.confirm);\r\n+  if (!flag) return;\r\n+\r\n+  var data = { action: 'wppm_delete_category', \r\n+    cat_id,\r\n+    _ajax_nonce:jQuery('#wppm_delete_cat_ajax_nonce').val()\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function (res) {\r\n+    wppm_get_category_settings();\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_proj_status_settings(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_settings_proj_status').addClass('active');\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_proj_status_settings'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_add_proj_status(){\r\n+  wppm_modal_open(wppm_admin.add_new_status); \r\n+  var data = {\r\n+    action: 'wppm_get_add_proj_status'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+    jQuery('#wppm_proj_status_name').focus();\r\n+  });\r\n+}\r\n+\r\n+function wppm_delete_proj_status(status_id){\r\n+  const flag = confirm(wppm_admin.confirm);\r\n+  if (!flag) return;\r\n+\r\n+  var data = { action: 'wppm_delete_status', status_id,\r\n+    _ajax_nonce:jQuery('#wppm_delete_pstatus_ajax_nonce').val()\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function (res) {\r\n+    wppm_get_proj_status_settings();\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_project_users(){\r\n+  var dataform = new FormData(jQuery('#frm_get_project_users')[0]);\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  var proj_id = jQuery('#wppm_proj_id').val();\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function () {\r\n+    wppm_modal_close(); \r\n+    wppm_open_project(proj_id);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_task_users(proj_id,project_id){\r\n+  var dataform = new FormData(jQuery('#frm_get_task_users')[0]);\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var task_id = jQuery('#wppm_task_id').val();\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function () {\r\n+    if((proj_id!=0)||(proj_id!=\"\")){\r\n+      wppm_task_modal_close(); \r\n+      wppm_open_project_tasks(task_id,proj_id);\r\n+    }else if((proj_id==0)||(proj_id==\"\")){\r\n+      wppm_task_modal_close(); \r\n+      wppm_open_task(task_id,project_id);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_project_list(page_no){\r\n+  jQuery('#wppm_project_container').show();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);\r\n+\tdataform.append(\"page_no\", page_no);\r\n+  dataform.append(\"action\", 'wppm_get_project_list');\r\n+  jQuery.ajax( {\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  }) \r\n+  .done(function( response ) {\r\n+    jQuery('#wppm_project_container').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_add_new_task(proj_id,project_id){\r\n+  jQuery('#wppm_task_container').show();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_add_new_task',\r\n+    proj_id:proj_id,\r\n+    project_id:project_id\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response);\r\n+  }); \r\n+}\r\n+\r\n+function wppm_get_task_list(page_no,id){\r\n+  jQuery('#wppm_task_container').show();\r\n+  \u002F\u002F window.history.replaceState( {}, null, 'admin.php?page=wppm-tasks&section=task-list' );\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_task_list',\r\n+    page_no:page_no,\r\n+    page:wppm_admin.page,\r\n+    project_id:id\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response);\r\n+  }); \r\n+}\r\n+\r\n+function wppm_get_task_prioriy_settings(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_settings_task_priorities').addClass('active');\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_priority_settings'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_add_task_priority(){\r\n+  wppm_modal_open(wppm_admin.add_new_priority); \r\n+  var data = {\r\n+    action: 'wppm_add_task_priority'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+    jQuery('#wppm_cat_name').focus();\r\n+  });\r\n+}\r\n+\r\n+function wppm_delete_task_priority(priority_id){\r\n+  const flag = confirm(wppm_admin.confirm);\r\n+  if (!flag) return;\r\n+\r\n+  var data = { action: 'wppm_delete_task_priority', priority_id,\r\n+    _ajax_nonce:jQuery('#wppm_delete_tprio_ajax_nonce').val()\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function (res) {\r\n+    wppm_get_task_prioriy_settings();\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_task_status_settings(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_settings_task_status').addClass('active');\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_task_status_settings'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_add_task_status(){\r\n+  wppm_modal_open(wppm_admin.add_new_status); \r\n+  var data = {\r\n+    action: 'wppm_get_add_task_status'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+    jQuery('#wppm_cat_name').focus();\r\n+  });\r\n+}\r\n+\r\n+function wppm_delete_task_status(status_id){\r\n+  const flag = confirm(wppm_admin.confirm);\r\n+  if (!flag) return;\r\n+\r\n+  var data = { action: 'wppm_delete_task_status', status_id,\r\n+    _ajax_nonce: jQuery('#wppm_delete_tstatus_ajax_nonce').val()};\r\n+  jQuery.post(wppm_admin.ajax_url, data, function (res) {\r\n+    wppm_get_task_status_settings();\r\n+  });\r\n+}\r\n+\r\n+function wppm_task_search_filter(page){\r\n+  var task_search = jQuery(\"#wppm_task_search_filter\").val();\r\n+  jQuery('#wppm_task_container').show();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+      action: 'wppm_get_task_list',\r\n+      task_search:task_search,\r\n+      page:page\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_view_task_search_filter(page_no,page,proj_id){\r\n+  var task_search = jQuery(\"#wppm_view_task_search_filter\").val() || '';\r\n+  jQuery('#wppm_task_container').show();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+\r\n+  var data = {\r\n+    action: 'wppm_get_task_list_card_view',\r\n+    task_search:task_search,\r\n+    page_no:page_no,\r\n+    page:page,\r\n+    project_id:proj_id\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_open_task(id,proj_id){\r\n+  jQuery('#wppm_task_container').show();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_open_task',\r\n+    id:id,\r\n+    auth_code: wppm_admin.auth_code,\r\n+    page:wppm_admin.page,\r\n+    project_id:proj_id\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_open_dashboard_task(id){\r\n+     window.location.href = 'admin.php?page=wppm-tasks&task_id=' + id;\r\n+}\r\n+\r\n+function wppm_open_project_tasks(id,proj_id){\r\n+  wppm_modal_open('Open Tasks');\r\n+  jQuery('#wppm_task_container').show();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_open_task',\r\n+    id: id,\r\n+    proj_id:proj_id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    jQuery('#wppm_popup_body').html(response_str);\r\n+    \u002F\u002FjQuery('#wppm_task_container').html(response_str);\r\n+  });\r\n+}\r\n+\r\n+function wppm_add_new_checklist(task_id,proj_id){\r\n+  if(jQuery('#wppm_checklist_label').val()==''){\r\n+    jQuery('#wppm_checklist_label').focus();\r\n+    return  false;\r\n+  }\r\n+  var data = {\r\n+    action: 'wppm_add_new_checklist',\r\n+    task_id: task_id,\r\n+    proj_id: proj_id,\r\n+    checklist_name: jQuery('#wppm_checklist_label').val(),\r\n+    _ajax_nonce:jQuery('#wppm_checklist_ajax_nonce').val()\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    if((proj_id!=0)||(proj_id!=\"\")){\r\n+      \u002F\u002Fwppm_modal_close(); \r\n+      wppm_open_project_tasks(task_id,proj_id);\r\n+    }else if((proj_id==0)||(proj_id==\"\")){\r\n+      \u002F\u002Fwppm_modal_close(); \r\n+      wppm_open_task(task_id);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_add_new_checklist_item(checklist_id,task_id,proj_id){\r\n+  if(jQuery('#wppm_checklist_item_label_'+checklist_id).val()==''){\r\n+    jQuery('#wppm_checklist_item_label_'+checklist_id).focus();\r\n+    return  false;\r\n+  }\r\n+  var data = {\r\n+    action: 'wppm_add_new_checklist_item',\r\n+    checklist_id: checklist_id,\r\n+    proj_id:proj_id,\r\n+    label: jQuery('#wppm_checklist_item_label_'+checklist_id).val(),\r\n+    _ajax_nonce:jQuery('#wppm_checklist_item_ajax_nonce').val()\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    if((proj_id!=0)||(proj_id!=\"\")){\r\n+      wppm_open_project_tasks(task_id,proj_id);\r\n+    }else if((proj_id==0)||(proj_id==\"\")){\r\n+      wppm_open_task(task_id);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_delete_checklist(checklist_id,task_id,proj_id){\r\n+  const flag = confirm(wppm_admin.confirm);\r\n+  if (!flag) return;\r\n+  var data = {\r\n+    action: 'wppm_delete_checklist',\r\n+    checklist_id: checklist_id,\r\n+    task_id:task_id,\r\n+    proj_id:proj_id,\r\n+    _ajax_nonce:jQuery('#wppm_delete_checklist_ajax_nonce').val()\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    if((proj_id!=0)||(proj_id!=\"\")){\r\n+      wppm_open_project_tasks(task_id,proj_id);\r\n+    }else if((proj_id==0)||(proj_id==\"\")){\r\n+      wppm_open_task(task_id);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_delete_checklist_item(item_id,checklist_id,proj_id,task_id){\r\n+  const flag = confirm(wppm_admin.confirm);\r\n+  if (!flag) return;\r\n+  var data = {\r\n+    action: 'wppm_remove_checklist_item',\r\n+    item_id:item_id,\r\n+    checklist_id: checklist_id,\r\n+    proj_id:proj_id,\r\n+    task_id:task_id,\r\n+    _ajax_nonce:jQuery('#wppm_delete_checklist_item_ajax_nonce').val()\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    if((proj_id!=0)||(proj_id!=\"\")){\r\n+      wppm_open_project_tasks(task_id,proj_id);\r\n+    }else if((proj_id==0)||(proj_id==\"\")){\r\n+      wppm_open_task(task_id);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_checklist_progress(checklist_id,item_id,task_id){\r\n+  var $checkboxes = jQuery('.wppm_checklist_item_'+checklist_id);\r\n+  var $progress = jQuery('#CheckProgress_'+checklist_id);\r\n+  var total = $checkboxes.length;\r\n+  var checked = jQuery('.wppm_checklist_item_'+checklist_id).filter(':checked').length;\r\n+  var progressWidth = (checked \u002F total) * 100;\r\n+  var checked_item;\r\n+  jQuery('#CheckProgress_'+checklist_id).css('background','#5ba4cf');\r\n+  jQuery('#CheckProgress_'+checklist_id).css('width', progressWidth + '%');\r\n+  if (jQuery(\"#wppm_checklist_item_\"+item_id).prop(\"checked\")==true) { \r\n+    checked_item=1;\r\n+  }else{\r\n+    checked_item=0;\r\n+  }\r\n+  var data = {\r\n+    action: 'wppm_set_checklist_progress',\r\n+    checklist_id: checklist_id,\r\n+    item_id:item_id,\r\n+    checked_item: checked_item,\r\n+    _ajax_nonce:jQuery('#wppm_checklist_progress_ajax_nonce').val()\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    wppm_open_task(task_id);\r\n+  });\r\n+}\r\n+\r\n+function wppm_open_individual_task(id){\r\n+  jQuery('#wppm_project_container').show();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_open_task',\r\n+    id:id\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_project_container').html(response);\r\n+  });\r\n+}\r\n+\r\n+\r\n+function wppm_display_grid_view(page,id){\r\n+  var task_search = jQuery(\"#wppm_view_task_search_filter\").val() || '';\r\n+  jQuery('#wppm_task_container').show();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+        action: 'wppm_get_task_list_card_view',\r\n+        task_search: task_search,\r\n+        page:page,  \r\n+        id:id\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_remove_filter(id){\r\n+  jQuery('#wppm_user_display_container_'+id).remove();\r\n+}\r\n+\r\n+function wppm_remove_user_from_project(id){\r\n+  jQuery('#wppm_user_container_'+id).remove();\r\n+}\r\n+\r\n+function wppm_remove_task_user_filter(id){\r\n+  jQuery('#wppm_task_user_display_container_'+id).remove();\r\n+}\r\n+\r\n+function wppm_attachment_cancel( obj ){\r\n+  jQuery(obj).parent().remove();\r\n+}\r\n+\r\n+function wppm_get_en_general_setting(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_en_setting_general').addClass('active');\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  \r\n+  var data = {\r\n+    action: 'wppm_get_en_general_setting',\r\n+  };\r\n+\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_en_general_settings(){\r\n+  jQuery('.wppm_submit_wait').show();\r\n+  var dataform = new FormData(jQuery('#wppm_en_frm_general_settings')[0]);\r\n+  \r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('.wppm_submit_wait').hide();\r\n+    if (response.sucess_status=='1') {\r\n+      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+    }\r\n+    jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_en_task_notifications(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_en_ticket_notifications').addClass('active');\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  \r\n+  var data = {\r\n+    action: 'wppm_get_en_task_notifications'\r\n+  };\r\n+\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_edit_task_status(id,proj_id,project_id){\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_open('Edit'); \r\n+  }else{\r\n+    wppm_modal_open('Edit'); \r\n+  }\r\n+  var data = {\r\n+    action: 'wppm_edit_task_status',\r\n+    task_id: id,\r\n+    proj_id:proj_id,\r\n+    project_id:project_id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    if(proj_id==0){\r\n+      jQuery('#wppm_task_popup_body').html(response.body);\r\n+      jQuery('#wppm_task_popup_footer').html(response.footer);\r\n+    }else{\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_edit_task_users(task_id,proj_id,project_id){\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_open('Add Users'); \r\n+  }else{\r\n+    wppm_modal_open('Add Users'); \r\n+  } \r\n+  var data = {\r\n+    action: 'wppm_get_task_users',\r\n+    task_id: task_id,\r\n+    proj_id:proj_id,\r\n+    project_id:project_id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    if(proj_id==0){\r\n+      jQuery('#wppm_task_popup_body').html(response.body);\r\n+      jQuery('#wppm_task_popup_footer').html(response.footer);\r\n+    }else{\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_edit_task_details(id,proj_id,project_id){\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_open('Edit Task Details'); \r\n+  }else{\r\n+    wppm_modal_open('Edit Task Details'); \r\n+  }\r\n+  var data = {\r\n+    action: 'wppm_edit_task_details',\r\n+    task_id: id,\r\n+    proj_id:proj_id,\r\n+    project_id:project_id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    if(proj_id==0){\r\n+      jQuery('#wppm_task_popup_body').html(response.body);\r\n+      jQuery('#wppm_task_popup_footer').html(response.footer);\r\n+    }else{\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_change_task_status(task_id,proj_id,project_id){\r\n+  var dataform = new FormData(jQuery('#frm_get_task_change_status')[0]);\r\n+  if(proj_id == 0){\r\n+    wppm_task_modal_close();\r\n+  }else{\r\n+    wppm_modal_close();\r\n+  }\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    if((proj_id!=0)||(proj_id!=\"\")){\r\n+      wppm_open_project_tasks(task_id,proj_id);\r\n+    }else if((proj_id==0)||(proj_id==\"\")){\r\n+      wppm_open_task(task_id,project_id);\r\n+    }\r\n+    \r\n+  }); \r\n+}\r\n+\r\n+function wppm_edit_task_creator(task_id,proj_id,project_id){\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_open('Edit Task Creator'); \r\n+  }else{\r\n+    wppm_modal_open('Edit Task Creator'); \r\n+  }\r\n+  var data = {\r\n+    action: 'wppm_edit_task_creator',\r\n+    task_id: task_id,\r\n+    proj_id: proj_id,\r\n+    project_id: project_id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    if(proj_id==0){\r\n+      jQuery('#wppm_task_popup_body').html(response.body);\r\n+      jQuery('#wppm_task_popup_footer').html(response.footer);\r\n+    }else{\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_change_raised_by(task_id,proj_id,project_id){\r\n+  var dataform = new FormData(jQuery('#frm_get_task_creator')[0]);\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_close(); \r\n+  }else{\r\n+    wppm_modal_close(); \r\n+  }\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    if((proj_id!=0)||(proj_id!=\"\")){\r\n+      wppm_open_project_tasks(task_id,proj_id);\r\n+    }else if((proj_id==0)||(proj_id==\"\")){\r\n+      wppm_open_task(task_id,project_id);\r\n+    }\r\n+  }); \r\n+}\r\n+\r\n+function wppm_set_change_task_details(task_id,proj_id,project_id){\r\n+  var dataform = new FormData(jQuery('#frm_get_edit_task_deatils')[0]);\r\n+  var description = tinyMCE.get('wppm_edit_task_description').getContent().trim();\r\n+  dataform.append('wppm_edit_task_description', description);\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_close(); \r\n+  }else{\r\n+    wppm_modal_close(); \r\n+  }\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    if((proj_id!=0)||(proj_id!=\"\")){\r\n+      wppm_open_project_tasks(task_id,proj_id);\r\n+    }else if((proj_id==0)||(proj_id==\"\")){\r\n+      wppm_open_task(task_id,project_id);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_edit_thread(comment_id,task_id,proj_id){\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_open('Edit Thread'); \r\n+  }else{\r\n+    wppm_modal_open('Edit Thread'); \r\n+  }\r\n+  var data = {\r\n+    action: 'wppm_edit_task_thread',\r\n+    comment_id:comment_id,\r\n+    task_id: task_id,\r\n+    proj_id: proj_id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    if(proj_id==0){\r\n+      jQuery('#wppm_task_popup_body').html(response.body);\r\n+      jQuery('#wppm_task_popup_footer').html(response.footer);\r\n+    }else{\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_edit_proj_thread(comment_id,proj_id){\r\n+  wppm_modal_open('Edit Thread'); \r\n+  var data = {\r\n+    action: 'wppm_edit_proj_thread',\r\n+    comment_id:comment_id,\r\n+    proj_id: proj_id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_edit_task_thread(task_id,proj_id){\r\n+  var dataform = new FormData(jQuery('#frm_edit_task_thread')[0]);\r\n+  if(wppm_admin.rich_text_editor == 1){\r\n+    var comment_body = tinyMCE.get('wppm_edit_task_thread_editor').getContent().trim();\r\n+  }else{\r\n+    var comment_body = jQuery('#wppm_edit_task_thread_editor').val().trim();\r\n+  }\r\n+  dataform.append('wppm_edit_task_thread', comment_body);\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_close(); \r\n+  }else{\r\n+    wppm_modal_close(); \r\n+  }\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    if((proj_id!=0)||(proj_id!=\"\")){\r\n+      wppm_open_project_tasks(task_id,proj_id);\r\n+    }else if((proj_id==0)||(proj_id==\"\")){\r\n+      wppm_open_task(task_id);\r\n+    }\r\n+  }); \r\n+}\r\n+\r\n+function wppm_set_edit_proj_thread(proj_id){\r\n+  var dataform = new FormData(jQuery('#frm_edit_proj_thread')[0]);\r\n+  if(wppm_admin.rich_text_editor == 1){\r\n+    var comment_body = tinyMCE.get('wppm_edit_proj_thread_editor').getContent().trim();\r\n+  }else{\r\n+    var comment_body = jQuery('#wppm_edit_proj_thread_editor').val().trim();\r\n+  }\r\n+  dataform.append('wppm_edit_proj_thread', comment_body);\r\n+  wppm_modal_close();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+      wppm_open_project(proj_id);\r\n+  }); \r\n+}\r\n+\r\n+function wppm_delete_thread(comment_id,task_id,proj_id){\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_open('Delete Thread'); \r\n+  }else{\r\n+    wppm_modal_open('Delete Thread'); \r\n+  }\r\n+  var data = {\r\n+    action: 'wppm_delete_task_thread',\r\n+    comment_id:comment_id,\r\n+    task_id: task_id,\r\n+    proj_id:proj_id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    if(proj_id==0){\r\n+      jQuery('#wppm_task_popup_body').html(response.body);\r\n+      jQuery('#wppm_task_popup_footer').html(response.footer);\r\n+    }else{\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_delete_proj_thread(comment_id,proj_id){\r\n+  wppm_modal_open('Delete Thread'); \r\n+  var data = {\r\n+    action: 'wppm_delete_proj_thread',\r\n+    comment_id:comment_id,\r\n+    proj_id:proj_id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_delete_thread(task_id,proj_id){\r\n+  var dataform = new FormData(jQuery('#frm_delete_task_thread')[0]);\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_close(); \r\n+  }else{\r\n+    wppm_modal_close(); \r\n+  }\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    if((proj_id!=0)||(proj_id!=\"\")){\r\n+      wppm_open_project_tasks(task_id,proj_id);\r\n+    }else if((proj_id==0)||(proj_id==\"\")){\r\n+      wppm_open_task(task_id);\r\n+    }\r\n+  }); \r\n+}\r\n+\r\n+function wppm_set_delete_proj_thread(proj_id){\r\n+  var dataform = new FormData(jQuery('#frm_delete_proj_thread')[0]);\r\n+  wppm_modal_close();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_open_project(proj_id);\r\n+  }); \r\n+}\r\n+\r\n+function wppm_edit_proj_details(id){\r\n+  wppm_modal_open('Edit Project Details'); \r\n+  var data = {\r\n+    action: 'wppm_edit_project_details',\r\n+    id: id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_change_project_details(id){\r\n+  var dataform = new FormData(jQuery('#frm_get_edit_project_deatils')[0]);\r\n+  var description = tinyMCE.get('wppm_edit_project_description').getContent().trim();\r\n+  dataform.append('wppm_edit_project_description', description);\r\n+  wppm_modal_close();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_open_project(id);\r\n+  });\r\n+}\r\n+\r\n+function wppm_edit_project_status(id){\r\n+  wppm_modal_open('Edit Project Status'); \r\n+  var data = {\r\n+    action: 'wppm_edit_project_status',\r\n+    id: id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_change_project_status(id){\r\n+  var dataform = new FormData(jQuery('#frm_get_project_change_status')[0]);\r\n+  wppm_modal_close();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_open_project(id);\r\n+  });\r\n+}\r\n+\r\n+function wppm_edit_project_creator(id){\r\n+  wppm_modal_open('Edit Project Creator'); \r\n+  var data = {\r\n+    action: 'wppm_edit_project_creator',\r\n+    id: id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_change_project_raised_by(id){\r\n+  var dataform = new FormData(jQuery('#frm_get_project_creator')[0]);\r\n+  wppm_modal_close();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_open_project(id);\r\n+  });\r\n+}\r\n+\r\n+function wppm_edit_project_users(id){\r\n+  wppm_modal_open('Add Users'); \r\n+  var data = {\r\n+    action: 'wppm_get_project_users',\r\n+    id: id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+  });\r\n+}\r\n+\r\n+function wppm_delete_project(id){\r\n+  wppm_modal_open('Delete Project'); \r\n+  var data = {\r\n+    action: 'wppm_get_delete_project',\r\n+    id: id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_delete_project(){\r\n+  var dataform = new FormData(jQuery('#frm_delete_project')[0]);\r\n+  wppm_modal_close();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_get_project_list();\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_delete_task(id,proj_id,project_id){\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_open('Delete Task'); \r\n+  }else{\r\n+    wppm_modal_open('Delete Task'); \r\n+  } \r\n+  var data = {\r\n+    action: 'wppm_get_delete_task',\r\n+    id: id,\r\n+    proj_id:proj_id,\r\n+    project_id:project_id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    if(proj_id==0){\r\n+      jQuery('#wppm_task_popup_body').html(response.body);\r\n+      jQuery('#wppm_task_popup_footer').html(response.footer);\r\n+    }else{\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_delete_task(proj_id,project_id){\r\n+  var dataform = new FormData(jQuery('#frm_delete_task')[0]);\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_close();\r\n+  }else{\r\n+    wppm_modal_close(); \r\n+  }\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    if(project_id!=0){\r\n+      wppm_get_project_tasks_kanban_view(project_id);\r\n+    }else{\r\n+      if(proj_id==0){\r\n+        wppm_get_task_list();\r\n+      }else{\r\n+        wppm_get_project_tasks(proj_id);\r\n+      }\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_edit_email_notification(id){\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_edit_email_notification',\r\n+    id : id\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_tinymce(selector,body_id){ \r\n+  jQuery('#visual').addClass('btn btn-primary');\r\n+  jQuery('#text').removeClass('btn btn-primary');\r\n+  jQuery('#text').addClass('btn btn-default');\r\n+  tinymce.init({ \r\n+\t  selector:'#'+selector,\r\n+\t  body_id: body_id,\r\n+\t  menubar: false,\r\n+\t\tstatusbar: false,\r\n+\t  height : '200',\r\n+\t  plugins: [\r\n+\t      'lists link image directionality'\r\n+\t  ],\r\n+\t  image_advtab: true,\r\n+\t  toolbar: 'bold italic underline blockquote | alignleft aligncenter alignright | bullist numlist | rtl | link image',\r\n+\t  branding: false,\r\n+\t  autoresize_bottom_margin: 20,\r\n+\t  browser_spellcheck : true,\r\n+\t  relative_urls : false,\r\n+\t  remove_script_host : false,\r\n+\t  convert_urls : true,\r\n+\t\tsetup: function (editor) {\r\n+\t  }\r\n+\t});\r\n+}\r\n+\r\n+function wppm_get_textarea(){\r\n+  jQuery('#visual').removeClass('btn btn-primary');\r\n+  jQuery('#visual').addClass('btn btn-default');\r\n+  jQuery('#text').addClass('btn btn-primary');\r\n+  tinymce.remove();\r\n+}\r\n+\r\n+function wppm_get_templates(){\r\n+  wppm_modal_open(wppm_admin.templates);\r\n+  var data = {\r\n+    action: 'wppm_get_templates'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_edit_email_notification(){\r\n+  var dataform = new FormData(jQuery('#wppm_edit_email_notification_settings')[0]);\r\n+  wppm_modal_close();\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    var response = JSON.parse(response_str);\r\n+    if (response.sucess_status=='1') {\r\n+      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+    }\r\n+    jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+    wppm_get_en_task_notifications();\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_general_settings(){\r\n+  jQuery('.wppm_submit_wait').show();\r\n+  var dataform = new FormData(jQuery('#wppm_frm_general_settings')[0]);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('.wppm_submit_wait').hide();\r\n+    if (response.sucess_status=='1') {\r\n+      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+    }\r\n+    jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_project_tasks(id){\r\n+  wppm_modal_open('Tasks'); \r\n+  var data = {\r\n+    action: 'wppm_get_project_tasks',\r\n+    id: id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+  });\r\n+}\r\n+\r\n+function wppm_create_project_task(id){\r\n+  wppm_task_modal_open('Tasks'); \r\n+  var data = {\r\n+    action: 'wppm_add_new_task',\r\n+    proj_id: id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    jQuery('#wppm_popup_body').html(response_str);\r\n+  });\r\n+}\r\n+\r\n+function wppm_load_prev_page(prev_page_no,page_no,sort_by, order){\r\n+  if(prev_page_no!=0){\r\n+    page_no=prev_page_no-1;\r\n+\t\twppm_get_project_list(page_no,sort_by,order);\r\n+\t}\r\n+}\r\n+\r\n+function wppm_load_next_page(next_page_no,page_no,sort_by,order){\r\n+\tif(next_page_no!=page_no){\r\n+    page_no = next_page_no;\r\n+\t  wppm_get_project_list(page_no,sort_by,order);\r\n+\t}\r\n+}\r\n+\r\n+function wppm_load_prev_task_page(prev_page_no,page_no, sort_by, order){\r\n+  if(prev_page_no!=0){\r\n+    page_no=prev_page_no-1;\r\n+\t\twppm_get_task_list(page_no,sort_by,order);\r\n+\t}\r\n+}\r\n+\r\n+function wppm_load_next_task_page(next_page_no,page_no,sort_by,order){\r\n+\tif(next_page_no!=page_no){\r\n+    page_no = next_page_no;\r\n+\t  wppm_get_task_list(page_no,sort_by,order);\r\n+\t}\r\n+}\r\n+\r\n+function wppm_load_prev_task_page_card_view(prev_page_no,page_no){\r\n+  if(prev_page_no!=0){\r\n+    page_no=prev_page_no-1;\r\n+\t\twppm_view_task_search_filter(page_no);\r\n+\t}\r\n+}\r\n+\r\n+function wppm_load_next_task_page_card_view(next_page_no,page_no){\r\n+\tif(next_page_no!=page_no){\r\n+    page_no = next_page_no;\r\n+\t  wppm_view_task_search_filter(page_no);\r\n+\t}\r\n+}\r\n+\r\n+function wppm_thread_attachment_remove(obj,attachment,comment_id,task_id,proj_id){\r\n+  if( confirm(wppm_admin.confirm) ){\r\n+   var data = {\r\n+     action: 'wppm_remove_thread_attachment',\r\n+     attachment : attachment,\r\n+     comment_id : comment_id,\r\n+     task_id:task_id,\r\n+     _ajax_nonce : jQuery('#wppm_ajax_nonce').val()\r\n+   };\r\n+   jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+      jQuery(obj).parent('td').parent('tr').remove();\r\n+      if((proj_id!=0)||(proj_id!=\"\")){\r\n+        wppm_open_project_tasks(task_id,proj_id);\r\n+      }else if((proj_id==0)||(proj_id==\"\")){\r\n+        wppm_open_task(task_id);\r\n+      }\r\n+    });\r\n+  }\r\n+}\r\n+\r\n+function wppm_proj_thread_attachment_remove(obj,attachment,comment_id,id){\r\n+  if( confirm(wppm_admin.confirm) ){\r\n+   var data = {\r\n+     action: 'wppm_remove_proj_thread_attachment',\r\n+     attachment : attachment,\r\n+     comment_id : comment_id,\r\n+     proj_id:id,\r\n+     _ajax_nonce:jQuery('#wppm_proj_thread_attachment_remove').val()\r\n+   };\r\n+   jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+      jQuery(obj).parent('td').parent('tr').remove();\r\n+      wppm_open_project(id);\r\n+    });\r\n+  }\r\n+}\r\n+\r\n+function wppm_open_project(id){\r\n+  jQuery('#wppm_project_list').hide();\r\n+  jQuery('#wppm_project_container').show();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_open_project',\r\n+    id:id,\r\n+    auth_code: wppm_admin.auth_code\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_project_container').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_project_search_filter(){\r\n+  var project_search = jQuery(\"#wppm_project_search_filter\").val();\r\n+  jQuery('#wppm_project_container').show();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+      action: 'wppm_get_project_list',\r\n+      project_search:project_search\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_project_container').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_clone_task(id,proj_id,project_id){\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_open('Clone Task'); \r\n+  }else{\r\n+    wppm_modal_open('Clone Task'); \r\n+  }\r\n+  var data = {\r\n+    action: 'wppm_clone_task',\r\n+    id: id,\r\n+    proj_id: proj_id,\r\n+    project_id: project_id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    if(proj_id==0){\r\n+      jQuery('#wppm_task_popup_body').html(response.body);\r\n+      jQuery('#wppm_task_popup_footer').html(response.footer);\r\n+    }else{\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_clone_task(proj_id,project_id){\r\n+  var dataform = new FormData(jQuery('#frm_edit_clone_task_name')[0]);\r\n+  if(proj_id==0){\r\n+    wppm_task_modal_close();\r\n+  }else{\r\n+    wppm_modal_close(); \r\n+  }\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    if(project_id!=0){\r\n+      wppm_get_project_tasks_kanban_view(project_id);\r\n+    }else{\r\n+      if(proj_id==0){\r\n+        wppm_get_task_list();\r\n+      }else{\r\n+        wppm_get_project_tasks(proj_id);\r\n+      }\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_sort_up_task_list(sort_by,order,page){\r\n+  jQuery('#wppm_task_container').show();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_task_list',\r\n+    sort_by:sort_by,\r\n+    order:order,\r\n+    page:page\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response);\r\n+  }); \r\n+}\r\n+\r\n+function wppm_sort_up_project_list(sort_by,order){\r\n+  jQuery('#wppm_project_container').show();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_project_list',\r\n+    sort_by:sort_by,\r\n+    order:order\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_project_container').html(response);\r\n+  }); \r\n+}\r\n+\r\n+function wppm_get_miscellaneous_settings(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_settings_miscellaneous').addClass('active');\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_advanced_settings'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_appearance_settings(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_settings_appearance').addClass('active');\r\n+  var data = {\r\n+    action: 'wppm_get_appearance_settings'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_coworker_permission_settings(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_settings_coworker').addClass('active');\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_coworker_permission_settings'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_coworkers_permission_settings(){\r\n+  jQuery('.wppm_submit_wait').show();\r\n+  var dataform = new FormData(jQuery('#wppm_frm_coworkers_permission_settings')[0]);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('.wppm_submit_wait').hide();\r\n+    if (response.sucess_status=='1') {\r\n+      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+    }\r\n+    jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_rich_text_editor_settings(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_settings_rich_text_editor').addClass('active');\r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_rich_text_editor_settings'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_rich_text_editor_settings(){\r\n+  jQuery('.wppm_submit_wait').show();\r\n+  var dataform = new FormData(jQuery('#wppm_frm_rich_text_editor_settings')[0]);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('.wppm_submit_wait').hide();\r\n+    if (response.sucess_status=='1') {\r\n+      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+    }\r\n+    jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_ap_proj_list(current_tab_class) {\r\n+\tjQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\r\n+\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\r\n+\tjQuery('.wppm-setting-section-body').html(wppm_admin.loading_html);\r\n+  var data = { action: 'wppm_get_ap_proj_list' ,\r\n+      current_tab:current_tab_class\r\n+  };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction (response) {\r\n+\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_get_ap_modal_popup(current_tab_class){\r\n+  jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\r\n+\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\r\n+\tjQuery('.wppm-setting-section-body').html(wppm_admin.loading_html);\r\n+  var data = { action: 'wppm_get_ap_modal_popup' ,\r\n+      current_tab:current_tab_class };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction (response) {\r\n+\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_get_ap_task_list(current_tab_class){\r\n+  jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\r\n+\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\r\n+\tjQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);\r\n+\tvar data = { action: 'wppm_get_ap_task_list' ,\r\n+      current_tab:current_tab_class\r\n+  };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction (response) {\r\n+\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_get_ap_individual_proj(current_tab_class){\r\n+  jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\r\n+\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\r\n+\tjQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);\r\n+\tvar data = { action: 'wppm_get_ap_individual_proj' ,\r\n+      current_tab:current_tab_class\r\n+  };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction (response) {\r\n+\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_get_ap_individual_task(current_tab_class){\r\n+  jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\r\n+\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\r\n+\tjQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);\r\n+\tvar data = { action: 'wppm_get_ap_individual_task' ,\r\n+      current_tab:current_tab_class\r\n+  };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction (response) {\r\n+\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_get_ap_grid_view(current_tab_class){\r\n+  jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\r\n+\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\r\n+\tjQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);\r\n+\tvar data = { action: 'wppm_get_ap_grid_view' ,\r\n+      current_tab:current_tab_class\r\n+  };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction (response) {\r\n+\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_get_ap_settings(current_tab_class){\r\n+  jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );\r\n+\tjQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );\r\n+\tjQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);\r\n+\tvar data = { action: 'wppm_get_ap_settings' ,\r\n+      current_tab:current_tab_class\r\n+  };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction (response) {\r\n+\t\t\tjQuery( '.wppm-setting-section-body' ).html( response );\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_set_ap_settings(){\r\n+  var form     = jQuery( '.wppm-frm-ap-settings' )[0];\r\n+\tvar dataform = new FormData( form );\r\n+\tjQuery('.wppm_submit_wait').show();\r\n+\tjQuery.ajax(\r\n+\t\t{\r\n+\t\t\turl: wppm_admin.ajax_url,\r\n+\t\t\ttype: 'POST',\r\n+\t\t\tdata: dataform,\r\n+\t\t\tprocessData: false,\r\n+\t\t\tcontentType: false\r\n+\t\t}\r\n+\t).done(\r\n+\t\tfunction (response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('.wppm_submit_wait').hide();\r\n+      if (response.sucess_status=='1') {\r\n+        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+      }\r\n+      jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_set_ap_proj_list() {\r\n+\tvar form     = jQuery( '.wppm-frm-ap-pl' )[0];\r\n+\tvar dataform = new FormData( form );\r\n+\tjQuery('.wppm_submit_wait').show();\r\n+\tjQuery.ajax(\r\n+\t\t{\r\n+\t\t\turl: wppm_admin.ajax_url,\r\n+\t\t\ttype: 'POST',\r\n+\t\t\tdata: dataform,\r\n+\t\t\tprocessData: false,\r\n+\t\t\tcontentType: false\r\n+\t\t}\r\n+\t).done(\r\n+\t\tfunction (response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('.wppm_submit_wait').hide();\r\n+      if (response.sucess_status=='1') {\r\n+        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+      }\r\n+      jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_set_ap_task_list(){\r\n+  var form     = jQuery( '.wppm-frm-ap-tl' )[0];\r\n+\tvar dataform = new FormData( form );\r\n+\tjQuery('.wppm_submit_wait').show();\r\n+\tjQuery.ajax(\r\n+\t\t{\r\n+\t\t\turl: wppm_admin.ajax_url,\r\n+\t\t\ttype: 'POST',\r\n+\t\t\tdata: dataform,\r\n+\t\t\tprocessData: false,\r\n+\t\t\tcontentType: false\r\n+\t\t}\r\n+\t).done(\r\n+\t\tfunction (response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('.wppm_submit_wait').hide();\r\n+      if (response.sucess_status=='1') {\r\n+        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+      }\r\n+      jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_set_ap_individual_proj(){\r\n+  var form     = jQuery( '.wppm-frm-ap-individual_pl' )[0];\r\n+\tvar dataform = new FormData( form );\r\n+\tjQuery('.wppm_submit_wait').show();\r\n+\tjQuery.ajax(\r\n+\t\t{\r\n+\t\t\turl: wppm_admin.ajax_url,\r\n+\t\t\ttype: 'POST',\r\n+\t\t\tdata: dataform,\r\n+\t\t\tprocessData: false,\r\n+\t\t\tcontentType: false\r\n+\t\t}\r\n+\t).done(\r\n+\t\tfunction (response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('.wppm_submit_wait').hide();\r\n+      if (response.sucess_status=='1') {\r\n+        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+      }\r\n+      jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_set_ap_individual_task(){\r\n+  var form     = jQuery( '.wppm-frm-ap-individual_tl' )[0];\r\n+\tvar dataform = new FormData( form );\r\n+\tjQuery('.wppm_submit_wait').show();\r\n+\tjQuery.ajax(\r\n+\t\t{\r\n+\t\t\turl: wppm_admin.ajax_url,\r\n+\t\t\ttype: 'POST',\r\n+\t\t\tdata: dataform,\r\n+\t\t\tprocessData: false,\r\n+\t\t\tcontentType: false\r\n+\t\t}\r\n+\t).done(\r\n+\t\tfunction (response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('.wppm_submit_wait').hide();\r\n+      if (response.sucess_status=='1') {\r\n+        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+      }\r\n+      jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_set_ap_modal_popup(){\r\n+  var form     = jQuery( '.wppm-frm-ap-modal_popup' )[0];\r\n+\tvar dataform = new FormData( form );\r\n+\tjQuery('.wppm_submit_wait').show();\r\n+\tjQuery.ajax(\r\n+\t\t{\r\n+\t\t\turl: wppm_admin.ajax_url,\r\n+\t\t\ttype: 'POST',\r\n+\t\t\tdata: dataform,\r\n+\t\t\tprocessData: false,\r\n+\t\t\tcontentType: false\r\n+\t\t}\r\n+\t).done(\r\n+\t\tfunction (response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('.wppm_submit_wait').hide();\r\n+      if (response.sucess_status=='1') {\r\n+        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+      }\r\n+      jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_set_ap_grid_view(){\r\n+  var form     = jQuery( '.wppm-frm-ap-grid_view' )[0];\r\n+\tvar dataform = new FormData( form );\r\n+\tjQuery('.wppm_submit_wait').show();\r\n+\tjQuery.ajax(\r\n+\t\t{\r\n+\t\t\turl: wppm_admin.ajax_url,\r\n+\t\t\ttype: 'POST',\r\n+\t\t\tdata: dataform,\r\n+\t\t\tprocessData: false,\r\n+\t\t\tcontentType: false\r\n+\t\t}\r\n+\t).done(\r\n+\t\tfunction (response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('.wppm_submit_wait').hide();\r\n+      if (response.sucess_status=='1') {\r\n+        jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+      }\r\n+      jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+      setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);  \r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_set_advanced_settings(){\r\n+  jQuery('.wppm_submit_wait').show();\r\n+  var dataform = new FormData(jQuery('#wppm_frm_advanced_settings')[0]);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('.wppm_submit_wait').hide();\r\n+    if (response.sucess_status=='1') {\r\n+      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+    }\r\n+    jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_project_visibility(id){\r\n+  wppm_modal_open('Change Visibility'); \r\n+  var data = {\r\n+    action: 'wppm_get_project_visibility',\r\n+    id: id\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('#wppm_popup_body').html(response.body);\r\n+    jQuery('#wppm_popup_footer').html(response.footer);\r\n+  });\r\n+}\r\n+\r\n+function wppm_select_project_visibility(proj_id){\r\n+  if(jQuery('input[name=\"wppm_project_visibility_option\"]').is(':checked')){\r\n+    var project_visibility = jQuery('input[name=\"wppm_project_visibility_option\"]:checked').val();\r\n+  }else{\r\n+    var project_visibility = 0;\r\n+  }\r\n+  var data = {\r\n+    action: 'wppm_change_project_visibility',\r\n+    project_id:proj_id,\r\n+    project_visibility:project_visibility,\r\n+    _ajax_nonce:jQuery('#wppm_proj_visibility_ajax_nonce').val()\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function() {\r\n+  });\r\n+}\r\n+\r\n+function wppm_apply_project_filter(){\r\n+  wppm_project_filter = jQuery('#wppm_project_filter').find(\":selected\").val();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_project_list',\r\n+    wppm_project_filter:wppm_project_filter\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_project_container').html(response);\r\n+  }); \r\n+}\r\n+\r\n+function wppm_apply_task_filter(page){\r\n+  wppm_task_filter = jQuery('#wppm_task_filter').find(\":selected\").val();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_task_list',\r\n+    wppm_task_filter:wppm_task_filter,\r\n+    page:page\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response);\r\n+  }); \r\n+}\r\n+\r\n+function wppm_tl_reset_filter(page){\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_task_list',\r\n+    wppm_task_filter:'all',\r\n+    task_search:\"\",\r\n+    sort_by:\"task_name\",\r\n+    order:\"ASC\",\r\n+    wppm_proj_filter:0,\r\n+    page:page\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response);\r\n+  }); \r\n+}\r\n+\r\n+function wppm_apply_task_filter_grid_view(page,id){\r\n+  wppm_task_filter = jQuery('#wppm_task_filter').find(\":selected\").val();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html); \r\n+  var data = {\r\n+    action: 'wppm_view_project_tasks',\r\n+    wppm_task_filter:wppm_task_filter,\r\n+    page:page,\r\n+    id:id\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response); \r\n+  }); \r\n+}\r\n+\r\n+function wppm_tl_reset_grid_view_filter(page,id){\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html); \r\n+  var data = {\r\n+    action: 'wppm_view_project_tasks',\r\n+    wppm_task_filter:'all',\r\n+    task_search:\"\",\r\n+    sort_by:\"task_name\",\r\n+    order:\"ASC\",\r\n+    wppm_proj_filter:\"0\",\r\n+    page:page,\r\n+    id:id\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response); \r\n+  }); \r\n+}\r\n+\r\n+function wppm_pl_reset_filter(){\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_project_list',\r\n+    wppm_project_filter:'all',\r\n+    project_search:\"\",\r\n+    sort_by:\"project_name\",\r\n+    order:\"ASC\"\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_project_container').html(response);\r\n+  }); \r\n+}\r\n+\r\n+function wppm_tasks_by_select_project(page){\r\n+  wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(\":selected\").val();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_task_list',\r\n+    wppm_proj_filter:wppm_proj_filter,\r\n+    page:page\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response);\r\n+  });  \r\n+}\r\n+\r\n+function wppm_tasks_by_select_project_grid_view(page){\r\n+  wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(\":selected\").val();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_view_project_tasks',\r\n+    wppm_proj_filter:wppm_proj_filter,\r\n+    page:page\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_task_container').html(response);\r\n+  });  \r\n+}\r\n+\r\n+function wppm_reset_ap_proj_list(){\r\n+  jQuery( \"#wppm_reset_ap_proj_list_btn\" ).text( wppm_admin.please_wait );\r\n+  var _ajax_nonce = jQuery(\"#wppm_reset_ap_proj_list_nonce\").val();\r\n+\tvar data = { action: 'wppm_reset_ap_proj_list',_ajax_nonce };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction () {\r\n+\t\t\twppm_get_ap_proj_list('project-list');\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_reset_ap_task_list(){\r\n+  jQuery( \"#wppm_reset_ap_task_list_btn\" ).text( wppm_admin.please_wait );\r\n+  var _ajax_nonce = jQuery(\"#wppm_reset_ap_task_list_ajax_nonce\").val();\r\n+\tvar data = { action: 'wppm_reset_ap_task_list',_ajax_nonce };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction () {\r\n+\t\t\twppm_get_ap_task_list('task-list');\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_reset_ap_individual_proj(){\r\n+  jQuery( \"#wppm_reset_ap_individual_proj_btn\" ).text( wppm_admin.please_wait );\r\n+  var _ajax_nonce =  jQuery( \"#wppm_reset_ap_individual_proj_ajax_nonce\").val();\r\n+\tvar data = { action: 'wppm_reset_ap_individual_proj',\r\n+          _ajax_nonce, };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction () {\r\n+\t\t\twppm_get_ap_individual_proj('individual-project');\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_reset_ap_individual_task(){\r\n+  jQuery( \"#wppm_reset_ap_individual_task_btn\" ).text( wppm_admin.please_wait );\r\n+  var _ajax_nonce = jQuery( \"#wppm_reset_ap_individual_task_ajax_nonce\" ).val();\r\n+\tvar data = { action: 'wppm_reset_ap_individual_task',_ajax_nonce };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction () {\r\n+\t\t\twppm_get_ap_individual_task('individual-task');\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_reset_ap_modal_popup(){\r\n+  jQuery( \"#wppm_reset_ap_modal_popup_btn\" ).text( wppm_admin.please_wait );\r\n+  var _ajax_nonce = jQuery( \"#wppm_reset_ap_modal_popup_nonce\" ).val();\r\n+\tvar data = { action: 'wppm_reset_ap_modal_popup',_ajax_nonce };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction () {\r\n+\t\t\twppm_get_ap_modal_popup('modal-popup');\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\r\n+function wppm_reset_ap_grid_view(){\r\n+  jQuery( \"#wppm_reset_ap_grid_view_btn\" ).text( wppm_admin.please_wait );\r\n+  var wppm_reset_grid_ajax_nonce = jQuery( \"#wppm_reset_ap_grid_view_ajax_nonce\" ).val();\r\n+  var data = {\r\n+    action: 'wppm_reset_ap_grid_view',\r\n+    wppm_reset_grid_ajax_nonce:wppm_reset_grid_ajax_nonce\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    wppm_get_ap_grid_view('grid-view');\r\n+  }); \r\n+}\r\n+\r\n+function wppm_reset_ap_settings(){\r\n+  jQuery( \"#wppm_reset_ap_settings_btn\" ).text( wppm_admin.please_wait );\r\n+  var _ajax_nonce = jQuery(\"#wppm_reset_ap_settings_nonce\").val();\r\n+\tvar data = { action: 'wppm_reset_ap_settings',_ajax_nonce };\r\n+\tjQuery.post(\r\n+\t\twppm_admin.ajax_url,\r\n+\t\tdata,\r\n+\t\tfunction () {\r\n+\t\t\twppm_get_ap_settings('settings');\r\n+\t\t}\r\n+\t);\r\n+}\r\n+\u002F**\r\n+ * Bulk selector change\r\n+ *\u002F\r\n+function wppm_bulk_select_change() {\r\n+  jQuery(\"#wppm-bulk-actions-btn\").show();\r\n+  var checked = jQuery(\".wppm-bulk-selector\").is(\":checked\");\r\n+  jQuery(\".wppm-bulk-select\").prop(\"checked\", checked);\r\n+  if(!checked){\r\n+    jQuery(\"#wppm-bulk-actions-btn\").hide();\r\n+  }\r\n+}\r\n+\r\n+function wppm_task_bulk_select_change() {\r\n+  jQuery(\"#wppm-task-bulk-actions-btn\").show();\r\n+  var checked = jQuery(\".wppm-bulk-selector\").is(\":checked\");\r\n+  jQuery(\".wppm-task-bulk-select\").prop(\"checked\", checked);\r\n+  if(!checked){\r\n+    jQuery(\"#wppm-bulk-actions-btn\").hide();\r\n+  }\r\n+}\r\n+\r\n+function wppm_bulk_change_status(nonce){\r\n+  var items = jQuery(\".wppm-bulk-select:checked\");\r\n+  var checked = items.length === 0 ? false : true;\r\n+  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\r\n+  if (items.length != 0) {\r\n+    var proj_ids = jQuery(\".wppm-bulk-select:checked\")\r\n+      .map(function () {\r\n+        return this.value;\r\n+      })\r\n+      .get();\r\n+      wppm_modal_open('Change Status'); \r\n+    var data = {\r\n+      action: \"wppm_get_bulk_change_proj_status\",\r\n+      proj_ids,\r\n+      _ajax_nonce: nonce,\r\n+    };\r\n+    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    });\r\n+  }\r\n+}\r\n+\r\n+function wppm_set_bulk_change_project_status(){\r\n+  var dataform = new FormData(jQuery('#frm_get_bulk_project_change_status')[0]);\r\n+  wppm_modal_close();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_get_project_list();\r\n+  });\r\n+}\r\n+\r\n+function wppm_bulk_change_category(nonce){\r\n+  var items = jQuery(\".wppm-bulk-select:checked\");\r\n+  var checked = items.length === 0 ? false : true;\r\n+  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\r\n+  if (items.length != 0) {\r\n+    var proj_ids = jQuery(\".wppm-bulk-select:checked\")\r\n+      .map(function () {\r\n+        return this.value;\r\n+      })\r\n+      .get();\r\n+      wppm_modal_open('Change Category'); \r\n+    var data = {\r\n+      action: \"wppm_get_bulk_change_proj_cat\",\r\n+      proj_ids,\r\n+      _ajax_nonce: nonce,\r\n+    };\r\n+    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    });\r\n+  }\r\n+}\r\n+\r\n+function wppm_set_bulk_change_project_category(){\r\n+  var dataform = new FormData(jQuery('#frm_get_bulk_project_change_category')[0]);\r\n+  wppm_modal_close();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_get_project_list();\r\n+  });\r\n+}\r\n+\r\n+function wppm_bulk_assign_users(nonce){\r\n+  var items = jQuery(\".wppm-bulk-select:checked\");\r\n+  var checked = items.length === 0 ? false : true;\r\n+  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\r\n+  if (items.length != 0) {\r\n+    var proj_ids = jQuery(\".wppm-bulk-select:checked\")\r\n+      .map(function () {\r\n+        return this.value;\r\n+      })\r\n+      .get();\r\n+      wppm_modal_open('Assign Co-workers'); \r\n+    var data = {\r\n+      action: \"wppm_get_bulk_assign_users\",\r\n+      proj_ids,\r\n+      _ajax_nonce: nonce,\r\n+    };\r\n+    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    });\r\n+  }\r\n+}\r\n+\r\n+function wppm_set_bulk_project_users(){\r\n+  var dataform = new FormData(jQuery('#frm_get_bulk_project_users')[0]);\r\n+  wppm_modal_close();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_get_project_list();\r\n+  });\r\n+}\r\n+\r\n+function wppm_bulk_delete_project(nonce){\r\n+  var items = jQuery(\".wppm-bulk-select:checked\");\r\n+  var checked = items.length === 0 ? false : true;\r\n+  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\r\n+  if (items.length != 0) {\r\n+    var proj_ids = jQuery(\".wppm-bulk-select:checked\")\r\n+      .map(function () {\r\n+        return this.value;\r\n+      })\r\n+      .get();\r\n+      wppm_modal_open('Delete Project'); \r\n+    var data = {\r\n+      action: \"wppm_get_bulk_delete_project\",\r\n+      proj_ids,\r\n+      _ajax_nonce: nonce,\r\n+    };\r\n+    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    });\r\n+  }\r\n+}\r\n+\r\n+function wppm_set_delete_bulk_projects(){\r\n+  var dataform = new FormData(jQuery('#frm_delete_bulk_project')[0]);\r\n+  wppm_modal_close();\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_get_project_list();\r\n+  });\r\n+}\r\n+\r\n+function wppm_bulk_change_task_status(nonce){\r\n+  var items = jQuery(\".wppm-task-bulk-select:checked\");\r\n+  var checked = items.length === 0 ? false : true;\r\n+  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\r\n+  if (items.length != 0) {\r\n+    var task_ids = jQuery(\".wppm-task-bulk-select:checked\")\r\n+      .map(function () {\r\n+        return this.value;\r\n+      })\r\n+      .get();\r\n+      wppm_task_modal_open('Change Task Status'); \r\n+    var data = {\r\n+      action: \"wppm_get_bulk_change_task_status\",\r\n+      task_ids,\r\n+      _ajax_nonce: nonce,\r\n+    };\r\n+    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('#wppm_task_popup_body').html(response.body);\r\n+      jQuery('#wppm_task_popup_footer').html(response.footer);\r\n+    });\r\n+  }\r\n+}\r\n+\r\n+function wppm_set_bulk_change_task_priority(){\r\n+  var dataform = new FormData(jQuery('#frm_get_bulk_task_change_priority')[0]);\r\n+  wppm_task_modal_close();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_get_task_list();\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_bulk_change_task_status(){\r\n+  var dataform = new FormData(jQuery('#frm_get_bulk_task_change_status')[0]);\r\n+  wppm_task_modal_close();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_get_task_list();\r\n+  });\r\n+}\r\n+\r\n+function wppm_bulk_change_task_priority(nonce){\r\n+  var items = jQuery(\".wppm-task-bulk-select:checked\");\r\n+  var checked = items.length === 0 ? false : true;\r\n+  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\r\n+  if (items.length != 0) {\r\n+    var task_ids = jQuery(\".wppm-task-bulk-select:checked\")\r\n+      .map(function () {\r\n+        return this.value;\r\n+      })\r\n+      .get();\r\n+      wppm_task_modal_open('Change Task Priority'); \r\n+    var data = {\r\n+      action: \"wppm_get_bulk_change_task_priority\",\r\n+      task_ids,\r\n+      _ajax_nonce: nonce\r\n+    };\r\n+    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('#wppm_task_popup_body').html(response.body);\r\n+      jQuery('#wppm_task_popup_footer').html(response.footer);\r\n+    });\r\n+  }\r\n+}\r\n+\r\n+function wppm_bulk_delete_task(nonce){\r\n+  var items = jQuery(\".wppm-task-bulk-select:checked\");\r\n+  var checked = items.length === 0 ? false : true;\r\n+  jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\r\n+  if (items.length != 0) {\r\n+    var task_ids = jQuery(\".wppm-task-bulk-select:checked\")\r\n+      .map(function () {\r\n+        return this.value;\r\n+      })\r\n+      .get();\r\n+      wppm_task_modal_open('Delete Task'); \r\n+    var data = {\r\n+      action: \"wppm_get_bulk_delete_task\",\r\n+      task_ids,\r\n+      _ajax_nonce: nonce,\r\n+    };\r\n+    jQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+      var response = JSON.parse(response_str);\r\n+      jQuery('#wppm_task_popup_body').html(response.body);\r\n+      jQuery('#wppm_task_popup_footer').html(response.footer);\r\n+    });\r\n+  }\r\n+}\r\n+\r\n+function wppm_set_delete_bulk_tasks(){\r\n+  var dataform = new FormData(jQuery('#frm_delete_bulk_tasks')[0]);\r\n+  wppm_task_modal_close();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_get_task_list();\r\n+  });\r\n+}\r\n+\r\n+function wppm_print_task(id){\r\n+  jQuery('#wppmprint_menu').css('display', 'flex');\r\n+}\r\n+\r\n+function wppm_open_pdf(id){\r\n+  window.open(wppm_admin.ajax_url + \"?action=wppm_get_task_pdf&id=\" + id, \"_blank\");\r\n+}\r\n+\r\n+function wppm_download_pdf(id){\r\n+  window.open(wppm_admin.ajax_url + \"?action=wppm_download_pdf&id=\" + id, \"_blank\");\r\n+}\r\n+\r\n+function wppm_archive_task(id,is_archived,project_id){\r\n+  if (!confirm(wppm_admin.confirm)) {\r\n+      return;\r\n+  } else {\r\n+    var data = {\r\n+      action: 'wppm_archive_task',\r\n+      id: id,\r\n+      is_archived: is_archived,\r\n+      project_id: project_id,\r\n+    };\r\n+    jQuery.post(wppm_admin.ajax_url, data, function() { \r\n+      wppm_open_task(id,project_id);\r\n+    });\r\n+  }\r\n+}\r\n+\r\n+function wppm_get_print_task_settings(){\r\n+  jQuery('.wppm_setting_pills li').removeClass('active');\r\n+  jQuery('#wppm_settings_print_task').addClass('active'); \r\n+  jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_print_task_settings'\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('.wppm_setting_col2').html(response);\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_print_task_settings(){\r\n+  jQuery('.wppm_submit_wait').show();\r\n+  var dataform = new FormData(jQuery('#wppm_print_task_settings')[0]);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    var response = JSON.parse(response_str);\r\n+    jQuery('.wppm_submit_wait').hide();\r\n+    if (response.sucess_status=='1') {\r\n+      jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+    }\r\n+    jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+    setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+  });\r\n+}\r\n+\r\n+function wppm_edit_checklist_item(item_id,checklist_id,proj_id,task_id){\r\n+  wppm_task_modal_open('Edit Checklist Item') ;\r\n+  var data = {\r\n+    action: 'wppm_edit_checklist_item',\r\n+    item_id:item_id,\r\n+    checklist_id: checklist_id,\r\n+    task_id: task_id,\r\n+    proj_id: proj_id,\r\n+    _ajax_nonce:jQuery('#wppm_edit_checklist_item_ajax_nonce').val()\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    var response = JSON.parse(response);\r\n+    if(proj_id==0){\r\n+      jQuery('#wppm_task_popup_body').html(response.body);\r\n+      jQuery('#wppm_task_popup_footer').html(response.footer);\r\n+    }else{\r\n+      jQuery('#wppm_popup_body').html(response.body);\r\n+      jQuery('#wppm_popup_footer').html(response.footer);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_set_checklist_item_name(item_id,checklist_id,task_id){\r\n+  var dataform = new FormData(jQuery('#frm_get_edit_checklist_item')[0]);\r\n+  wppm_task_modal_close();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_open_task(task_id);\r\n+  });\r\n+}\r\n+\r\n+function wppm_get_project_tasks_kanban_view(proj_id){\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_get_project_tasks_kanban_view',\r\n+    id:proj_id\r\n+  };\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+    jQuery('#wppm_project_container').html(response);\r\n+  });\r\n+}\r\n+\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002Fmodal.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002Fmodal.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002Fmodal.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002Fmodal.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,88 +1,88 @@\n-  jQuery(document).ready(function(){\n-    jQuery('#wppm_popup_background,.wppm_popup_close').click(function(){\n-      wppm_modal_close();\n-    });\n-    jQuery('#wppm_task_popup_background,.wppm_task_popup_close').click(function(){\n-      wppm_modal_close();\n-    });\n-    jQuery(document).keyup(function(e){\n-      if (e.keyCode == 27) { \n-        wppm_modal_close();\n-      }\n-    });\n-  });\n-\n-  function wppm_modal_open(title){\n-    jQuery('#wppm_popup_title h3').text(title);\n-    jQuery('#wppm_popup_body').html(wppm_admin.loading_html);\n-    jQuery('.wppm_popup_action').hide();\n-    jQuery('#wppm_popup_container,#wppm_popup_background').show();\n-  }\n-  \n-  function wppm_modal_close(){\n-    jQuery('#wppm_popup_container,#wppm_popup_background').hide();\n-  }\n-  \n-  function wppm_modal_close_thread(tinymce_toolbar){\n-    \n-    jQuery('#wppm_popup_container,#wppm_popup_background').hide();\n-    var is_tinymce = (typeof tinyMCE != \"undefined\") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();\n-    if(is_tinymce){\n-      tinymce.init({\n-        selector:'#wppm_reply_box',\n-        body_id: 'wppm_reply_box',\n-        menubar: false,\n-        statusbar: false,\n-        autoresize_min_height: 150,\n-        wp_autoresize_on: true,\n-        plugins: [\n-            'wpautoresize lists link image directionality'\n-        ],\n-        toolbar:  tinymce_toolbar.join() +' | wppm_templates',\n-        branding: false,\n-        autoresize_bottom_margin: 20,\n-        browser_spellcheck : true,\n-        relative_urls : false,\n-        remove_script_host : false,\n-        convert_urls : true\n-      });\n-    }\n-  }\n-\n-  function wppm_task_modal_open(title){\n-    jQuery('#wppm_task_popup_title h3').text(title);\n-    jQuery('#wppm_task_popup_body').html(wppm_admin.loading_html);\n-    jQuery('.wppm_task_popup_action').hide();\n-    jQuery('#wppm_task_popup_container,#wppm_task_popup_background').show();\n-  }\n-  \n-  function wppm_task_modal_close(){\n-    jQuery('#wppm_task_popup_container,#wppm_task_popup_background').hide();\n-  }\n-  \n-  function wppm_task_modal_close_thread(tinymce_toolbar){\n-    \n-    jQuery('#wppm_task_popup_container,#wppm_task_popup_background').hide();\n-    var is_tinymce = (typeof tinyMCE != \"undefined\") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();\n-    if(is_tinymce){\n-      tinymce.init({\n-        selector:'#wppm_reply_box',\n-        body_id: 'wppm_reply_box',\n-        menubar: false,\n-        statusbar: false,\n-        autoresize_min_height: 150,\n-        wp_autoresize_on: true,\n-        plugins: [\n-            'wpautoresize lists link image directionality'\n-        ],\n-        toolbar:  tinymce_toolbar.join() +' | wppm_templates',\n-        branding: false,\n-        autoresize_bottom_margin: 20,\n-        browser_spellcheck : true,\n-        relative_urls : false,\n-        remove_script_host : false,\n-        convert_urls : true\n-      });\n-    }\n-  }\n+  jQuery(document).ready(function(){\r\n+    jQuery('#wppm_popup_background,.wppm_popup_close').click(function(){\r\n+      wppm_modal_close();\r\n+    });\r\n+    jQuery('#wppm_task_popup_background,.wppm_task_popup_close').click(function(){\r\n+      wppm_modal_close();\r\n+    });\r\n+    jQuery(document).keyup(function(e){\r\n+      if (e.keyCode == 27) { \r\n+        wppm_modal_close();\r\n+      }\r\n+    });\r\n+  });\r\n+\r\n+  function wppm_modal_open(title){\r\n+    jQuery('#wppm_popup_title h3').text(title);\r\n+    jQuery('#wppm_popup_body').html(wppm_admin.loading_html);\r\n+    jQuery('.wppm_popup_action').hide();\r\n+    jQuery('#wppm_popup_container,#wppm_popup_background').show();\r\n+  }\r\n+  \r\n+  function wppm_modal_close(){\r\n+    jQuery('#wppm_popup_container,#wppm_popup_background').hide();\r\n+  }\r\n+  \r\n+  function wppm_modal_close_thread(tinymce_toolbar){\r\n+    \r\n+    jQuery('#wppm_popup_container,#wppm_popup_background').hide();\r\n+    var is_tinymce = (typeof tinyMCE != \"undefined\") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();\r\n+    if(is_tinymce){\r\n+      tinymce.init({\r\n+        selector:'#wppm_reply_box',\r\n+        body_id: 'wppm_reply_box',\r\n+        menubar: false,\r\n+        statusbar: false,\r\n+        autoresize_min_height: 150,\r\n+        wp_autoresize_on: true,\r\n+        plugins: [\r\n+            'wpautoresize lists link image directionality'\r\n+        ],\r\n+        toolbar:  tinymce_toolbar.join() +' | wppm_templates',\r\n+        branding: false,\r\n+        autoresize_bottom_margin: 20,\r\n+        browser_spellcheck : true,\r\n+        relative_urls : false,\r\n+        remove_script_host : false,\r\n+        convert_urls : true\r\n+      });\r\n+    }\r\n+  }\r\n+\r\n+  function wppm_task_modal_open(title){\r\n+    jQuery('#wppm_task_popup_title h3').text(title);\r\n+    jQuery('#wppm_task_popup_body').html(wppm_admin.loading_html);\r\n+    jQuery('.wppm_task_popup_action').hide();\r\n+    jQuery('#wppm_task_popup_container,#wppm_task_popup_background').show();\r\n+  }\r\n+  \r\n+  function wppm_task_modal_close(){\r\n+    jQuery('#wppm_task_popup_container,#wppm_task_popup_background').hide();\r\n+  }\r\n+  \r\n+  function wppm_task_modal_close_thread(tinymce_toolbar){\r\n+    \r\n+    jQuery('#wppm_task_popup_container,#wppm_task_popup_background').hide();\r\n+    var is_tinymce = (typeof tinyMCE != \"undefined\") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();\r\n+    if(is_tinymce){\r\n+      tinymce.init({\r\n+        selector:'#wppm_reply_box',\r\n+        body_id: 'wppm_reply_box',\r\n+        menubar: false,\r\n+        statusbar: false,\r\n+        autoresize_min_height: 150,\r\n+        wp_autoresize_on: true,\r\n+        plugins: [\r\n+            'wpautoresize lists link image directionality'\r\n+        ],\r\n+        toolbar:  tinymce_toolbar.join() +' | wppm_templates',\r\n+        branding: false,\r\n+        autoresize_bottom_margin: 20,\r\n+        browser_spellcheck : true,\r\n+        relative_urls : false,\r\n+        remove_script_host : false,\r\n+        convert_urls : true\r\n+      });\r\n+    }\r\n+  }\r\n   \n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002Fpublic.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002Fpublic.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002Fpublic.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002Fpublic.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,45 +1,45 @@\n-function wppm_sign_in(){\n-    jQuery('#wppm_project_container').show();\n-    jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-    var data = {\n-      action: 'wppm_sign_in'\n-    }\n-    jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-      jQuery('#wppm_project_container').html(response_str);\n-    }) \n-}\n-\n-function wppm_task_sign_in(){\n-  jQuery('#wppm_task_container').show();\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  var data = {\n-    action: 'wppm_sign_in'\n-  }\n-  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \n-    jQuery('#wppm_task_container').html(response_str);\n-  }) \n-}\n-\n-function wppm_sign_in_frm(){\n-  var dataform = new FormData(jQuery('#frm_wppm_sign_in')[0]);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response) {\n-    if (response.error == '1') {\n-      jQuery('#wppm_message_login').html(response.message);\n-      jQuery('#wppm_message_login').attr('class','bg-danger').slideDown('fast',function(){});\n-      jQuery('#frm_wppm_sign_in').find('input,button').attr('disabled',false);\n-      jQuery('#frm_wppm_sign_in').find('#inputPassword').val('');\n-      setTimeout(function(){ jQuery('#wppm_message_login').slideUp('fast',function(){}); }, 3000);\n-    } else {\n-      jQuery('#wppm_message_login').html(response.message);\n-      jQuery('#wppm_message_login').attr('class','bg-success').slideDown('fast',function(){});\n-      location.reload();\n-    }\n-  });\n+function wppm_sign_in(){\r\n+    jQuery('#wppm_project_container').show();\r\n+    jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+    var data = {\r\n+      action: 'wppm_sign_in'\r\n+    }\r\n+    jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+      jQuery('#wppm_project_container').html(response_str);\r\n+    }) \r\n+}\r\n+\r\n+function wppm_task_sign_in(){\r\n+  jQuery('#wppm_task_container').show();\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  var data = {\r\n+    action: 'wppm_sign_in'\r\n+  }\r\n+  jQuery.post(wppm_admin.ajax_url, data, function(response_str) { \r\n+    jQuery('#wppm_task_container').html(response_str);\r\n+  }) \r\n+}\r\n+\r\n+function wppm_sign_in_frm(){\r\n+  var dataform = new FormData(jQuery('#frm_wppm_sign_in')[0]);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response) {\r\n+    if (response.error == '1') {\r\n+      jQuery('#wppm_message_login').html(response.message);\r\n+      jQuery('#wppm_message_login').attr('class','bg-danger').slideDown('fast',function(){});\r\n+      jQuery('#frm_wppm_sign_in').find('input,button').attr('disabled',false);\r\n+      jQuery('#frm_wppm_sign_in').find('#inputPassword').val('');\r\n+      setTimeout(function(){ jQuery('#wppm_message_login').slideUp('fast',function(){}); }, 3000);\r\n+    } else {\r\n+      jQuery('#wppm_message_login').html(response.message);\r\n+      jQuery('#wppm_message_login').attr('class','bg-success').slideDown('fast',function(){});\r\n+      location.reload();\r\n+    }\r\n+  });\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Faf.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Faf.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Faf.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Faf.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Faf\",[],function(){return{errorLoading:function(){return\"Die resultate kon nie gelaai word nie.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Verwyders asseblief \"+t+\" character\";return t!=1&&(n+=\"s\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Voer asseblief \"+t+\" of meer karakters\";return n},loadingMore:function(){return\"Meer resultate word gelaai…\"},maximumSelected:function(e){var t=\"Kies asseblief net \"+e.maximum+\" item\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"Geen resultate gevind\"},searching:function(){return\"Besig…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Far.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Far.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Far.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Far.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Far\",[],function(){return{errorLoading:function(){return\"لا يمكن تحميل النتائج\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"الرجاء حذف \"+t+\" عناصر\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"الرجاء إضافة \"+t+\" عناصر\"},loadingMore:function(){return\"جاري تحميل نتائج إضافية...\"},maximumSelected:function(e){return\"تستطيع إختيار \"+e.maximum+\" بنود فقط\"},noResults:function(){return\"لم يتم العثور على أي نتائج\"},searching:function(){return\"جاري البحث…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Faz.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Faz.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Faz.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Faz.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Faz\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+\" simvol silin\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+\" simvol daxil edin\"},loadingMore:function(){return\"Daha çox nəticə yüklənir…\"},maximumSelected:function(e){return\"Sadəcə \"+e.maximum+\" element seçə bilərsiniz\"},noResults:function(){return\"Nəticə tapılmadı\"},searching:function(){return\"Axtarılır…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fbg.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fbg.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fbg.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fbg.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fbg\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Моля въведете с \"+t+\" по-малко символ\";return t>1&&(n+=\"a\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Моля въведете още \"+t+\" символ\";return t>1&&(n+=\"a\"),n},loadingMore:function(){return\"Зареждат се още…\"},maximumSelected:function(e){var t=\"Можете да направите до \"+e.maximum+\" \";return e.maximum>1?t+=\"избора\":t+=\"избор\",t},noResults:function(){return\"Няма намерени съвпадения\"},searching:function(){return\"Търсене…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fbs.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fbs.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fbs.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fbs.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fbs\",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10\u003C=4&&(e%100\u003C12||e%100>14)?n:r}return{errorLoading:function(){return\"Preuzimanje nije uspijelo.\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Obrišite \"+n+\" simbol\";return r+=e(n,\"\",\"a\",\"a\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Ukucajte bar još \"+n+\" simbol\";return r+=e(n,\"\",\"a\",\"a\"),r},loadingMore:function(){return\"Preuzimanje još rezultata…\"},maximumSelected:function(t){var n=\"Možete izabrati samo \"+t.maximum+\" stavk\";return n+=e(t.maximum,\"u\",\"e\",\"i\"),n},noResults:function(){return\"Ništa nije pronađeno\"},searching:function(){return\"Pretraga…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fca.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fca.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fca.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fca.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fca\",[],function(){return{errorLoading:function(){return\"La càrrega ha fallat\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Si us plau, elimina \"+t+\" car\";return t==1?n+=\"àcter\":n+=\"àcters\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Si us plau, introdueix \"+t+\" car\";return t==1?n+=\"àcter\":n+=\"àcters\",n},loadingMore:function(){return\"Carregant més resultats…\"},maximumSelected:function(e){var t=\"Només es pot seleccionar \"+e.maximum+\" element\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"No s'han trobat resultats\"},searching:function(){return\"Cercant…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fcs.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fcs.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fcs.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fcs.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fcs\",[],function(){function e(e,t){switch(e){case 2:return t?\"dva\":\"dvě\";case 3:return\"tři\";case 4:return\"čtyři\"}return\"\"}return{errorLoading:function(){return\"Výsledky nemohly být načteny.\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?\"Prosím, zadejte o jeden znak méně.\":n\u003C=4?\"Prosím, zadejte o \"+e(n,!0)+\" znaky méně.\":\"Prosím, zadejte o \"+n+\" znaků méně.\"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?\"Prosím, zadejte ještě jeden znak.\":n\u003C=4?\"Prosím, zadejte ještě další \"+e(n,!0)+\" znaky.\":\"Prosím, zadejte ještě dalších \"+n+\" znaků.\"},loadingMore:function(){return\"Načítají se další výsledky…\"},maximumSelected:function(t){var n=t.maximum;return n==1?\"Můžete zvolit jen jednu položku.\":n\u003C=4?\"Můžete zvolit maximálně \"+e(n,!1)+\" položky.\":\"Můžete zvolit maximálně \"+n+\" položek.\"},noResults:function(){return\"Nenalezeny žádné položky.\"},searching:function(){return\"Vyhledávání…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fda.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fda.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fda.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fda.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fda\",[],function(){return{errorLoading:function(){return\"Resultaterne kunne ikke indlæses.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Angiv venligst \"+t+\" tegn mindre\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Angiv venligst \"+t+\" tegn mere\"},loadingMore:function(){return\"Indlæser flere resultater…\"},maximumSelected:function(e){var t=\"Du kan kun vælge \"+e.maximum+\" emne\";return e.maximum!=1&&(t+=\"r\"),t},noResults:function(){return\"Ingen resultater fundet\"},searching:function(){return\"Søger…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fde_DE.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fde_DE.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fde_DE.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fde_DE.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fde\",[],function(){return{errorLoading:function(){return\"Die Ergebnisse konnten nicht geladen werden.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Bitte \"+t+\" Zeichen weniger eingeben\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Bitte \"+t+\" Zeichen mehr eingeben\"},loadingMore:function(){return\"Lade mehr Ergebnisse…\"},maximumSelected:function(e){var t=\"Sie können nur \"+e.maximum+\" Eintr\";return e.maximum===1?t+=\"ag\":t+=\"äge\",t+=\" auswählen\",t},noResults:function(){return\"Keine Übereinstimmungen gefunden\"},searching:function(){return\"Suche…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fdsb.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fdsb.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fdsb.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fdsb.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fdsb\",[],function(){var e=[\"znamuško\",\"znamušce\",\"znamuška\",\"znamuškow\"],t=[\"zapisk\",\"zapiska\",\"zapiski\",\"zapiskow\"],n=function(t,n){if(t===1)return n[0];if(t===2)return n[1];if(t>2&&t\u003C=4)return n[2];if(t>=5)return n[3]};return{errorLoading:function(){return\"Wuslědki njejsu se dali zacytaś.\"},inputTooLong:function(t){var r=t.input.length-t.maximum;return\"Pšosym lašuj \"+r+\" \"+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return\"Pšosym zapódaj nanejmjenjej \"+r+\" \"+n(r,e)},loadingMore:function(){return\"Dalšne wuslědki se zacytaju…\"},maximumSelected:function(e){return\"Móžoš jano \"+e.maximum+\" \"+n(e.maximum,t)+\"wubraś.\"},noResults:function(){return\"Žedne wuslědki namakane\"},searching:function(){return\"Pyta se…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fel.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fel.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fel.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fel.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fel\",[],function(){return{errorLoading:function(){return\"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Παρακαλώ διαγράψτε \"+t+\" χαρακτήρ\";return t==1&&(n+=\"α\"),t!=1&&(n+=\"ες\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Παρακαλώ συμπληρώστε \"+t+\" ή περισσότερους χαρακτήρες\";return n},loadingMore:function(){return\"Φόρτωση περισσότερων αποτελεσμάτων…\"},maximumSelected:function(e){var t=\"Μπορείτε να επιλέξετε μόνο \"+e.maximum+\" επιλογ\";return e.maximum==1&&(t+=\"ή\"),e.maximum!=1&&(t+=\"ές\"),t},noResults:function(){return\"Δεν βρέθηκαν αποτελέσματα\"},searching:function(){return\"Αναζήτηση…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fen.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fen.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fen.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fen.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fen\",[],function(){return{errorLoading:function(){return\"The results could not be loaded.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Please delete \"+t+\" character\";return t!=1&&(n+=\"s\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Please enter \"+t+\" or more characters\";return n},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(e){var t=\"You can only select \"+e.maximum+\" item\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"No results found\"},searching:function(){return\"Searching…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fes_ES.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fes_ES.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fes_ES.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fes_ES.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fes\",[],function(){return{errorLoading:function(){return\"No se pudieron cargar los resultados\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Por favor, elimine \"+t+\" car\";return t==1?n+=\"ácter\":n+=\"acteres\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Por favor, introduzca \"+t+\" car\";return t==1?n+=\"ácter\":n+=\"acteres\",n},loadingMore:function(){return\"Cargando más resultados…\"},maximumSelected:function(e){var t=\"Sólo puede seleccionar \"+e.maximum+\" elemento\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"No se encontraron resultados\"},searching:function(){return\"Buscando…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fet.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fet.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fet.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fet.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fet\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Sisesta \"+t+\" täht\";return t!=1&&(n+=\"e\"),n+=\" vähem\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Sisesta \"+t+\" täht\";return t!=1&&(n+=\"e\"),n+=\" rohkem\",n},loadingMore:function(){return\"Laen tulemusi…\"},maximumSelected:function(e){var t=\"Saad vaid \"+e.maximum+\" tulemus\";return e.maximum==1?t+=\"e\":t+=\"t\",t+=\" valida\",t},noResults:function(){return\"Tulemused puuduvad\"},searching:function(){return\"Otsin…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Feu.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Feu.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Feu.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Feu.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Feu\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Idatzi \";return t==1?n+=\"karaktere bat\":n+=t+\" karaktere\",n+=\" gutxiago\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Idatzi \";return t==1?n+=\"karaktere bat\":n+=t+\" karaktere\",n+=\" gehiago\",n},loadingMore:function(){return\"Emaitza gehiago kargatzen…\"},maximumSelected:function(e){return e.maximum===1?\"Elementu bakarra hauta dezakezu\":e.maximum+\" elementu hauta ditzakezu soilik\"},noResults:function(){return\"Ez da bat datorrenik aurkitu\"},searching:function(){return\"Bilatzen…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ffa.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ffa.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ffa.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ffa.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Ffa\",[],function(){return{errorLoading:function(){return\"امکان بارگذاری نتایج وجود ندارد.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"لطفاً \"+t+\" کاراکتر را حذف نمایید\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"لطفاً تعداد \"+t+\" کاراکتر یا بیشتر وارد نمایید\";return n},loadingMore:function(){return\"در حال بارگذاری نتایج بیشتر...\"},maximumSelected:function(e){var t=\"شما تنها می‌توانید \"+e.maximum+\" آیتم را انتخاب نمایید\";return t},noResults:function(){return\"هیچ نتیجه‌ای یافت نشد\"},searching:function(){return\"در حال جستجو...\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ffi.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ffi.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ffi.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ffi.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Ffi\",[],function(){return{errorLoading:function(){return\"Tuloksia ei saatu ladattua.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Ole hyvä ja anna \"+t+\" merkkiä vähemmän\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Ole hyvä ja anna \"+t+\" merkkiä lisää\"},loadingMore:function(){return\"Ladataan lisää tuloksia…\"},maximumSelected:function(e){return\"Voit valita ainoastaan \"+e.maximum+\" kpl\"},noResults:function(){return\"Ei tuloksia\"},searching:function(){return\"Haetaan…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ffr_FR.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ffr_FR.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ffr_FR.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ffr_FR.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,32 +1,32 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n-(function() {\n-  if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) var e = jQuery.fn.select2.amd;\n-  return e.define(\"select2\u002Fi18n\u002Ffr\", [], function() {\n-      return {\n-          errorLoading: function() {\n-              return \"Les résultats ne peuvent pas être chargés.\";\n-          },\n-          inputTooLong: function(e) {\n-              var t = e.input.length - e.maximum;\n-              return \"Supprimez \" + t + \" caractère\" + (t > 1 ? \"s\" : \"\");\n-          },\n-          inputTooShort: function(e) {\n-              var t = e.minimum - e.input.length;\n-              return \"Saisissez au moins \" + t + \" caractère\" + (t > 1 ? \"s\" : \"\");\n-          },\n-          loadingMore: function() {\n-              return \"Chargement de résultats supplémentaires…\";\n-          },\n-          maximumSelected: function(e) {\n-              return \"Vous pouvez seulement sélectionner \" + e.maximum + \" élément\" + (e.maximum > 1 ? \"s\" : \"\");\n-          },\n-          noResults: function() {\n-              return \"Aucun résultat trouvé\";\n-          },\n-          searching: function() {\n-              return \"Recherche en cours…\";\n-          }\n-      };\n-  }), { define: e.define, require: e.require };\n-})();\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n+(function() {\r\n+  if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) var e = jQuery.fn.select2.amd;\r\n+  return e.define(\"select2\u002Fi18n\u002Ffr\", [], function() {\r\n+      return {\r\n+          errorLoading: function() {\r\n+              return \"Les résultats ne peuvent pas être chargés.\";\r\n+          },\r\n+          inputTooLong: function(e) {\r\n+              var t = e.input.length - e.maximum;\r\n+              return \"Supprimez \" + t + \" caractère\" + (t > 1 ? \"s\" : \"\");\r\n+          },\r\n+          inputTooShort: function(e) {\r\n+              var t = e.minimum - e.input.length;\r\n+              return \"Saisissez au moins \" + t + \" caractère\" + (t > 1 ? \"s\" : \"\");\r\n+          },\r\n+          loadingMore: function() {\r\n+              return \"Chargement de résultats supplémentaires…\";\r\n+          },\r\n+          maximumSelected: function(e) {\r\n+              return \"Vous pouvez seulement sélectionner \" + e.maximum + \" élément\" + (e.maximum > 1 ? \"s\" : \"\");\r\n+          },\r\n+          noResults: function() {\r\n+              return \"Aucun résultat trouvé\";\r\n+          },\r\n+          searching: function() {\r\n+              return \"Recherche en cours…\";\r\n+          }\r\n+      };\r\n+  }), { define: e.define, require: e.require };\r\n+})();\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fgl.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fgl.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fgl.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fgl.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fgl\",[],function(){return{errorLoading:function(){return\"Non foi posíbel cargar os resultados.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return t===1?\"Elimine un carácter\":\"Elimine \"+t+\" caracteres\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t===1?\"Engada un carácter\":\"Engada \"+t+\" caracteres\"},loadingMore:function(){return\"Cargando máis resultados…\"},maximumSelected:function(e){return e.maximum===1?\"Só pode seleccionar un elemento\":\"Só pode seleccionar \"+e.maximum+\" elementos\"},noResults:function(){return\"Non se atoparon resultados\"},searching:function(){return\"Buscando…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhe_IL.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhe_IL.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhe_IL.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhe_IL.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fhe\",[],function(){return{errorLoading:function(){return\"שגיאה בטעינת התוצאות\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"נא למחוק \";return t===1?n+=\"תו אחד\":n+=t+\" תווים\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"נא להכניס \";return t===1?n+=\"תו אחד\":n+=t+\" תווים\",n+=\" או יותר\",n},loadingMore:function(){return\"טוען תוצאות נוספות…\"},maximumSelected:function(e){var t=\"באפשרותך לבחור עד \";return e.maximum===1?t+=\"פריט אחד\":t+=e.maximum+\" פריטים\",t},noResults:function(){return\"לא נמצאו תוצאות\"},searching:function(){return\"מחפש…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhi.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhi.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhi.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhi.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fhi\",[],function(){return{errorLoading:function(){return\"परिणामों को लोड नहीं किया जा सका।\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+\" अक्षर को हटा दें\";return t>1&&(n=t+\" अक्षरों को हटा दें \"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"कृपया \"+t+\" या अधिक अक्षर दर्ज करें\";return n},loadingMore:function(){return\"अधिक परिणाम लोड हो रहे है...\"},maximumSelected:function(e){var t=\"आप केवल \"+e.maximum+\" आइटम का चयन कर सकते हैं\";return t},noResults:function(){return\"कोई परिणाम नहीं मिला\"},searching:function(){return\"खोज रहा है...\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhr.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhr.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhr.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhr.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fhr\",[],function(){function e(e){var t=\" \"+e+\" znak\";return e%10\u003C5&&e%10>0&&(e%100\u003C5||e%100>19)?e%10>1&&(t+=\"a\"):t+=\"ova\",t}return{errorLoading:function(){return\"Preuzimanje nije uspjelo.\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return\"Unesite \"+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return\"Unesite još \"+e(n)},loadingMore:function(){return\"Učitavanje rezultata…\"},maximumSelected:function(e){return\"Maksimalan broj odabranih stavki je \"+e.maximum},noResults:function(){return\"Nema rezultata\"},searching:function(){return\"Pretraga…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhsb.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhsb.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhsb.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhsb.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fhsb\",[],function(){var e=[\"znamješko\",\"znamješce\",\"znamješka\",\"znamješkow\"],t=[\"zapisk\",\"zapiskaj\",\"zapiski\",\"zapiskow\"],n=function(t,n){if(t===1)return n[0];if(t===2)return n[1];if(t>2&&t\u003C=4)return n[2];if(t>=5)return n[3]};return{errorLoading:function(){return\"Wuslědki njedachu so začitać.\"},inputTooLong:function(t){var r=t.input.length-t.maximum;return\"Prošu zhašej \"+r+\" \"+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return\"Prošu zapodaj znajmjeńša \"+r+\" \"+n(r,e)},loadingMore:function(){return\"Dalše wuslědki so začitaja…\"},maximumSelected:function(e){return\"Móžeš jenož \"+e.maximum+\" \"+n(e.maximum,t)+\"wubrać\"},noResults:function(){return\"Žane wuslědki namakane\"},searching:function(){return\"Pyta so…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhu.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhu.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhu.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhu.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fhu\",[],function(){return{errorLoading:function(){return\"Az eredmények betöltése nem sikerült.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Túl hosszú. \"+t+\" karakterrel több, mint kellene.\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Túl rövid. Még \"+t+\" karakter hiányzik.\"},loadingMore:function(){return\"Töltés…\"},maximumSelected:function(e){return\"Csak \"+e.maximum+\" elemet lehet kiválasztani.\"},noResults:function(){return\"Nincs találat.\"},searching:function(){return\"Keresés…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhy.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhy.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhy.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fhy.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fhy\",[],function(){return{errorLoading:function(){return\"Արդյունքները հնարավոր չէ բեռնել։\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Խնդրում ենք հեռացնել \"+t+\" նշան\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Խնդրում ենք մուտքագրել \"+t+\" կամ ավել նշաններ\";return n},loadingMore:function(){return\"Բեռնվում են նոր արդյունքներ․․․\"},maximumSelected:function(e){var t=\"Դուք կարող եք ընտրել առավելագույնը \"+e.maximum+\" կետ\";return t},noResults:function(){return\"Արդյունքներ չեն գտնվել\"},searching:function(){return\"Որոնում․․․\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fid.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fid.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fid.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fid.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fid\",[],function(){return{errorLoading:function(){return\"Data tidak boleh diambil.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Hapuskan \"+t+\" huruf\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Masukkan \"+t+\" huruf lagi\"},loadingMore:function(){return\"Mengambil data…\"},maximumSelected:function(e){return\"Anda hanya dapat memilih \"+e.maximum+\" pilihan\"},noResults:function(){return\"Tidak ada data yang sesuai\"},searching:function(){return\"Mencari…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fis.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fis.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fis.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fis.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fis\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vinsamlegast styttið texta um \"+t+\" staf\";return t\u003C=1?n:n+\"i\"},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vinsamlegast skrifið \"+t+\" staf\";return t>1&&(n+=\"i\"),n+=\" í viðbót\",n},loadingMore:function(){return\"Sæki fleiri niðurstöður…\"},maximumSelected:function(e){return\"Þú getur aðeins valið \"+e.maximum+\" atriði\"},noResults:function(){return\"Ekkert fannst\"},searching:function(){return\"Leita…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fit_IT.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fit_IT.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fit_IT.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fit_IT.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fit\",[],function(){return{errorLoading:function(){return\"I risultati non possono essere caricati.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Per favore cancella \"+t+\" caratter\";return t!==1?n+=\"i\":n+=\"e\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Per favore inserisci \"+t+\" o più caratteri\";return n},loadingMore:function(){return\"Caricando più risultati…\"},maximumSelected:function(e){var t=\"Puoi selezionare solo \"+e.maximum+\" element\";return e.maximum!==1?t+=\"i\":t+=\"o\",t},noResults:function(){return\"Nessun risultato trovato\"},searching:function(){return\"Sto cercando…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fja.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fja.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fja.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fja.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fja\",[],function(){return{errorLoading:function(){return\"結果が読み込まれませんでした\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+\" 文字を削除してください\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"少なくとも \"+t+\" 文字を入力してください\";return n},loadingMore:function(){return\"読み込み中…\"},maximumSelected:function(e){var t=e.maximum+\" 件しか選択できません\";return t},noResults:function(){return\"対象が見つかりません\"},searching:function(){return\"検索しています…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fkm.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fkm.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fkm.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fkm.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fkm\",[],function(){return{errorLoading:function(){return\"មិនអាចទាញយកទិន្នន័យ\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"សូមលុបចេញ  \"+t+\" អក្សរ\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"សូមបញ្ចូល\"+t+\" អក្សរ រឺ ច្រើនជាងនេះ\";return n},loadingMore:function(){return\"កំពុងទាញយកទិន្នន័យបន្ថែម...\"},maximumSelected:function(e){var t=\"អ្នកអាចជ្រើសរើសបានតែ \"+e.maximum+\" ជម្រើសប៉ុណ្ណោះ\";return t},noResults:function(){return\"មិនមានលទ្ធផល\"},searching:function(){return\"កំពុងស្វែងរក...\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fko.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fko.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fko.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fko.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fko\",[],function(){return{errorLoading:function(){return\"결과를 불러올 수 없습니다.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"너무 깁니다. \"+t+\" 글자 지워주세요.\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"너무 짧습니다. \"+t+\" 글자 더 입력해주세요.\";return n},loadingMore:function(){return\"불러오는 중…\"},maximumSelected:function(e){var t=\"최대 \"+e.maximum+\"개까지만 선택 가능합니다.\";return t},noResults:function(){return\"결과가 없습니다.\"},searching:function(){return\"검색 중…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Flt.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Flt.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Flt.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Flt.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Flt\",[],function(){function e(e,t,n,r){return e%10===1&&(e%100\u003C11||e%100>19)?t:e%10>=2&&e%10\u003C=9&&(e%100\u003C11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Pašalinkite \"+n+\" simbol\";return r+=e(n,\"į\",\"ius\",\"ių\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Įrašykite dar \"+n+\" simbol\";return r+=e(n,\"į\",\"ius\",\"ių\"),r},loadingMore:function(){return\"Kraunama daugiau rezultatų…\"},maximumSelected:function(t){var n=\"Jūs galite pasirinkti tik \"+t.maximum+\" element\";return n+=e(t.maximum,\"ą\",\"us\",\"ų\"),n},noResults:function(){return\"Atitikmenų nerasta\"},searching:function(){return\"Ieškoma…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Flv.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Flv.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Flv.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Flv.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Flv\",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Lūdzu ievadiet par  \"+n;return r+=\" simbol\"+e(n,\"iem\",\"u\",\"iem\"),r+\" mazāk\"},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Lūdzu ievadiet vēl \"+n;return r+=\" simbol\"+e(n,\"us\",\"u\",\"us\"),r},loadingMore:function(){return\"Datu ielāde…\"},maximumSelected:function(t){var n=\"Jūs varat izvēlēties ne vairāk kā \"+t.maximum;return n+=\" element\"+e(t.maximum,\"us\",\"u\",\"us\"),n},noResults:function(){return\"Sakritību nav\"},searching:function(){return\"Meklēšana…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fmk.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fmk.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fmk.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fmk.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fmk\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Ве молиме внесете \"+e.maximum+\" помалку карактер\";return e.maximum!==1&&(n+=\"и\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Ве молиме внесете уште \"+e.maximum+\" карактер\";return e.maximum!==1&&(n+=\"и\"),n},loadingMore:function(){return\"Вчитување резултати…\"},maximumSelected:function(e){var t=\"Можете да изберете само \"+e.maximum+\" ставк\";return e.maximum===1?t+=\"а\":t+=\"и\",t},noResults:function(){return\"Нема пронајдено совпаѓања\"},searching:function(){return\"Пребарување…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fms.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fms.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fms.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fms.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fms\",[],function(){return{errorLoading:function(){return\"Keputusan tidak berjaya dimuatkan.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Sila hapuskan \"+t+\" aksara\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Sila masukkan \"+t+\" atau lebih aksara\"},loadingMore:function(){return\"Sedang memuatkan keputusan…\"},maximumSelected:function(e){return\"Anda hanya boleh memilih \"+e.maximum+\" pilihan\"},noResults:function(){return\"Tiada padanan yang ditemui\"},searching:function(){return\"Mencari…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fnb.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fnb.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fnb.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fnb.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fnb\",[],function(){return{errorLoading:function(){return\"Kunne ikke hente resultater.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Vennligst fjern \"+t+\" tegn\"},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vennligst skriv inn \";return t>1?n+=t:n+=\"ett\",n+\" tegn til\"},loadingMore:function(){return\"Laster flere resultater…\"},maximumSelected:function(e){return\"Du kan velge maks \"+e.maximum+\" elementer\"},noResults:function(){return\"Ingen treff\"},searching:function(){return\"Søker…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fnl_NL.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fnl_NL.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fnl_NL.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fnl_NL.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fnl\",[],function(){return{errorLoading:function(){return\"De resultaten konden niet worden geladen.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Gelieve \"+t+\" karakters te verwijderen\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Gelieve \"+t+\" of meer karakters in te voeren\";return n},loadingMore:function(){return\"Meer resultaten laden…\"},maximumSelected:function(e){var t=e.maximum==1?\"kan\":\"kunnen\",n=\"Er \"+t+\" maar \"+e.maximum+\" item\";return e.maximum!=1&&(n+=\"s\"),n+=\" worden geselecteerd\",n},noResults:function(){return\"Geen resultaten gevonden…\"},searching:function(){return\"Zoeken…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fpl.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fpl.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fpl.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fpl.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fpl\",[],function(){var e=[\"znak\",\"znaki\",\"znaków\"],t=[\"element\",\"elementy\",\"elementów\"],n=function(t,n){if(t===1)return n[0];if(t>1&&t\u003C=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return\"Nie można załadować wyników.\"},inputTooLong:function(t){var r=t.input.length-t.maximum;return\"Usuń \"+r+\" \"+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return\"Podaj przynajmniej \"+r+\" \"+n(r,e)},loadingMore:function(){return\"Trwa ładowanie…\"},maximumSelected:function(e){return\"Możesz zaznaczyć tylko \"+e.maximum+\" \"+n(e.maximum,t)},noResults:function(){return\"Brak wyników\"},searching:function(){return\"Trwa wyszukiwanie…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fps.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fps.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fps.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fps.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fps\",[],function(){return{errorLoading:function(){return\"پايلي نه سي ترلاسه کېدای\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"د مهربانۍ لمخي \"+t+\" توری ړنګ کړئ\";return t!=1&&(n=n.replace(\"توری\",\"توري\")),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"لږ تر لږه \"+t+\" يا ډېر توري وليکئ\";return n},loadingMore:function(){return\"نوري پايلي ترلاسه کيږي...\"},maximumSelected:function(e){var t=\"تاسو يوازي \"+e.maximum+\" قلم په نښه کولای سی\";return e.maximum!=1&&(t=t.replace(\"قلم\",\"قلمونه\")),t},noResults:function(){return\"پايلي و نه موندل سوې\"},searching:function(){return\"لټول کيږي...\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fpt_BR.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fpt_BR.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fpt_BR.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fpt_BR.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fpt-BR\",[],function(){return{errorLoading:function(){return\"Os resultados não puderam ser carregados.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Apague \"+t+\" caracter\";return t!=1&&(n+=\"es\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Digite \"+t+\" ou mais caracteres\";return n},loadingMore:function(){return\"Carregando mais resultados…\"},maximumSelected:function(e){var t=\"Você só pode selecionar \"+e.maximum+\" ite\";return e.maximum==1?t+=\"m\":t+=\"ns\",t},noResults:function(){return\"Nenhum resultado encontrado\"},searching:function(){return\"Buscando…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fpt_PT.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fpt_PT.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fpt_PT.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fpt_PT.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fpt\",[],function(){return{errorLoading:function(){return\"Os resultados não puderam ser carregados.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Por favor apague \"+t+\" \";return n+=t!=1?\"caracteres\":\"caractere\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Introduza \"+t+\" ou mais caracteres\";return n},loadingMore:function(){return\"A carregar mais resultados…\"},maximumSelected:function(e){var t=\"Apenas pode seleccionar \"+e.maximum+\" \";return t+=e.maximum!=1?\"itens\":\"item\",t},noResults:function(){return\"Sem resultados\"},searching:function(){return\"A procurar…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fro.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fro.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fro.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fro.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fro\",[],function(){return{errorLoading:function(){return\"Rezultatele nu au putut fi incărcate.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vă rugăm să ștergeți\"+t+\" caracter\";return t!==1&&(n+=\"e\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vă rugăm să introduceți \"+t+\" sau mai multe caractere\";return n},loadingMore:function(){return\"Se încarcă mai multe rezultate…\"},maximumSelected:function(e){var t=\"Aveți voie să selectați cel mult \"+e.maximum;return t+=\" element\",e.maximum!==1&&(t+=\"e\"),t},noResults:function(){return\"Nu au fost găsite rezultate\"},searching:function(){return\"Căutare…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fru_RU.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fru_RU.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fru_RU.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fru_RU.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fru\",[],function(){function e(e,t,n,r){return e%10\u003C5&&e%10>0&&e%100\u003C5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return\"Невозможно загрузить результаты\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Пожалуйста, введите на \"+n+\" символ\";return r+=e(n,\"\",\"a\",\"ов\"),r+=\" меньше\",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Пожалуйста, введите еще хотя бы \"+n+\" символ\";return r+=e(n,\"\",\"a\",\"ов\"),r},loadingMore:function(){return\"Загрузка данных…\"},maximumSelected:function(t){var n=\"Вы можете выбрать не более \"+t.maximum+\" элемент\";return n+=e(t.maximum,\"\",\"a\",\"ов\"),n},noResults:function(){return\"Совпадений не найдено\"},searching:function(){return\"Поиск…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsk.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsk.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsk.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsk.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fsk\",[],function(){var e={2:function(e){return e?\"dva\":\"dve\"},3:function(){return\"tri\"},4:function(){return\"štyri\"}};return{errorLoading:function(){return\"Výsledky sa nepodarilo načítať.\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?\"Prosím, zadajte o jeden znak menej\":n>=2&&n\u003C=4?\"Prosím, zadajte o \"+e[n](!0)+\" znaky menej\":\"Prosím, zadajte o \"+n+\" znakov menej\"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?\"Prosím, zadajte ešte jeden znak\":n\u003C=4?\"Prosím, zadajte ešte ďalšie \"+e[n](!0)+\" znaky\":\"Prosím, zadajte ešte ďalších \"+n+\" znakov\"},loadingMore:function(){return\"Načítanie ďalších výsledkov…\"},maximumSelected:function(t){return t.maximum==1?\"Môžete zvoliť len jednu položku\":t.maximum>=2&&t.maximum\u003C=4?\"Môžete zvoliť najviac \"+e[t.maximum](!1)+\" položky\":\"Môžete zvoliť najviac \"+t.maximum+\" položiek\"},noResults:function(){return\"Nenašli sa žiadne položky\"},searching:function(){return\"Vyhľadávanie…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsl.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsl.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsl.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsl.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fsl\",[],function(){return{errorLoading:function(){return\"Zadetkov iskanja ni bilo mogoče naložiti.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Prosim zbrišite \"+t+\" znak\";return t==2?n+=\"a\":t!=1&&(n+=\"e\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Prosim vpišite še \"+t+\" znak\";return t==2?n+=\"a\":t!=1&&(n+=\"e\"),n},loadingMore:function(){return\"Nalagam več zadetkov…\"},maximumSelected:function(e){var t=\"Označite lahko največ \"+e.maximum+\" predmet\";return e.maximum==2?t+=\"a\":e.maximum!=1&&(t+=\"e\"),t},noResults:function(){return\"Ni zadetkov.\"},searching:function(){return\"Iščem…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsr-Cyrl.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsr-Cyrl.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsr-Cyrl.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsr-Cyrl.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fsr-Cyrl\",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10\u003C=4&&(e%100\u003C12||e%100>14)?n:r}return{errorLoading:function(){return\"Преузимање није успело.\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Обришите \"+n+\" симбол\";return r+=e(n,\"\",\"а\",\"а\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Укуцајте бар још \"+n+\" симбол\";return r+=e(n,\"\",\"а\",\"а\"),r},loadingMore:function(){return\"Преузимање још резултата…\"},maximumSelected:function(t){var n=\"Можете изабрати само \"+t.maximum+\" ставк\";return n+=e(t.maximum,\"у\",\"е\",\"и\"),n},noResults:function(){return\"Ништа није пронађено\"},searching:function(){return\"Претрага…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsr.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsr.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsr.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsr.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fsr\",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10\u003C=4&&(e%100\u003C12||e%100>14)?n:r}return{errorLoading:function(){return\"Preuzimanje nije uspelo.\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Obrišite \"+n+\" simbol\";return r+=e(n,\"\",\"a\",\"a\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Ukucajte bar još \"+n+\" simbol\";return r+=e(n,\"\",\"a\",\"a\"),r},loadingMore:function(){return\"Preuzimanje još rezultata…\"},maximumSelected:function(t){var n=\"Možete izabrati samo \"+t.maximum+\" stavk\";return n+=e(t.maximum,\"u\",\"e\",\"i\"),n},noResults:function(){return\"Ništa nije pronađeno\"},searching:function(){return\"Pretraga…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsv.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsv.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsv.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fsv.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fsv\",[],function(){return{errorLoading:function(){return\"Resultat kunde inte laddas.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vänligen sudda ut \"+t+\" tecken\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vänligen skriv in \"+t+\" eller fler tecken\";return n},loadingMore:function(){return\"Laddar fler resultat…\"},maximumSelected:function(e){var t=\"Du kan max välja \"+e.maximum+\" element\";return t},noResults:function(){return\"Inga träffar\"},searching:function(){return\"Söker…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fth.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fth.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fth.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fth.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fth\",[],function(){return{errorLoading:function(){return\"ไม่สามารถค้นข้อมูลได้\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"โปรดลบออก \"+t+\" ตัวอักษร\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"โปรดพิมพ์เพิ่มอีก \"+t+\" ตัวอักษร\";return n},loadingMore:function(){return\"กำลังค้นข้อมูลเพิ่ม…\"},maximumSelected:function(e){var t=\"คุณสามารถเลือกได้ไม่เกิน \"+e.maximum+\" รายการ\";return t},noResults:function(){return\"ไม่พบข้อมูล\"},searching:function(){return\"กำลังค้นข้อมูล…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ftr.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ftr.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ftr.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Ftr.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Ftr\",[],function(){return{errorLoading:function(){return\"Sonuç yüklenemedi\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+\" karakter daha girmelisiniz\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"En az \"+t+\" karakter daha girmelisiniz\";return n},loadingMore:function(){return\"Daha fazla…\"},maximumSelected:function(e){var t=\"Sadece \"+e.maximum+\" seçim yapabilirsiniz\";return t},noResults:function(){return\"Sonuç bulunamadı\"},searching:function(){return\"Aranıyor…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fuk.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fuk.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fuk.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fuk.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fuk\",[],function(){function e(e,t,n,r){return e%100>10&&e%100\u003C15?r:e%10===1?t:e%10>1&&e%10\u003C5?n:r}return{errorLoading:function(){return\"Неможливо завантажити результати\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return\"Будь ласка, видаліть \"+n+\" \"+e(t.maximum,\"літеру\",\"літери\",\"літер\")},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Будь ласка, введіть \"+t+\" або більше літер\"},loadingMore:function(){return\"Завантаження інших результатів…\"},maximumSelected:function(t){return\"Ви можете вибрати лише \"+t.maximum+\" \"+e(t.maximum,\"пункт\",\"пункти\",\"пунктів\")},noResults:function(){return\"Нічого не знайдено\"},searching:function(){return\"Пошук…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fvi.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fvi.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fvi.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fvi.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fvi\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vui lòng nhập ít hơn \"+t+\" ký tự\";return t!=1&&(n+=\"s\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vui lòng nhập nhiều hơn \"+t+\" ký tự\";return n},loadingMore:function(){return\"Đang lấy thêm kết quả…\"},maximumSelected:function(e){var t=\"Chỉ có thể chọn được \"+e.maximum+\" lựa chọn\";return t},noResults:function(){return\"Không tìm thấy kết quả\"},searching:function(){return\"Đang tìm…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fzh_CN.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fzh_CN.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fzh_CN.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fzh_CN.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fzh-CN\",[],function(){return{errorLoading:function(){return\"无法载入结果。\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"请删除\"+t+\"个字符\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"请再输入至少\"+t+\"个字符\";return n},loadingMore:function(){return\"载入更多结果…\"},maximumSelected:function(e){var t=\"最多只能选择\"+e.maximum+\"个项目\";return t},noResults:function(){return\"未找到结果\"},searching:function(){return\"搜索中…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fzh_TW.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fzh_TW.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fzh_TW.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002Fi18n\u002Fzh_TW.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,3 +1,3 @@\n-\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n-\n+\u002F*! Select2 1.0.9 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n+\r\n (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2\u002Fi18n\u002Fzh-TW\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"請刪掉\"+t+\"個字元\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"請再輸入\"+t+\"個字元\";return n},loadingMore:function(){return\"載入中…\"},maximumSelected:function(e){var t=\"你只能選擇最多\"+e.maximum+\"項\";return t},noResults:function(){return\"沒有找到相符的項目\"},searching:function(){return\"搜尋中…\"}}}),{define:e.define,require:e.require}})();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002FselectWoo.full.min.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002FselectWoo.full.min.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Fjs\u002FselectWoo\u002FselectWoo.full.min.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Fjs\u002FselectWoo\u002FselectWoo.full.min.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,16 +1,16 @@\n-\u002F*!\n- * SelectWoo 1.0.10\n- * https:\u002F\u002Fgithub.com\u002Fwoocommerce\u002FselectWoo\n- *\n- * Released under the MIT license\n- * https:\u002F\u002Fgithub.com\u002Fwoocommerce\u002FselectWoo\u002Fblob\u002Fmaster\u002FLICENSE.md\n- *\u002F\n-!function(n){\"function\"==typeof define&&define.amd?define([\"jquery\"],n):\"object\"==typeof module&&module.exports?module.exports=function(e,t){return t===undefined&&(t=\"undefined\"!=typeof window?require(\"jquery\"):require(\"jquery\")(e)),n(t),t}:n(jQuery)}(function(t){var e,n,p,s,r,h,f,g,m,y,v,i,o,w,a=((u=t&&t.fn&&t.fn.select2&&t.fn.select2.amd?t.fn.select2.amd:u)&&u.requirejs||(u?n=u:u={},g={},m={},y={},v={},i=Object.prototype.hasOwnProperty,o=[].slice,w=\u002F\\.js$\u002F,h=function(e,t){var n,i,o=c(e),s=o[0],t=t[1];return e=o[1],s&&(n=x(s=l(s,t))),s?e=n&&n.normalize?n.normalize(e,(i=t,function(e){return l(e,i)})):l(e,t):(s=(o=c(e=l(e,t)))[0],e=o[1],s&&(n=x(s))),{f:s?s+\"!\"+e:e,n:e,pr:s,p:n}},f={require:function(e){return b(e)},exports:function(e){var t=g[e];return void 0!==t?t:g[e]={}},module:function(e){return{id:e,uri:\"\",exports:g[e],config:(t=e,function(){return y&&y.config&&y.config[t]||{}})};var t}},s=function(e,t,n,i){var o,s,r,a,l,c=[],u=typeof n,d=A(i=i||e);if(\"undefined\"==u||\"function\"==u){for(t=!t.length&&n.length?[\"require\",\"exports\",\"module\"]:t,a=0;a\u003Ct.length;a+=1)if(\"require\"===(s=(r=h(t[a],d)).f))c[a]=f.require(e);else if(\"exports\"===s)c[a]=f.exports(e),l=!0;else if(\"module\"===s)o=c[a]=f.module(e);else if(_(g,s)||_(m,s)||_(v,s))c[a]=x(s);else{if(!r.p)throw new Error(e+\" missing \"+s);r.p.load(r.n,b(i,!0),function(t){return function(e){g[t]=e}}(s),{}),c[a]=g[s]}u=n?n.apply(g[e],c):undefined,e&&(o&&o.exports!==p&&o.exports!==g[e]?g[e]=o.exports:u===p&&l||(g[e]=u))}else e&&(g[e]=n)},e=n=r=function(e,t,n,i,o){if(\"string\"==typeof e)return f[e]?f[e](t):x(h(e,A(t)).f);if(!e.splice){if((y=e).deps&&r(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=p}return t=t||function(){},\"function\"==typeof n&&(n=i,i=o),i?s(p,e,t,n):setTimeout(function(){s(p,e,t,n)},4),r},r.config=function(e){return r(e)},e._defined=g,(a=function(e,t,n){if(\"string\"!=typeof e)throw new Error(\"See almond README: incorrect module build, no module name\");t.splice||(n=t,t=[]),_(g,e)||_(m,e)||(m[e]=[e,t,n])}).amd={jQuery:!0},u.requirejs=e,u.require=n,u.define=a),u.define(\"almond\",function(){}),u.define(\"jquery\",[],function(){var e=t||$;return null==e&&console&&console.error&&console.error(\"Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page.\"),e}),u.define(\"select2\u002Futils\",[\"jquery\"],function(s){var e={};function c(e){var t,n=e.prototype,i=[];for(t in n)\"function\"==typeof n[t]&&\"constructor\"!==t&&i.push(t);return i}e.Extend=function(e,t){var n,i={}.hasOwnProperty;function o(){this.constructor=e}for(n in t)i.call(t,n)&&(e[n]=t[n]);return o.prototype=t.prototype,e.prototype=new o,e.__super__=t.prototype,e},e.Decorate=function(i,o){var e=c(o),t=c(i);function s(){var e=Array.prototype.unshift,t=o.prototype.constructor.length,n=i.prototype.constructor;0\u003Ct&&(e.call(arguments,i.prototype.constructor),n=o.prototype.constructor),n.apply(this,arguments)}o.displayName=i.displayName,s.prototype=new function(){this.constructor=s};for(var n=0;n\u003Ct.length;n++){var r=t[n];s.prototype[r]=i.prototype[r]}for(var a=0;a\u003Ce.length;a++){var l=e[a];s.prototype[l]=function(e){var t=function(){};e in s.prototype&&(t=s.prototype[e]);var n=o.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}(l)}return s};var t=function(){this.listeners={}};return t.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},t.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},0===(n=null==n?[]:n).length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),\"*\"in this.listeners&&this.invoke(this.listeners[\"*\"],arguments)},t.prototype.invoke=function(e,t){for(var n=0,i=e.length;n\u003Ci;n++)e[n].apply(this,t)},e.Observable=t,e.generateChars=function(e){for(var t=\"\",n=0;n\u003Ce;n++)t+=Math.floor(36*Math.random()).toString(36);return t},e.bind=function(e,t){return function(){e.apply(t,arguments)}},e._convertData=function(e){for(var t in e){var n=t.split(\"-\"),i=e;if(1!==n.length){for(var o=0;o\u003Cn.length;o++){var s=n[o];(s=s.substring(0,1).toLowerCase()+s.substring(1))in i||(i[s]={}),o==n.length-1&&(i[s]=e[t]),i=i[s]}delete e[t]}}return e},e.hasScroll=function(e,t){var n=s(t),i=t.style.overflowX,o=t.style.overflowY;return(i!==o||\"hidden\"!==o&&\"visible\"!==o)&&(\"scroll\"===i||\"scroll\"===o||(n.innerHeight()\u003Ct.scrollHeight||n.innerWidth()\u003Ct.scrollWidth))},e.escapeMarkup=function(e){var t={\"\\\\\":\"&#92;\",\"&\":\"&amp;\",\"\u003C\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\",\"\u002F\":\"&#47;\"};return\"string\"!=typeof e?e:String(e).replace(\u002F[&\u003C>\"'\\\u002F\\\\]\u002Fg,function(e){return t[e]})},e.entityDecode=function(e){var t=document.createElement(\"textarea\");return t.innerHTML=e,t.value},e.appendMany=function(e,t){var n;\"1.7\"===s.fn.jquery.substr(0,3)&&(n=s(),s.map(t,function(e){n=n.add(e)}),t=n),e.append(t)},e.isTouchscreen=function(){return\"undefined\"==typeof e._isTouchscreenCache&&(e._isTouchscreenCache=\"ontouchstart\"in document.documentElement),e._isTouchscreenCache},e}),u.define(\"select2\u002Fresults\",[\"jquery\",\".\u002Futils\"],function(d,e){function i(e,t,n){this.$element=e,this.data=n,this.options=t,i.__super__.constructor.call(this)}return e.Extend(i,e.Observable),i.prototype.render=function(){var e=d('\u003Cul class=\"select2-results__options\" role=\"listbox\" tabindex=\"-1\">\u003C\u002Ful>');return this.options.get(\"multiple\")&&e.attr(\"aria-multiselectable\",\"true\"),this.$results=e},i.prototype.clear=function(){this.$results.empty()},i.prototype.displayMessage=function(e){var t=this.options.get(\"escapeMarkup\");this.clear(),this.hideLoading();var n=d('\u003Cli role=\"alert\" aria-live=\"assertive\" class=\"select2-results__option\">\u003C\u002Fli>'),i=this.options.get(\"translations\").get(e.message);n.append(t(i(e.args))),n[0].className+=\" select2-results__message\",this.$results.append(n)},i.prototype.hideMessages=function(){this.$results.find(\".select2-results__message\").remove()},i.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n\u003Ce.results.length;n++){var i=e.results[n],i=this.option(i);t.push(i)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger(\"results:message\",{message:\"noResults\"})},i.prototype.position=function(e,t){t.find(\".select2-results\").append(e)},i.prototype.sort=function(e){return this.options.get(\"sorter\")(e)},i.prototype.highlightFirstItem=function(){var e=this.$results.find(\".select2-results__option[data-selected]\"),t=e.filter(\"[data-selected=true]\");(0\u003Ct.length?t:e).first().trigger(\"mouseenter\"),this.ensureHighlightVisible()},i.prototype.setClasses=function(){var t=this;this.data.current(function(e){var i=d.map(e,function(e){return e.id.toString()});t.$results.find(\".select2-results__option[data-selected]\").each(function(){var e=d(this),t=d.data(this,\"data\"),n=\"\"+t.id;null!=t.element&&t.element.selected||null==t.element&&-1\u003Cd.inArray(n,i)?e.attr(\"data-selected\",\"true\"):e.attr(\"data-selected\",\"false\")})})},i.prototype.showLoading=function(e){this.hideLoading();e={disabled:!0,loading:!0,text:this.options.get(\"translations\").get(\"searching\")(e)},e=this.option(e);e.className+=\" loading-results\",this.$results.prepend(e)},i.prototype.hideLoading=function(){this.$results.find(\".loading-results\").remove()},i.prototype.option=function(e){var t=document.createElement(\"li\");t.className=\"select2-results__option\";var n,i={role:\"option\",\"data-selected\":\"false\",tabindex:-1};for(n in e.disabled&&(delete i[\"data-selected\"],i[\"aria-disabled\"]=\"true\"),null==e.id&&delete i[\"data-selected\"],null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(i[\"aria-label\"]=e.text,delete i[\"data-selected\"]),i){var o=i[n];t.setAttribute(n,o)}if(e.children){var s=d(t),r=document.createElement(\"strong\");r.className=\"select2-results__group\";var a=d(r);this.template(e,r),a.attr(\"role\",\"presentation\");for(var l=[],c=0;c\u003Ce.children.length;c++){var u=e.children[c],u=this.option(u);l.push(u)}a=d(\"\u003Cul>\u003C\u002Ful>\",{\"class\":\"select2-results__options select2-results__options--nested\",role:\"listbox\"});a.append(l),s.attr(\"role\",\"list\"),s.append(r),s.append(a)}else this.template(e,t);return d.data(t,\"data\",e),t},i.prototype.bind=function(t,e){var o=this,n=t.id+\"-results\";this.$results.attr(\"id\",n),t.on(\"results:all\",function(e){o.clear(),o.append(e.data),t.isOpen()&&(o.setClasses(),o.highlightFirstItem())}),t.on(\"results:append\",function(e){o.append(e.data),t.isOpen()&&o.setClasses()}),t.on(\"query\",function(e){o.hideMessages(),o.showLoading(e)}),t.on(\"select\",function(){t.isOpen()&&(o.setClasses(),o.highlightFirstItem())}),t.on(\"unselect\",function(){t.isOpen()&&(o.setClasses(),o.highlightFirstItem())}),t.on(\"open\",function(){o.$results.attr(\"aria-expanded\",\"true\"),o.$results.attr(\"aria-hidden\",\"false\"),o.setClasses(),o.ensureHighlightVisible();var e=o.$results.parents(\".select2-container\").find(\"input.select2-search__field\")[0];void 0!==e&&e.focus()}),t.on(\"close\",function(){o.$results.attr(\"aria-expanded\",\"false\"),o.$results.attr(\"aria-hidden\",\"true\"),o.$results.removeAttr(\"aria-activedescendant\")}),t.on(\"results:toggle\",function(){var e=o.getHighlightedResults();0!==e.length&&e.trigger(\"mouseup\")}),t.on(\"results:select\",function(){var e,t=o.getHighlightedResults();0!==t.length&&(e=t.data(\"data\"),\"true\"==t.attr(\"data-selected\")?o.trigger(\"close\",{}):o.trigger(\"select\",{data:e}))}),t.on(\"results:previous\",function(){var e,t=o.getHighlightedResults(),n=o.$results.find(\"[data-selected]\"),i=n.index(t);0!==i&&(e=i-1,0===t.length&&(e=0),(i=n.eq(e)).trigger(\"mouseenter\"),t=o.$results.offset().top,n=i.offset().top,i=o.$results.scrollTop()+(n-t),0===e?o.$results.scrollTop(0):n-t\u003C0&&o.$results.scrollTop(i))}),t.on(\"results:next\",function(){var e,t=o.getHighlightedResults(),n=o.$results.find(\"[data-selected]\"),i=n.index(t)+1;i>=n.length||((e=n.eq(i)).trigger(\"mouseenter\"),t=o.$results.offset().top+o.$results.outerHeight(!1),n=e.offset().top+e.outerHeight(!1),e=o.$results.scrollTop()+n-t,0===i?o.$results.scrollTop(0):t\u003Cn&&o.$results.scrollTop(e))}),t.on(\"results:focus\",function(e){e.element.addClass(\"select2-results__option--highlighted\").attr(\"aria-selected\",\"true\"),o.$results.attr(\"aria-activedescendant\",e.element.attr(\"id\"))}),t.on(\"results:message\",function(e){o.displayMessage(e)}),d.fn.mousewheel&&this.$results.on(\"mousewheel\",function(e){var t=o.$results.scrollTop(),n=o.$results.get(0).scrollHeight-t+e.deltaY,t=0\u003Ce.deltaY&&t-e.deltaY\u003C=0,n=e.deltaY\u003C0&&n\u003C=o.$results.height();t?(o.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):n&&(o.$results.scrollTop(o.$results.get(0).scrollHeight-o.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on(\"mouseup\",\".select2-results__option[data-selected]\",function(e){var t=d(this),n=t.data(\"data\");\"true\"!==t.attr(\"data-selected\")?o.trigger(\"select\",{originalEvent:e,data:n}):o.options.get(\"multiple\")?o.trigger(\"unselect\",{originalEvent:e,data:n}):o.trigger(\"close\",{})}),this.$results.on(\"mouseenter\",\".select2-results__option[data-selected]\",function(e){var t=d(this).data(\"data\");o.getHighlightedResults().removeClass(\"select2-results__option--highlighted\").attr(\"aria-selected\",\"false\"),o.trigger(\"results:focus\",{data:t,element:d(this)})})},i.prototype.getHighlightedResults=function(){return this.$results.find(\".select2-results__option--highlighted\")},i.prototype.destroy=function(){this.$results.remove()},i.prototype.ensureHighlightVisible=function(){var e,t,n,i,o=this.getHighlightedResults();0!==o.length&&(e=this.$results.find(\"[data-selected]\").index(o),i=this.$results.offset().top,t=o.offset().top,n=this.$results.scrollTop()+(t-i),i=t-i,n-=2*o.outerHeight(!1),e\u003C=2?this.$results.scrollTop(0):(i>this.$results.outerHeight()||i\u003C0)&&this.$results.scrollTop(n))},i.prototype.template=function(e,t){var n=this.options.get(\"templateResult\"),i=this.options.get(\"escapeMarkup\"),n=n(e,t);null==n?t.style.display=\"none\":\"string\"==typeof n?t.innerHTML=i(n):d(t).append(n)},i}),u.define(\"select2\u002Fkeys\",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),u.define(\"select2\u002Fselection\u002Fbase\",[\"jquery\",\"..\u002Futils\",\"..\u002Fkeys\"],function(i,e,o){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=i('\u003Cspan class=\"select2-selection\"  aria-haspopup=\"true\" aria-expanded=\"false\">\u003C\u002Fspan>');return this._tabindex=0,null!=this.$element.data(\"old-tabindex\")?this._tabindex=this.$element.data(\"old-tabindex\"):null!=this.$element.attr(\"tabindex\")&&(this._tabindex=this.$element.attr(\"tabindex\")),e.attr(\"title\",this.$element.attr(\"title\")),e.attr(\"tabindex\",this._tabindex),this.$selection=e},n.prototype.bind=function(e,t){var n=this,i=(e.id,e.id+\"-results\");this.options.get(\"minimumResultsForSearch\"),Infinity;this.container=e,this.$selection.on(\"focus\",function(e){n.trigger(\"focus\",e)}),this.$selection.on(\"blur\",function(e){n._handleBlur(e)}),this.$selection.on(\"keydown\",function(e){n.trigger(\"keypress\",e),e.which===o.SPACE&&e.preventDefault()}),e.on(\"results:focus\",function(e){n.$selection.attr(\"aria-activedescendant\",e.data._resultId)}),e.on(\"selection:update\",function(e){n.update(e.data)}),e.on(\"open\",function(){n.$selection.attr(\"aria-expanded\",\"true\"),n.$selection.attr(\"aria-owns\",i),n._attachCloseHandler(e)}),e.on(\"close\",function(){n.$selection.attr(\"aria-expanded\",\"false\"),n.$selection.removeAttr(\"aria-activedescendant\"),n.$selection.removeAttr(\"aria-owns\"),window.setTimeout(function(){n.$selection.trigger(\"focus\")},1),n._detachCloseHandler(e)}),e.on(\"enable\",function(){n.$selection.attr(\"tabindex\",n._tabindex)}),e.on(\"disable\",function(){n.$selection.attr(\"tabindex\",\"-1\")})},n.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||i.contains(t.$selection[0],document.activeElement)||t.trigger(\"blur\",e)},1)},n.prototype._attachCloseHandler=function(e){i(document.body).on(\"mousedown.select2.\"+e.id,function(e){var t=i(e.target),n=t.closest(\".select2\");i(\".select2.select2-container--open\").each(function(){var e=i(this);this!=n[0]&&(e.data(\"element\").select2(\"close\"),setTimeout(function(){e.find(\"*:focus\").trigger(\"blur\"),t.trigger(\"focus\")},1))})})},n.prototype._detachCloseHandler=function(e){i(document.body).off(\"mousedown.select2.\"+e.id)},n.prototype.position=function(e,t){t.find(\".selection\").append(e)},n.prototype.destroy=function(){this._detachCloseHandler(this.container)},n.prototype.update=function(e){throw new Error(\"The `update` method must be defined in child classes.\")},n}),u.define(\"select2\u002Fselection\u002Fsingle\",[\"jquery\",\".\u002Fbase\",\"..\u002Futils\",\"..\u002Fkeys\"],function(e,t,i,n){function s(){s.__super__.constructor.apply(this,arguments)}return i.Extend(s,t),s.prototype.render=function(){var e=s.__super__.render.call(this);return e.addClass(\"select2-selection--single\"),e.html('\u003Cspan class=\"select2-selection__rendered\">\u003C\u002Fspan>\u003Cspan class=\"select2-selection__arrow\" role=\"presentation\">\u003Cb role=\"presentation\">\u003C\u002Fb>\u003C\u002Fspan>'),e},s.prototype.bind=function(t,e){var n=this;s.__super__.bind.apply(this,arguments);var i=t.id+\"-container\";this.$selection.find(\".select2-selection__rendered\").attr(\"id\",i).attr(\"role\",\"textbox\").attr(\"aria-readonly\",\"true\");var o=this.options.get(\"label\");\"string\"==typeof o?this.$selection.attr(\"aria-label\",o):this.$selection.attr(\"aria-labelledby\",i),this.$selection.attr(\"role\",\"combobox\"),this.$selection.on(\"mousedown\",function(e){1===e.which&&n.trigger(\"toggle\",{originalEvent:e})}),this.$selection.on(\"focus\",function(e){}),this.$selection.on(\"keydown\",function(e){!t.isOpen()&&48\u003C=e.which&&e.which\u003C=90&&t.open()}),this.$selection.on(\"blur\",function(e){}),t.on(\"focus\",function(e){t.isOpen()||n.$selection.trigger(\"focus\")}),t.on(\"selection:update\",function(e){n.update(e.data)})},s.prototype.clear=function(){this.$selection.find(\".select2-selection__rendered\").empty()},s.prototype.display=function(e,t){var n=this.options.get(\"templateSelection\");return this.options.get(\"escapeMarkup\")(n(e,t))},s.prototype.selectionContainer=function(){return e(\"\u003Cspan>\u003C\u002Fspan>\")},s.prototype.update=function(e){var t,n;0!==e.length?(t=e[0],n=this.$selection.find(\".select2-selection__rendered\"),e=i.entityDecode(this.display(t,n)),n.empty().text(e),n.prop(\"title\",t.title||t.text)):this.clear()},s}),u.define(\"select2\u002Fselection\u002Fmultiple\",[\"jquery\",\".\u002Fbase\",\"..\u002Futils\"],function(i,e,l){function o(e,t){o.__super__.constructor.apply(this,arguments)}return l.Extend(o,e),o.prototype.render=function(){var e=o.__super__.render.call(this);return e.addClass(\"select2-selection--multiple\"),e.html('\u003Cul class=\"select2-selection__rendered\" aria-live=\"polite\" aria-relevant=\"additions removals\" aria-atomic=\"true\">\u003C\u002Ful>'),e},o.prototype.bind=function(t,e){var n=this;o.__super__.bind.apply(this,arguments),this.$selection.on(\"click\",function(e){n.trigger(\"toggle\",{originalEvent:e})}),this.$selection.on(\"click\",\".select2-selection__choice__remove\",function(e){var t;n.options.get(\"disabled\")||(t=i(this).parent().data(\"data\"),n.trigger(\"unselect\",{originalEvent:e,data:t}))}),this.$selection.on(\"keydown\",function(e){!t.isOpen()&&48\u003C=e.which&&e.which\u003C=90&&t.open()}),t.on(\"focus\",function(){n.focusOnSearch()})},o.prototype.clear=function(){this.$selection.find(\".select2-selection__rendered\").empty()},o.prototype.display=function(e,t){var n=this.options.get(\"templateSelection\");return this.options.get(\"escapeMarkup\")(n(e,t))},o.prototype.selectionContainer=function(){return i('\u003Cli class=\"select2-selection__choice\">\u003Cspan class=\"select2-selection__choice__remove\" role=\"presentation\" aria-hidden=\"true\">&times;\u003C\u002Fspan>\u003C\u002Fli>')},o.prototype.focusOnSearch=function(){var e=this;\"undefined\"!=typeof e.$search&&setTimeout(function(){e._keyUpPrevented=!0,e.$search.trigger(\"focus\")},1)},o.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n\u003Ce.length;n++){var i=e[n],o=this.selectionContainer(),s=o.html(),r=this.display(i,o);\"string\"==typeof r&&(r=l.entityDecode(r.trim())),o.text(r),o.prepend(s),o.prop(\"title\",i.title||i.text),o.data(\"data\",i),t.push(o)}var a=this.$selection.find(\".select2-selection__rendered\");l.appendMany(a,t)}},o}),u.define(\"select2\u002Fselection\u002Fplaceholder\",[\"..\u002Futils\"],function(i){function e(e,t,n){this.placeholder=this.normalizePlaceholder(n.get(\"placeholder\")),e.call(this,t,n)}return e.prototype.normalizePlaceholder=function(e,t){return t=\"string\"==typeof t?{id:\"\",text:t}:t},e.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.text(i.entityDecode(this.display(t))),n.addClass(\"select2-selection__placeholder\").removeClass(\"select2-selection__choice\"),n},e.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1\u003Ct.length||n)return e.call(this,t);this.clear();e=this.createPlaceholder(this.placeholder);this.$selection.find(\".select2-selection__rendered\").append(e)},e}),u.define(\"select2\u002Fselection\u002FallowClear\",[\"jquery\",\"..\u002Fkeys\"],function(n,i){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),null==this.placeholder&&this.options.get(\"debug\")&&window.console&&console.error&&console.error(\"Select2: The `allowClear` option should be used in combination with the `placeholder` option.\"),this.$selection.on(\"mousedown\",\".select2-selection__clear\",function(e){i._handleClear(e)}),t.on(\"keypress\",function(e){i._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.options.get(\"disabled\")){var n=this.$selection.find(\".select2-selection__clear\");if(0!==n.length){t.stopPropagation();for(var i=n.data(\"data\"),o=0;o\u003Ci.length;o++){var s={data:i[o]};if(this.trigger(\"unselect\",s),s.prevented)return}this.$element.val(this.placeholder.id).trigger(\"change\"),this.trigger(\"toggle\",{})}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=i.DELETE&&t.which!=i.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){e.call(this,t),0\u003Cthis.$selection.find(\".select2-selection__placeholder\").length||0===t.length||((e=n('\u003Cspan class=\"select2-selection__clear\">&times;\u003C\u002Fspan>')).data(\"data\",t),this.$selection.find(\".select2-selection__rendered\").prepend(e))},e}),u.define(\"select2\u002Fselection\u002Fsearch\",[\"jquery\",\"..\u002Futils\",\"..\u002Fkeys\"],function(n,e,r){function t(e,t,n){e.call(this,t,n)}return t.prototype.render=function(e){var t=n('\u003Cli class=\"select2-search select2-search--inline\">\u003Cinput class=\"select2-search__field\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\" spellcheck=\"false\" role=\"textbox\" aria-autocomplete=\"list\" \u002F>\u003C\u002Fli>');this.$searchContainer=t,this.$search=t.find(\"input\");e=e.call(this);return this._transferTabIndex(),e},t.prototype.bind=function(e,n,t){var i=this,o=n.id+\"-results\";e.call(this,n,t),n.on(\"open\",function(){i.$search.attr(\"aria-owns\",o),i.$search.trigger(\"focus\")}),n.on(\"close\",function(){i.$search.val(\"\"),i.$search.removeAttr(\"aria-activedescendant\"),i.$search.removeAttr(\"aria-owns\"),i.$search.trigger(\"focus\")}),n.on(\"enable\",function(){i.$search.prop(\"disabled\",!1),i._transferTabIndex()}),n.on(\"disable\",function(){i.$search.prop(\"disabled\",!0)}),n.on(\"focus\",function(e){i.$search.trigger(\"focus\")}),n.on(\"results:focus\",function(e){i.$search.attr(\"aria-activedescendant\",e.data._resultId)}),this.$selection.on(\"focusin\",\".select2-search--inline\",function(e){i.trigger(\"focus\",e)}),this.$selection.on(\"focusout\",\".select2-search--inline\",function(e){i._handleBlur(e)}),this.$selection.on(\"keydown\",\".select2-search--inline\",function(e){var t;e.stopPropagation(),i.trigger(\"keypress\",e),i._keyUpPrevented=e.isDefaultPrevented(),e.which===r.BACKSPACE&&\"\"===i.$search.val()?0\u003C(t=i.$searchContainer.prev(\".select2-selection__choice\")).length&&(t=t.data(\"data\"),i.searchRemoveChoice(t),e.preventDefault()):e.which===r.ENTER&&(n.open(),e.preventDefault())});var e=document.documentMode,s=e&&e\u003C=11;this.$selection.on(\"input.searchcheck\",\".select2-search--inline\",function(e){s?i.$selection.off(\"input.search input.searchcheck\"):i.$selection.off(\"keyup.search\")}),this.$selection.on(\"keyup.search input.search\",\".select2-search--inline\",function(e){var t;s&&\"input\"===e.type?i.$selection.off(\"input.search input.searchcheck\"):(t=e.which)!=r.SHIFT&&t!=r.CTRL&&t!=r.ALT&&t!=r.TAB&&i.handleSearch(e)})},t.prototype._transferTabIndex=function(e){this.$search.attr(\"tabindex\",this.$selection.attr(\"tabindex\")),this.$selection.attr(\"tabindex\",\"-1\")},t.prototype.createPlaceholder=function(e,t){this.$search.attr(\"placeholder\",t.text)},t.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr(\"placeholder\",\"\"),e.call(this,t),this.$selection.find(\".select2-selection__rendered\").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.trigger(\"focus\")},t.prototype.handleSearch=function(){var e;this.resizeSearch(),this._keyUpPrevented||(e=this.$search.val(),this.trigger(\"query\",{term:e})),this._keyUpPrevented=!1},t.prototype.searchRemoveChoice=function(e,t){this.trigger(\"unselect\",{data:t}),this.$search.val(t.text),this.handleSearch()},t.prototype.resizeSearch=function(){this.$search.css(\"width\",\"25px\");var e=\"\";e=\"\"!==this.$search.attr(\"placeholder\")?this.$selection.find(\".select2-selection__rendered\").innerWidth():.75*(this.$search.val().length+1)+\"em\",this.$search.css(\"width\",e)},t}),u.define(\"select2\u002Fselection\u002FeventRelay\",[\"jquery\"],function(r){function e(){}return e.prototype.bind=function(e,t,n){var i=this,o=[\"open\",\"opening\",\"close\",\"closing\",\"select\",\"selecting\",\"unselect\",\"unselecting\"],s=[\"opening\",\"closing\",\"selecting\",\"unselecting\"];e.call(this,t,n),t.on(\"*\",function(e,t){var n;-1!==r.inArray(e,o)&&(n=r.Event(\"select2:\"+e,{params:t=t||{}}),i.$element.trigger(n),-1!==r.inArray(e,s)&&(t.prevented=n.isDefaultPrevented()))})},e}),u.define(\"select2\u002Ftranslation\",[\"jquery\",\"require\"],function(t,n){function i(e){this.dict=e||{}}return i.prototype.all=function(){return this.dict},i.prototype.get=function(e){return this.dict[e]},i.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},i._cache={},i.loadPath=function(e){var t;return e in i._cache||(t=n(e),i._cache[e]=t),new i(i._cache[e])},i}),u.define(\"select2\u002Fdiacritics\",[],function(){return{\"Ⓐ\":\"A\",\"Ａ\":\"A\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ầ\":\"A\",\"Ấ\":\"A\",\"Ẫ\":\"A\",\"Ẩ\":\"A\",\"Ã\":\"A\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ằ\":\"A\",\"Ắ\":\"A\",\"Ẵ\":\"A\",\"Ẳ\":\"A\",\"Ȧ\":\"A\",\"Ǡ\":\"A\",\"Ä\":\"A\",\"Ǟ\":\"A\",\"Ả\":\"A\",\"Å\":\"A\",\"Ǻ\":\"A\",\"Ǎ\":\"A\",\"Ȁ\":\"A\",\"Ȃ\":\"A\",\"Ạ\":\"A\",\"Ậ\":\"A\",\"Ặ\":\"A\",\"Ḁ\":\"A\",\"Ą\":\"A\",\"Ⱥ\":\"A\",\"Ɐ\":\"A\",\"Ꜳ\":\"AA\",\"Æ\":\"AE\",\"Ǽ\":\"AE\",\"Ǣ\":\"AE\",\"Ꜵ\":\"AO\",\"Ꜷ\":\"AU\",\"Ꜹ\":\"AV\",\"Ꜻ\":\"AV\",\"Ꜽ\":\"AY\",\"Ⓑ\":\"B\",\"Ｂ\":\"B\",\"Ḃ\":\"B\",\"Ḅ\":\"B\",\"Ḇ\":\"B\",\"Ƀ\":\"B\",\"Ƃ\":\"B\",\"Ɓ\":\"B\",\"Ⓒ\":\"C\",\"Ｃ\":\"C\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"Ç\":\"C\",\"Ḉ\":\"C\",\"Ƈ\":\"C\",\"Ȼ\":\"C\",\"Ꜿ\":\"C\",\"Ⓓ\":\"D\",\"Ｄ\":\"D\",\"Ḋ\":\"D\",\"Ď\":\"D\",\"Ḍ\":\"D\",\"Ḑ\":\"D\",\"Ḓ\":\"D\",\"Ḏ\":\"D\",\"Đ\":\"D\",\"Ƌ\":\"D\",\"Ɗ\":\"D\",\"Ɖ\":\"D\",\"Ꝺ\":\"D\",\"Ǳ\":\"DZ\",\"Ǆ\":\"DZ\",\"ǲ\":\"Dz\",\"ǅ\":\"Dz\",\"Ⓔ\":\"E\",\"Ｅ\":\"E\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ề\":\"E\",\"Ế\":\"E\",\"Ễ\":\"E\",\"Ể\":\"E\",\"Ẽ\":\"E\",\"Ē\":\"E\",\"Ḕ\":\"E\",\"Ḗ\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ë\":\"E\",\"Ẻ\":\"E\",\"Ě\":\"E\",\"Ȅ\":\"E\",\"Ȇ\":\"E\",\"Ẹ\":\"E\",\"Ệ\":\"E\",\"Ȩ\":\"E\",\"Ḝ\":\"E\",\"Ę\":\"E\",\"Ḙ\":\"E\",\"Ḛ\":\"E\",\"Ɛ\":\"E\",\"Ǝ\":\"E\",\"Ⓕ\":\"F\",\"Ｆ\":\"F\",\"Ḟ\":\"F\",\"Ƒ\":\"F\",\"Ꝼ\":\"F\",\"Ⓖ\":\"G\",\"Ｇ\":\"G\",\"Ǵ\":\"G\",\"Ĝ\":\"G\",\"Ḡ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ǧ\":\"G\",\"Ģ\":\"G\",\"Ǥ\":\"G\",\"Ɠ\":\"G\",\"Ꞡ\":\"G\",\"Ᵹ\":\"G\",\"Ꝿ\":\"G\",\"Ⓗ\":\"H\",\"Ｈ\":\"H\",\"Ĥ\":\"H\",\"Ḣ\":\"H\",\"Ḧ\":\"H\",\"Ȟ\":\"H\",\"Ḥ\":\"H\",\"Ḩ\":\"H\",\"Ḫ\":\"H\",\"Ħ\":\"H\",\"Ⱨ\":\"H\",\"Ⱶ\":\"H\",\"Ɥ\":\"H\",\"Ⓘ\":\"I\",\"Ｉ\":\"I\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"İ\":\"I\",\"Ï\":\"I\",\"Ḯ\":\"I\",\"Ỉ\":\"I\",\"Ǐ\":\"I\",\"Ȉ\":\"I\",\"Ȋ\":\"I\",\"Ị\":\"I\",\"Į\":\"I\",\"Ḭ\":\"I\",\"Ɨ\":\"I\",\"Ⓙ\":\"J\",\"Ｊ\":\"J\",\"Ĵ\":\"J\",\"Ɉ\":\"J\",\"Ⓚ\":\"K\",\"Ｋ\":\"K\",\"Ḱ\":\"K\",\"Ǩ\":\"K\",\"Ḳ\":\"K\",\"Ķ\":\"K\",\"Ḵ\":\"K\",\"Ƙ\":\"K\",\"Ⱪ\":\"K\",\"Ꝁ\":\"K\",\"Ꝃ\":\"K\",\"Ꝅ\":\"K\",\"Ꞣ\":\"K\",\"Ⓛ\":\"L\",\"Ｌ\":\"L\",\"Ŀ\":\"L\",\"Ĺ\":\"L\",\"Ľ\":\"L\",\"Ḷ\":\"L\",\"Ḹ\":\"L\",\"Ļ\":\"L\",\"Ḽ\":\"L\",\"Ḻ\":\"L\",\"Ł\":\"L\",\"Ƚ\":\"L\",\"Ɫ\":\"L\",\"Ⱡ\":\"L\",\"Ꝉ\":\"L\",\"Ꝇ\":\"L\",\"Ꞁ\":\"L\",\"Ǉ\":\"LJ\",\"ǈ\":\"Lj\",\"Ⓜ\":\"M\",\"Ｍ\":\"M\",\"Ḿ\":\"M\",\"Ṁ\":\"M\",\"Ṃ\":\"M\",\"Ɱ\":\"M\",\"Ɯ\":\"M\",\"Ⓝ\":\"N\",\"Ｎ\":\"N\",\"Ǹ\":\"N\",\"Ń\":\"N\",\"Ñ\":\"N\",\"Ṅ\":\"N\",\"Ň\":\"N\",\"Ṇ\":\"N\",\"Ņ\":\"N\",\"Ṋ\":\"N\",\"Ṉ\":\"N\",\"Ƞ\":\"N\",\"Ɲ\":\"N\",\"Ꞑ\":\"N\",\"Ꞥ\":\"N\",\"Ǌ\":\"NJ\",\"ǋ\":\"Nj\",\"Ⓞ\":\"O\",\"Ｏ\":\"O\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Ồ\":\"O\",\"Ố\":\"O\",\"Ỗ\":\"O\",\"Ổ\":\"O\",\"Õ\":\"O\",\"Ṍ\":\"O\",\"Ȭ\":\"O\",\"Ṏ\":\"O\",\"Ō\":\"O\",\"Ṑ\":\"O\",\"Ṓ\":\"O\",\"Ŏ\":\"O\",\"Ȯ\":\"O\",\"Ȱ\":\"O\",\"Ö\":\"O\",\"Ȫ\":\"O\",\"Ỏ\":\"O\",\"Ő\":\"O\",\"Ǒ\":\"O\",\"Ȍ\":\"O\",\"Ȏ\":\"O\",\"Ơ\":\"O\",\"Ờ\":\"O\",\"Ớ\":\"O\",\"Ỡ\":\"O\",\"Ở\":\"O\",\"Ợ\":\"O\",\"Ọ\":\"O\",\"Ộ\":\"O\",\"Ǫ\":\"O\",\"Ǭ\":\"O\",\"Ø\":\"O\",\"Ǿ\":\"O\",\"Ɔ\":\"O\",\"Ɵ\":\"O\",\"Ꝋ\":\"O\",\"Ꝍ\":\"O\",\"Ƣ\":\"OI\",\"Ꝏ\":\"OO\",\"Ȣ\":\"OU\",\"Ⓟ\":\"P\",\"Ｐ\":\"P\",\"Ṕ\":\"P\",\"Ṗ\":\"P\",\"Ƥ\":\"P\",\"Ᵽ\":\"P\",\"Ꝑ\":\"P\",\"Ꝓ\":\"P\",\"Ꝕ\":\"P\",\"Ⓠ\":\"Q\",\"Ｑ\":\"Q\",\"Ꝗ\":\"Q\",\"Ꝙ\":\"Q\",\"Ɋ\":\"Q\",\"Ⓡ\":\"R\",\"Ｒ\":\"R\",\"Ŕ\":\"R\",\"Ṙ\":\"R\",\"Ř\":\"R\",\"Ȑ\":\"R\",\"Ȓ\":\"R\",\"Ṛ\":\"R\",\"Ṝ\":\"R\",\"Ŗ\":\"R\",\"Ṟ\":\"R\",\"Ɍ\":\"R\",\"Ɽ\":\"R\",\"Ꝛ\":\"R\",\"Ꞧ\":\"R\",\"Ꞃ\":\"R\",\"Ⓢ\":\"S\",\"Ｓ\":\"S\",\"ẞ\":\"S\",\"Ś\":\"S\",\"Ṥ\":\"S\",\"Ŝ\":\"S\",\"Ṡ\":\"S\",\"Š\":\"S\",\"Ṧ\":\"S\",\"Ṣ\":\"S\",\"Ṩ\":\"S\",\"Ș\":\"S\",\"Ş\":\"S\",\"Ȿ\":\"S\",\"Ꞩ\":\"S\",\"Ꞅ\":\"S\",\"Ⓣ\":\"T\",\"Ｔ\":\"T\",\"Ṫ\":\"T\",\"Ť\":\"T\",\"Ṭ\":\"T\",\"Ț\":\"T\",\"Ţ\":\"T\",\"Ṱ\":\"T\",\"Ṯ\":\"T\",\"Ŧ\":\"T\",\"Ƭ\":\"T\",\"Ʈ\":\"T\",\"Ⱦ\":\"T\",\"Ꞇ\":\"T\",\"Ꜩ\":\"TZ\",\"Ⓤ\":\"U\",\"Ｕ\":\"U\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ũ\":\"U\",\"Ṹ\":\"U\",\"Ū\":\"U\",\"Ṻ\":\"U\",\"Ŭ\":\"U\",\"Ü\":\"U\",\"Ǜ\":\"U\",\"Ǘ\":\"U\",\"Ǖ\":\"U\",\"Ǚ\":\"U\",\"Ủ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ǔ\":\"U\",\"Ȕ\":\"U\",\"Ȗ\":\"U\",\"Ư\":\"U\",\"Ừ\":\"U\",\"Ứ\":\"U\",\"Ữ\":\"U\",\"Ử\":\"U\",\"Ự\":\"U\",\"Ụ\":\"U\",\"Ṳ\":\"U\",\"Ų\":\"U\",\"Ṷ\":\"U\",\"Ṵ\":\"U\",\"Ʉ\":\"U\",\"Ⓥ\":\"V\",\"Ｖ\":\"V\",\"Ṽ\":\"V\",\"Ṿ\":\"V\",\"Ʋ\":\"V\",\"Ꝟ\":\"V\",\"Ʌ\":\"V\",\"Ꝡ\":\"VY\",\"Ⓦ\":\"W\",\"Ｗ\":\"W\",\"Ẁ\":\"W\",\"Ẃ\":\"W\",\"Ŵ\":\"W\",\"Ẇ\":\"W\",\"Ẅ\":\"W\",\"Ẉ\":\"W\",\"Ⱳ\":\"W\",\"Ⓧ\":\"X\",\"Ｘ\":\"X\",\"Ẋ\":\"X\",\"Ẍ\":\"X\",\"Ⓨ\":\"Y\",\"Ｙ\":\"Y\",\"Ỳ\":\"Y\",\"Ý\":\"Y\",\"Ŷ\":\"Y\",\"Ỹ\":\"Y\",\"Ȳ\":\"Y\",\"Ẏ\":\"Y\",\"Ÿ\":\"Y\",\"Ỷ\":\"Y\",\"Ỵ\":\"Y\",\"Ƴ\":\"Y\",\"Ɏ\":\"Y\",\"Ỿ\":\"Y\",\"Ⓩ\":\"Z\",\"Ｚ\":\"Z\",\"Ź\":\"Z\",\"Ẑ\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"Ẓ\":\"Z\",\"Ẕ\":\"Z\",\"Ƶ\":\"Z\",\"Ȥ\":\"Z\",\"Ɀ\":\"Z\",\"Ⱬ\":\"Z\",\"Ꝣ\":\"Z\",\"ⓐ\":\"a\",\"ａ\":\"a\",\"ẚ\":\"a\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ầ\":\"a\",\"ấ\":\"a\",\"ẫ\":\"a\",\"ẩ\":\"a\",\"ã\":\"a\",\"ā\":\"a\",\"ă\":\"a\",\"ằ\":\"a\",\"ắ\":\"a\",\"ẵ\":\"a\",\"ẳ\":\"a\",\"ȧ\":\"a\",\"ǡ\":\"a\",\"ä\":\"a\",\"ǟ\":\"a\",\"ả\":\"a\",\"å\":\"a\",\"ǻ\":\"a\",\"ǎ\":\"a\",\"ȁ\":\"a\",\"ȃ\":\"a\",\"ạ\":\"a\",\"ậ\":\"a\",\"ặ\":\"a\",\"ḁ\":\"a\",\"ą\":\"a\",\"ⱥ\":\"a\",\"ɐ\":\"a\",\"ꜳ\":\"aa\",\"æ\":\"ae\",\"ǽ\":\"ae\",\"ǣ\":\"ae\",\"ꜵ\":\"ao\",\"ꜷ\":\"au\",\"ꜹ\":\"av\",\"ꜻ\":\"av\",\"ꜽ\":\"ay\",\"ⓑ\":\"b\",\"ｂ\":\"b\",\"ḃ\":\"b\",\"ḅ\":\"b\",\"ḇ\":\"b\",\"ƀ\":\"b\",\"ƃ\":\"b\",\"ɓ\":\"b\",\"ⓒ\":\"c\",\"ｃ\":\"c\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"ç\":\"c\",\"ḉ\":\"c\",\"ƈ\":\"c\",\"ȼ\":\"c\",\"ꜿ\":\"c\",\"ↄ\":\"c\",\"ⓓ\":\"d\",\"ｄ\":\"d\",\"ḋ\":\"d\",\"ď\":\"d\",\"ḍ\":\"d\",\"ḑ\":\"d\",\"ḓ\":\"d\",\"ḏ\":\"d\",\"đ\":\"d\",\"ƌ\":\"d\",\"ɖ\":\"d\",\"ɗ\":\"d\",\"ꝺ\":\"d\",\"ǳ\":\"dz\",\"ǆ\":\"dz\",\"ⓔ\":\"e\",\"ｅ\":\"e\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ề\":\"e\",\"ế\":\"e\",\"ễ\":\"e\",\"ể\":\"e\",\"ẽ\":\"e\",\"ē\":\"e\",\"ḕ\":\"e\",\"ḗ\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ë\":\"e\",\"ẻ\":\"e\",\"ě\":\"e\",\"ȅ\":\"e\",\"ȇ\":\"e\",\"ẹ\":\"e\",\"ệ\":\"e\",\"ȩ\":\"e\",\"ḝ\":\"e\",\"ę\":\"e\",\"ḙ\":\"e\",\"ḛ\":\"e\",\"ɇ\":\"e\",\"ɛ\":\"e\",\"ǝ\":\"e\",\"ⓕ\":\"f\",\"ｆ\":\"f\",\"ḟ\":\"f\",\"ƒ\":\"f\",\"ꝼ\":\"f\",\"ⓖ\":\"g\",\"ｇ\":\"g\",\"ǵ\":\"g\",\"ĝ\":\"g\",\"ḡ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ǧ\":\"g\",\"ģ\":\"g\",\"ǥ\":\"g\",\"ɠ\":\"g\",\"ꞡ\":\"g\",\"ᵹ\":\"g\",\"ꝿ\":\"g\",\"ⓗ\":\"h\",\"ｈ\":\"h\",\"ĥ\":\"h\",\"ḣ\":\"h\",\"ḧ\":\"h\",\"ȟ\":\"h\",\"ḥ\":\"h\",\"ḩ\":\"h\",\"ḫ\":\"h\",\"ẖ\":\"h\",\"ħ\":\"h\",\"ⱨ\":\"h\",\"ⱶ\":\"h\",\"ɥ\":\"h\",\"ƕ\":\"hv\",\"ⓘ\":\"i\",\"ｉ\":\"i\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"ï\":\"i\",\"ḯ\":\"i\",\"ỉ\":\"i\",\"ǐ\":\"i\",\"ȉ\":\"i\",\"ȋ\":\"i\",\"ị\":\"i\",\"į\":\"i\",\"ḭ\":\"i\",\"ɨ\":\"i\",\"ı\":\"i\",\"ⓙ\":\"j\",\"ｊ\":\"j\",\"ĵ\":\"j\",\"ǰ\":\"j\",\"ɉ\":\"j\",\"ⓚ\":\"k\",\"ｋ\":\"k\",\"ḱ\":\"k\",\"ǩ\":\"k\",\"ḳ\":\"k\",\"ķ\":\"k\",\"ḵ\":\"k\",\"ƙ\":\"k\",\"ⱪ\":\"k\",\"ꝁ\":\"k\",\"ꝃ\":\"k\",\"ꝅ\":\"k\",\"ꞣ\":\"k\",\"ⓛ\":\"l\",\"ｌ\":\"l\",\"ŀ\":\"l\",\"ĺ\":\"l\",\"ľ\":\"l\",\"ḷ\":\"l\",\"ḹ\":\"l\",\"ļ\":\"l\",\"ḽ\":\"l\",\"ḻ\":\"l\",\"ſ\":\"l\",\"ł\":\"l\",\"ƚ\":\"l\",\"ɫ\":\"l\",\"ⱡ\":\"l\",\"ꝉ\":\"l\",\"ꞁ\":\"l\",\"ꝇ\":\"l\",\"ǉ\":\"lj\",\"ⓜ\":\"m\",\"ｍ\":\"m\",\"ḿ\":\"m\",\"ṁ\":\"m\",\"ṃ\":\"m\",\"ɱ\":\"m\",\"ɯ\":\"m\",\"ⓝ\":\"n\",\"ｎ\":\"n\",\"ǹ\":\"n\",\"ń\":\"n\",\"ñ\":\"n\",\"ṅ\":\"n\",\"ň\":\"n\",\"ṇ\":\"n\",\"ņ\":\"n\",\"ṋ\":\"n\",\"ṉ\":\"n\",\"ƞ\":\"n\",\"ɲ\":\"n\",\"ŉ\":\"n\",\"ꞑ\":\"n\",\"ꞥ\":\"n\",\"ǌ\":\"nj\",\"ⓞ\":\"o\",\"ｏ\":\"o\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"ồ\":\"o\",\"ố\":\"o\",\"ỗ\":\"o\",\"ổ\":\"o\",\"õ\":\"o\",\"ṍ\":\"o\",\"ȭ\":\"o\",\"ṏ\":\"o\",\"ō\":\"o\",\"ṑ\":\"o\",\"ṓ\":\"o\",\"ŏ\":\"o\",\"ȯ\":\"o\",\"ȱ\":\"o\",\"ö\":\"o\",\"ȫ\":\"o\",\"ỏ\":\"o\",\"ő\":\"o\",\"ǒ\":\"o\",\"ȍ\":\"o\",\"ȏ\":\"o\",\"ơ\":\"o\",\"ờ\":\"o\",\"ớ\":\"o\",\"ỡ\":\"o\",\"ở\":\"o\",\"ợ\":\"o\",\"ọ\":\"o\",\"ộ\":\"o\",\"ǫ\":\"o\",\"ǭ\":\"o\",\"ø\":\"o\",\"ǿ\":\"o\",\"ɔ\":\"o\",\"ꝋ\":\"o\",\"ꝍ\":\"o\",\"ɵ\":\"o\",\"ƣ\":\"oi\",\"ȣ\":\"ou\",\"ꝏ\":\"oo\",\"ⓟ\":\"p\",\"ｐ\":\"p\",\"ṕ\":\"p\",\"ṗ\":\"p\",\"ƥ\":\"p\",\"ᵽ\":\"p\",\"ꝑ\":\"p\",\"ꝓ\":\"p\",\"ꝕ\":\"p\",\"ⓠ\":\"q\",\"ｑ\":\"q\",\"ɋ\":\"q\",\"ꝗ\":\"q\",\"ꝙ\":\"q\",\"ⓡ\":\"r\",\"ｒ\":\"r\",\"ŕ\":\"r\",\"ṙ\":\"r\",\"ř\":\"r\",\"ȑ\":\"r\",\"ȓ\":\"r\",\"ṛ\":\"r\",\"ṝ\":\"r\",\"ŗ\":\"r\",\"ṟ\":\"r\",\"ɍ\":\"r\",\"ɽ\":\"r\",\"ꝛ\":\"r\",\"ꞧ\":\"r\",\"ꞃ\":\"r\",\"ⓢ\":\"s\",\"ｓ\":\"s\",\"ß\":\"s\",\"ś\":\"s\",\"ṥ\":\"s\",\"ŝ\":\"s\",\"ṡ\":\"s\",\"š\":\"s\",\"ṧ\":\"s\",\"ṣ\":\"s\",\"ṩ\":\"s\",\"ș\":\"s\",\"ş\":\"s\",\"ȿ\":\"s\",\"ꞩ\":\"s\",\"ꞅ\":\"s\",\"ẛ\":\"s\",\"ⓣ\":\"t\",\"ｔ\":\"t\",\"ṫ\":\"t\",\"ẗ\":\"t\",\"ť\":\"t\",\"ṭ\":\"t\",\"ț\":\"t\",\"ţ\":\"t\",\"ṱ\":\"t\",\"ṯ\":\"t\",\"ŧ\":\"t\",\"ƭ\":\"t\",\"ʈ\":\"t\",\"ⱦ\":\"t\",\"ꞇ\":\"t\",\"ꜩ\":\"tz\",\"ⓤ\":\"u\",\"ｕ\":\"u\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ũ\":\"u\",\"ṹ\":\"u\",\"ū\":\"u\",\"ṻ\":\"u\",\"ŭ\":\"u\",\"ü\":\"u\",\"ǜ\":\"u\",\"ǘ\":\"u\",\"ǖ\":\"u\",\"ǚ\":\"u\",\"ủ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ǔ\":\"u\",\"ȕ\":\"u\",\"ȗ\":\"u\",\"ư\":\"u\",\"ừ\":\"u\",\"ứ\":\"u\",\"ữ\":\"u\",\"ử\":\"u\",\"ự\":\"u\",\"ụ\":\"u\",\"ṳ\":\"u\",\"ų\":\"u\",\"ṷ\":\"u\",\"ṵ\":\"u\",\"ʉ\":\"u\",\"ⓥ\":\"v\",\"ｖ\":\"v\",\"ṽ\":\"v\",\"ṿ\":\"v\",\"ʋ\":\"v\",\"ꝟ\":\"v\",\"ʌ\":\"v\",\"ꝡ\":\"vy\",\"ⓦ\":\"w\",\"ｗ\":\"w\",\"ẁ\":\"w\",\"ẃ\":\"w\",\"ŵ\":\"w\",\"ẇ\":\"w\",\"ẅ\":\"w\",\"ẘ\":\"w\",\"ẉ\":\"w\",\"ⱳ\":\"w\",\"ⓧ\":\"x\",\"ｘ\":\"x\",\"ẋ\":\"x\",\"ẍ\":\"x\",\"ⓨ\":\"y\",\"ｙ\":\"y\",\"ỳ\":\"y\",\"ý\":\"y\",\"ŷ\":\"y\",\"ỹ\":\"y\",\"ȳ\":\"y\",\"ẏ\":\"y\",\"ÿ\":\"y\",\"ỷ\":\"y\",\"ẙ\":\"y\",\"ỵ\":\"y\",\"ƴ\":\"y\",\"ɏ\":\"y\",\"ỿ\":\"y\",\"ⓩ\":\"z\",\"ｚ\":\"z\",\"ź\":\"z\",\"ẑ\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"ẓ\":\"z\",\"ẕ\":\"z\",\"ƶ\":\"z\",\"ȥ\":\"z\",\"ɀ\":\"z\",\"ⱬ\":\"z\",\"ꝣ\":\"z\",\"Ά\":\"Α\",\"Έ\":\"Ε\",\"Ή\":\"Η\",\"Ί\":\"Ι\",\"Ϊ\":\"Ι\",\"Ό\":\"Ο\",\"Ύ\":\"Υ\",\"Ϋ\":\"Υ\",\"Ώ\":\"Ω\",\"ά\":\"α\",\"έ\":\"ε\",\"ή\":\"η\",\"ί\":\"ι\",\"ϊ\":\"ι\",\"ΐ\":\"ι\",\"ό\":\"ο\",\"ύ\":\"υ\",\"ϋ\":\"υ\",\"ΰ\":\"υ\",\"ω\":\"ω\",\"ς\":\"σ\"}}),u.define(\"select2\u002Fdata\u002Fbase\",[\"..\u002Futils\"],function(i){function n(e,t){n.__super__.constructor.call(this)}return i.Extend(n,i.Observable),n.prototype.current=function(e){throw new Error(\"The `current` method must be defined in child classes.\")},n.prototype.query=function(e,t){throw new Error(\"The `query` method must be defined in child classes.\")},n.prototype.bind=function(e,t){},n.prototype.destroy=function(){},n.prototype.generateResultId=function(e,t){var n=\"\";return n+=null!=e?e.id:i.generateChars(4),n+=\"-result-\",n+=i.generateChars(4),null!=t.id?n+=\"-\"+t.id.toString():n+=\"-\"+i.generateChars(4),n},n}),u.define(\"select2\u002Fdata\u002Fselect\",[\".\u002Fbase\",\"..\u002Futils\",\"jquery\"],function(e,t,r){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,e),n.prototype.current=function(e){var t=[],n=this;this.$element.find(\":selected\").each(function(){var e=r(this),e=n.item(e);t.push(e)}),e(t)},n.prototype.select=function(o){var e,s=this;if(o.selected=!0,r(o.element).is(\"option\"))return o.element.selected=!0,void this.$element.trigger(\"change\");this.$element.prop(\"multiple\")?this.current(function(e){var t=[];(o=[o]).push.apply(o,e);for(var n=0;n\u003Co.length;n++){var i=o[n].id;-1===r.inArray(i,t)&&t.push(i)}s.$element.val(t),s.$element.trigger(\"change\")}):(e=o.id,this.$element.val(e),this.$element.trigger(\"change\"))},n.prototype.unselect=function(o){var s=this;if(this.$element.prop(\"multiple\")){if(o.selected=!1,r(o.element).is(\"option\"))return o.element.selected=!1,void this.$element.trigger(\"change\");this.current(function(e){for(var t=[],n=0;n\u003Ce.length;n++){var i=e[n].id;i!==o.id&&-1===r.inArray(i,t)&&t.push(i)}s.$element.val(t),s.$element.trigger(\"change\")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on(\"select\",function(e){n.select(e.data)}),e.on(\"unselect\",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find(\"*\").each(function(){r.removeData(this,\"data\")})},n.prototype.query=function(t,e){var n=[],i=this;this.$element.children().each(function(){var e=r(this);(e.is(\"option\")||e.is(\"optgroup\"))&&(e=i.item(e),null!==(e=i.matches(t,e))&&n.push(e))}),e({results:n})},n.prototype.addOptions=function(e){t.appendMany(this.$element,e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement(\"optgroup\")).label=e.text:(t=document.createElement(\"option\")).textContent!==undefined?t.textContent=e.text:t.innerText=e.text,e.id!==undefined&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var n=r(t),e=this._normalizeItem(e);return e.element=t,r.data(t,\"data\",e),n},n.prototype.item=function(e){var t={};if(null!=(t=r.data(e[0],\"data\")))return t;if(e.is(\"option\"))t={id:e.val(),text:e.text(),disabled:e.prop(\"disabled\"),selected:e.prop(\"selected\"),title:e.prop(\"title\")};else if(e.is(\"optgroup\")){for(var t={text:e.prop(\"label\"),children:[],title:e.prop(\"title\")},n=e.children(\"option\"),i=[],o=0;o\u003Cn.length;o++){var s=r(n[o]),s=this.item(s);i.push(s)}t.children=i}return(t=this._normalizeItem(t)).element=e[0],r.data(e[0],\"data\",t),t},n.prototype._normalizeItem=function(e){r.isPlainObject(e)||(e={id:e,text:e});return null!=(e=r.extend({},{text:\"\"},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&(e._resultId=this.generateResultId(this.container,e)),r.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get(\"matcher\")(e,t)},n}),u.define(\"select2\u002Fdata\u002Farray\",[\".\u002Fselect\",\"..\u002Futils\",\"jquery\"],function(e,c,u){function i(e,t){var n=t.get(\"data\")||[];i.__super__.constructor.call(this,e,t),this.addOptions(this.convertToOptions(n))}return c.Extend(i,e),i.prototype.select=function(n){var e;0===(e=this.$element.find(\"option\").filter(function(e,t){return t.value==n.id.toString()})).length&&(e=this.option(n),this.addOptions(e)),i.__super__.select.call(this,n)},i.prototype.convertToOptions=function(e){var t=this,n=this.$element.find(\"option\"),i=n.map(function(){return t.item(u(this)).id}).get(),o=[];for(var s=0;s\u003Ce.length;s++){var r,a,l=this._normalizeItem(e[s]);0\u003C=u.inArray(l.id,i)?(a=n.filter(function(e){return function(){return u(this).val()==e.id}}(l)),r=this.item(a),r=u.extend(!0,{},l,r),r=this.option(r),a.replaceWith(r)):(a=this.option(l),l.children&&(l=this.convertToOptions(l.children),c.appendMany(a,l)),o.push(a))}return o},i}),u.define(\"select2\u002Fdata\u002Fajax\",[\".\u002Farray\",\"..\u002Futils\",\"jquery\"],function(e,t,s){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get(\"ajax\")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){return s.extend({},{data:function(e){return s.extend({},e,{q:e.term})},transport:function(e,t,n){e=s.ajax(e);return e.then(t),e.fail(n),e}},e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(t,n){var i=this;null!=this._request&&(\"function\"==typeof this._request.abort&&this._request.abort(),this._request=null);var o=s.extend({type:\"GET\"},this.ajaxOptions);function e(){var e=o.transport(o,function(e){e=i.processResults(e,t);i.options.get(\"debug\")&&window.console&&console.error&&(e&&e.results&&Array.isArray(e.results)||console.error(\"Select2: The AJAX results did not return an array in the `results` key of the response.\")),n(e),i.container.focusOnActiveElement()},function(){e.status&&\"0\"===e.status||i.trigger(\"results:message\",{message:\"errorLoading\"})});i._request=e}\"function\"==typeof o.url&&(o.url=o.url.call(this.$element,t)),\"function\"==typeof o.data&&(o.data=o.data.call(this.$element,t)),this.ajaxOptions.delay&&null!=t.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),u.define(\"select2\u002Fdata\u002Ftags\",[\"jquery\"],function(t){function e(e,t,n){var i=n.get(\"tags\"),o=n.get(\"createTag\");o!==undefined&&(this.createTag=o);o=n.get(\"insertTag\");if(o!==undefined&&(this.insertTag=o),e.call(this,t,n),Array.isArray(i))for(var s=0;s\u003Ci.length;s++){var r=i[s],r=this._normalizeItem(r),r=this.option(r);this.$element.append(r)}}return e.prototype.query=function(e,l,c){var u=this;this._removeOldTags(),null!=l.term&&null==l.page?e.call(this,l,function d(e,t){for(var n=e.results,i=0;i\u003Cn.length;i++){var o=n[i],s=null!=o.children&&!d({results:o.children},!0);if((o.text||\"\").toUpperCase()===(l.term||\"\").toUpperCase()||s)return!t&&(e.data=n,void c(e))}if(t)return!0;var r,a=u.createTag(l);null!=a&&((r=u.option(a)).attr(\"data-select2-tag\",!0),u.addOptions([r]),u.insertTag(n,a)),e.results=n,c(e)}):e.call(this,l,c)},e.prototype.createTag=function(e,t){t=t.term||0==t.term?t.term.toString().trim():\"\";return\"\"===t?null:{id:t,text:t}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this._lastTag;this.$element.find(\"option[data-select2-tag]\").each(function(){this.selected||t(this).remove()})},e}),u.define(\"select2\u002Fdata\u002Ftokenizer\",[\"jquery\"],function(c){function e(e,t,n){var i=n.get(\"tokenizer\");i!==undefined&&(this.tokenizer=i),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(\".select2-search__field\")},e.prototype.query=function(e,t,n){var i=this;t.term=t.term||\"\";var o=this.tokenizer(t,this.options,function(e){var t=i._normalizeItem(e);i.$element.find(\"option\").filter(function(){return c(this).val()===t.id}).length||((e=i.option(t)).attr(\"data-select2-tag\",!0),i._removeOldTags(),i.addOptions([e])),i.trigger(\"select\",{data:t})});o.term!==t.term&&(this.$search.length&&(this.$search.val(o.term),this.$search.trigger(\"focus\")),t.term=o.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,i){for(var o=n.get(\"tokenSeparators\")||[],s=t.term,r=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};r\u003Cs.length;){var l=s[r];-1!==c.inArray(l,o)?(l=s.substr(0,r),null!=(l=a(c.extend({},t,{term:l})))?(i(l),s=s.substr(r+1)||\"\",r=0):r++):r++}return{term:s}},e}),u.define(\"select2\u002Fdata\u002FminimumInputLength\",[],function(){function e(e,t,n){this.minimumInputLength=n.get(\"minimumInputLength\"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||\"\",t.term.length\u003Cthis.minimumInputLength?this.trigger(\"results:message\",{message:\"inputTooShort\",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define(\"select2\u002Fdata\u002FmaximumInputLength\",[],function(){function e(e,t,n){this.maximumInputLength=n.get(\"maximumInputLength\"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||\"\",0\u003Cthis.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger(\"results:message\",{message:\"inputTooLong\",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define(\"select2\u002Fdata\u002FmaximumSelectionLength\",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get(\"maximumSelectionLength\"),e.call(this,t,n)}return e.prototype.query=function(t,n,i){var o=this;this.current(function(e){e=null!=e?e.length:0;0\u003Co.maximumSelectionLength&&e>=o.maximumSelectionLength?o.trigger(\"results:message\",{message:\"maximumSelected\",args:{maximum:o.maximumSelectionLength}}):t.call(o,n,i)})},e}),u.define(\"select2\u002Fdropdown\",[\"jquery\",\".\u002Futils\"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('\u003Cspan class=\"select2-dropdown\">\u003Cspan class=\"select2-results\">\u003C\u002Fspan>\u003C\u002Fspan>');return e.attr(\"dir\",this.options.get(\"dir\")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),u.define(\"select2\u002Fdropdown\u002Fsearch\",[\"jquery\",\"..\u002Futils\"],function(s,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),e=s('\u003Cspan class=\"select2-search select2-search--dropdown\">\u003Cinput class=\"select2-search__field\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\" spellcheck=\"false\" role=\"combobox\" aria-autocomplete=\"list\" aria-expanded=\"true\" \u002F>\u003C\u002Fspan>');return this.$searchContainer=e,this.$search=e.find(\"input\"),t.prepend(e),t},t.prototype.bind=function(e,t,n){var i=this,o=t.id+\"-results\";e.call(this,t,n),this.$search.on(\"keydown\",function(e){i.trigger(\"keypress\",e),i._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on(\"input\",function(e){s(this).off(\"keyup\")}),this.$search.on(\"keyup input\",function(e){i.handleSearch(e)}),t.on(\"open\",function(){i.$search.attr(\"tabindex\",0),i.$search.attr(\"aria-owns\",o),i.$search.trigger(\"focus\"),window.setTimeout(function(){i.$search.trigger(\"focus\")},0)}),t.on(\"close\",function(){i.$search.attr(\"tabindex\",-1),i.$search.removeAttr(\"aria-activedescendant\"),i.$search.removeAttr(\"aria-owns\"),i.$search.val(\"\")}),t.on(\"focus\",function(){t.isOpen()||i.$search.trigger(\"focus\")}),t.on(\"results:all\",function(e){null!=e.query.term&&\"\"!==e.query.term||(i.showSearch(e)?i.$searchContainer.removeClass(\"select2-search--hide\"):i.$searchContainer.addClass(\"select2-search--hide\"))}),t.on(\"results:focus\",function(e){i.$search.attr(\"aria-activedescendant\",e.data._resultId)})},t.prototype.handleSearch=function(e){var t;this._keyUpPrevented||(t=this.$search.val(),this.trigger(\"query\",{term:t})),this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),u.define(\"select2\u002Fdropdown\u002FhidePlaceholder\",[],function(){function e(e,t,n,i){this.placeholder=this.normalizePlaceholder(n.get(\"placeholder\")),e.call(this,t,n,i)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return t=\"string\"==typeof t?{id:\"\",text:t}:t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),i=t.length-1;0\u003C=i;i--){var o=t[i];this.placeholder.id===o.id&&n.splice(i,1)}return n},e}),u.define(\"select2\u002Fdropdown\u002FinfiniteScroll\",[\"jquery\"],function(o){function e(e,t,n,i){this.lastParams={},e.call(this,t,n,i),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&this.$results.append(this.$loadingMore)},e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on(\"query\",function(e){i.lastParams=e,i.loading=!0}),t.on(\"query:append\",function(e){i.lastParams=e,i.loading=!0}),this.$results.on(\"scroll\",function(){var e=o.contains(document.documentElement,i.$loadingMore[0]);!i.loading&&e&&(e=i.$results.offset().top+i.$results.outerHeight(!1),i.$loadingMore.offset().top+i.$loadingMore.outerHeight(!1)\u003C=e+50&&i.loadMore())})},e.prototype.loadMore=function(){this.loading=!0;var e=o.extend({},{page:1},this.lastParams);e.page++,this.trigger(\"query:append\",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=o('\u003Cli class=\"select2-results__option select2-results__option--load-more\"role=\"option\" aria-disabled=\"true\">\u003C\u002Fli>'),t=this.options.get(\"translations\").get(\"loadingMore\");return e.html(t(this.lastParams)),e},e}),u.define(\"select2\u002Fdropdown\u002FattachBody\",[\"jquery\",\"..\u002Futils\"],function(c,r){function e(e,t,n){this.$dropdownParent=n.get(\"dropdownParent\")||c(document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var i=this,o=!1;e.call(this,t,n),t.on(\"open\",function(){i._showDropdown(),i._attachPositioningHandler(t),o||(o=!0,t.on(\"results:all\",function(){i._positionDropdown(),i._resizeDropdown()}),t.on(\"results:append\",function(){i._positionDropdown(),i._resizeDropdown()}))}),t.on(\"close\",function(){i._hideDropdown(),i._detachPositioningHandler(t)}),this.$dropdownContainer.on(\"mousedown\",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr(\"class\",n.attr(\"class\")),t.removeClass(\"select2\"),t.addClass(\"select2-container--open\"),t.css({position:\"absolute\",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=c(\"\u003Cspan>\u003C\u002Fspan>\"),e=e.call(this);return t.append(e),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._attachPositioningHandler=function(e,t){var n=this,i=\"scroll.select2.\"+t.id,o=\"resize.select2.\"+t.id,s=\"orientationchange.select2.\"+t.id,t=this.$container.parents().filter(r.hasScroll);t.each(function(){c(this).data(\"select2-scroll-position\",{x:c(this).scrollLeft(),y:c(this).scrollTop()})}),t.on(i,function(e){var t=c(this).data(\"select2-scroll-position\");c(this).scrollTop(t.y)}),c(window).on(i+\" \"+o+\" \"+s,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n=\"scroll.select2.\"+t.id,i=\"resize.select2.\"+t.id,t=\"orientationchange.select2.\"+t.id;this.$container.parents().filter(r.hasScroll).off(n),c(window).off(n+\" \"+i+\" \"+t)},e.prototype._positionDropdown=function(){var e=c(window),t=this.$dropdown.hasClass(\"select2-dropdown--above\"),n=this.$dropdown.hasClass(\"select2-dropdown--below\"),i=null,o=this.$container.offset();o.bottom=o.top+this.$container.outerHeight(!1);var s={height:this.$container.outerHeight(!1)};s.top=o.top,s.bottom=o.top+s.height;var r=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),e=a\u003Co.top-r,a=l>o.bottom+r,l={left:o.left,top:s.bottom},o=this.$dropdownParent,o=(o=\"static\"===o.css(\"position\")?o.offsetParent():o).offset();l.left-=o.left,t||n||(i=\"below\"),a||!e||t?!e&&a&&t&&(i=\"below\"):i=\"above\",(\"above\"==i||t&&\"below\"!==i)&&(l.top=s.top-r),null!=i&&(this.$dropdown.removeClass(\"select2-dropdown--below select2-dropdown--above\").addClass(\"select2-dropdown--\"+i),this.$container.removeClass(\"select2-container--below select2-container--above\").addClass(\"select2-container--\"+i)),this.$dropdownContainer.css(l)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+\"px\"};this.options.get(\"dropdownAutoWidth\")&&(e.minWidth=e.width,e.position=\"relative\",e.width=\"auto\"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),u.define(\"select2\u002Fdropdown\u002FminimumResultsForSearch\",[],function(){function e(e,t,n,i){this.minimumResultsForSearch=n.get(\"minimumResultsForSearch\"),this.minimumResultsForSearch\u003C0&&(this.minimumResultsForSearch=Infinity),e.call(this,t,n,i)}return e.prototype.showSearch=function(e,t){return!(function o(e){for(var t=0,n=0;n\u003Ce.length;n++){var i=e[n];i.children?t+=o(i.children):t++}return t}(t.data.results)\u003Cthis.minimumResultsForSearch)&&e.call(this,t)},e}),u.define(\"select2\u002Fdropdown\u002FselectOnClose\",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on(\"close\",function(e){i._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if(\"select\"===n._type||\"unselect\"===n._type)return}var n=this.getHighlightedResults();n.length\u003C1||(null!=(n=n.data(\"data\")).element&&n.element.selected||null==n.element&&n.selected||this.trigger(\"select\",{data:n}))},e}),u.define(\"select2\u002Fdropdown\u002FcloseOnSelect\",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on(\"select\",function(e){i._selectTriggered(e)}),t.on(\"unselect\",function(e){i._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&n.ctrlKey||this.trigger(\"close\",{originalEvent:n,originalSelect2Event:t})},e}),u.define(\"select2\u002Fi18n\u002Fen\",[],function(){return{errorLoading:function(){return\"The results could not be loaded.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,e=\"Please delete \"+t+\" character\";return 1!=t&&(e+=\"s\"),e},inputTooShort:function(e){return\"Please enter \"+(e.minimum-e.input.length)+\" or more characters\"},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(e){var t=\"You can only select \"+e.maximum+\" item\";return 1!=e.maximum&&(t+=\"s\"),t},noResults:function(){return\"No results found\"},searching:function(){return\"Searching…\"}}}),u.define(\"select2\u002Fdefaults\",[\"jquery\",\"require\",\".\u002Fresults\",\".\u002Fselection\u002Fsingle\",\".\u002Fselection\u002Fmultiple\",\".\u002Fselection\u002Fplaceholder\",\".\u002Fselection\u002FallowClear\",\".\u002Fselection\u002Fsearch\",\".\u002Fselection\u002FeventRelay\",\".\u002Futils\",\".\u002Ftranslation\",\".\u002Fdiacritics\",\".\u002Fdata\u002Fselect\",\".\u002Fdata\u002Farray\",\".\u002Fdata\u002Fajax\",\".\u002Fdata\u002Ftags\",\".\u002Fdata\u002Ftokenizer\",\".\u002Fdata\u002FminimumInputLength\",\".\u002Fdata\u002FmaximumInputLength\",\".\u002Fdata\u002FmaximumSelectionLength\",\".\u002Fdropdown\",\".\u002Fdropdown\u002Fsearch\",\".\u002Fdropdown\u002FhidePlaceholder\",\".\u002Fdropdown\u002FinfiniteScroll\",\".\u002Fdropdown\u002FattachBody\",\".\u002Fdropdown\u002FminimumResultsForSearch\",\".\u002Fdropdown\u002FselectOnClose\",\".\u002Fdropdown\u002FcloseOnSelect\",\".\u002Fi18n\u002Fen\"],function(p,h,f,g,m,y,v,w,_,$,b,t,x,A,C,S,O,E,D,T,q,j,L,k,P,I,M,R,e){function n(){this.reset()}return n.prototype.apply=function(e){var t,n;if(null==(e=p.extend(!0,{},this.defaults,e)).dataAdapter&&(null!=e.ajax?e.dataAdapter=C:null!=e.data?e.dataAdapter=A:e.dataAdapter=x,0\u003Ce.minimumInputLength&&(e.dataAdapter=$.Decorate(e.dataAdapter,E)),0\u003Ce.maximumInputLength&&(e.dataAdapter=$.Decorate(e.dataAdapter,D)),0\u003Ce.maximumSelectionLength&&(e.dataAdapter=$.Decorate(e.dataAdapter,T)),e.tags&&(e.dataAdapter=$.Decorate(e.dataAdapter,S)),null==e.tokenSeparators&&null==e.tokenizer||(e.dataAdapter=$.Decorate(e.dataAdapter,O)),null!=e.query&&(t=h(e.amdBase+\"compat\u002Fquery\"),e.dataAdapter=$.Decorate(e.dataAdapter,t)),null!=e.initSelection&&(t=h(e.amdBase+\"compat\u002FinitSelection\"),e.dataAdapter=$.Decorate(e.dataAdapter,t))),null==e.resultsAdapter&&(e.resultsAdapter=f,null!=e.ajax&&(e.resultsAdapter=$.Decorate(e.resultsAdapter,k)),null!=e.placeholder&&(e.resultsAdapter=$.Decorate(e.resultsAdapter,L)),e.selectOnClose&&(e.resultsAdapter=$.Decorate(e.resultsAdapter,M))),null==e.dropdownAdapter&&(e.multiple?e.dropdownAdapter=q:(n=$.Decorate(q,j),e.dropdownAdapter=n),0!==e.minimumResultsForSearch&&(e.dropdownAdapter=$.Decorate(e.dropdownAdapter,I)),e.closeOnSelect&&(e.dropdownAdapter=$.Decorate(e.dropdownAdapter,R)),null==e.dropdownCssClass&&null==e.dropdownCss&&null==e.adaptDropdownCssClass||(n=h(e.amdBase+\"compat\u002FdropdownCss\"),e.dropdownAdapter=$.Decorate(e.dropdownAdapter,n)),e.dropdownAdapter=$.Decorate(e.dropdownAdapter,P)),null==e.selectionAdapter&&(e.multiple?e.selectionAdapter=m:e.selectionAdapter=g,null!=e.placeholder&&(e.selectionAdapter=$.Decorate(e.selectionAdapter,y)),e.allowClear&&(e.selectionAdapter=$.Decorate(e.selectionAdapter,v)),e.multiple&&(e.selectionAdapter=$.Decorate(e.selectionAdapter,w)),null==e.containerCssClass&&null==e.containerCss&&null==e.adaptContainerCssClass||(l=h(e.amdBase+\"compat\u002FcontainerCss\"),e.selectionAdapter=$.Decorate(e.selectionAdapter,l)),e.selectionAdapter=$.Decorate(e.selectionAdapter,_)),\"string\"==typeof e.language&&(0\u003Ce.language.indexOf(\"-\")?(c=e.language.split(\"-\")[0],e.language=[e.language,c]):e.language=[e.language]),Array.isArray(e.language)){var i=new b;e.language.push(\"en\");for(var o=e.language,s=0;s\u003Co.length;s++){var r=o[s],a={};try{a=b.loadPath(r)}catch(u){try{r=this.defaults.amdLanguageBase+r,a=b.loadPath(r)}catch(d){e.debug&&window.console&&console.warn&&console.warn('Select2: The language file for \"'+r+'\" could not be automatically loaded. A fallback will be used instead.');continue}}i.extend(a)}e.translations=i}else{var l=b.loadPath(this.defaults.amdLanguageBase+\"en\"),c=new b(e.language);c.extend(l),e.translations=c}return e},n.prototype.reset=function(){function r(e){return e.replace(\u002F[^\\u0000-\\u007E]\u002Fg,function(e){return t[e]||e})}this.defaults={amdBase:\".\u002F\",amdLanguageBase:\".\u002Fi18n\u002F\",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:$.escapeMarkup,language:e,matcher:function a(e,t){if(null==e.term||\"\"===e.term.toString().trim())return t;if(t.children&&0\u003Ct.children.length){for(var n=p.extend(!0,{},t),i=t.children.length-1;0\u003C=i;i--)null==a(e,t.children[i])&&n.children.splice(i,1);return 0\u003Cn.children.length?n:a(e,n)}var o=r(t.text).toUpperCase(),s=r(e.term).toUpperCase();return-1\u003Co.indexOf(s)?t:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:\"default\",width:\"resolve\"}},n.prototype.set=function(e,t){var n={};n[p.camelCase(e)]=t;n=$._convertData(n);p.extend(this.defaults,n)},new n}),u.define(\"select2\u002Foptions\",[\"require\",\"jquery\",\".\u002Fdefaults\",\".\u002Futils\"],function(n,s,i,r){function e(e,t){this.options=e,null!=t&&this.fromElement(t),this.options=i.apply(this.options),t&&t.is(\"input\")&&(t=n(this.get(\"amdBase\")+\"compat\u002FinputData\"),this.options.dataAdapter=r.Decorate(this.options.dataAdapter,t))}return e.prototype.fromElement=function(e){var t=[\"select2\"];null==this.options.multiple&&(this.options.multiple=e.prop(\"multiple\")),null==this.options.disabled&&(this.options.disabled=e.prop(\"disabled\")),null==this.options.language&&(e.prop(\"lang\")?this.options.language=e.prop(\"lang\").toLowerCase():e.closest(\"[lang]\").prop(\"lang\")&&(this.options.language=e.closest(\"[lang]\").prop(\"lang\"))),null==this.options.dir&&(e.prop(\"dir\")?this.options.dir=e.prop(\"dir\"):e.closest(\"[dir]\").prop(\"dir\")?this.options.dir=e.closest(\"[dir]\").prop(\"dir\"):this.options.dir=\"ltr\"),e.prop(\"disabled\",this.options.disabled),e.prop(\"multiple\",this.options.multiple),e.data(\"select2Tags\")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags=\"true\"` attributes and will be removed in future versions of Select2.'),e.data(\"data\",e.data(\"select2Tags\")),e.data(\"tags\",!0)),e.data(\"ajaxUrl\")&&(this.options.debug&&window.console&&console.warn&&console.warn(\"Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2.\"),e.attr(\"ajax--url\",e.data(\"ajaxUrl\")),e.data(\"ajax--url\",e.data(\"ajaxUrl\")));var n,i={},i=s.fn.jquery&&\"1.\"==s.fn.jquery.substr(0,2)&&e[0].dataset?s.extend(!0,{},e[0].dataset,e.data()):e.data(),o=s.extend(!0,{},i);for(n in o=r._convertData(o))-1\u003Cs.inArray(n,t)||(s.isPlainObject(this.options[n])?s.extend(this.options[n],o[n]):this.options[n]=o[n]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),u.define(\"select2\u002Fcore\",[\"jquery\",\".\u002Foptions\",\".\u002Futils\",\".\u002Fkeys\"],function(o,s,n,r){var a=function(e,t){null!=e.data(\"select2\")&&e.data(\"select2\").destroy(),this.$element=e,this.id=this._generateId(e),this.options=new s(t=t||{},e),a.__super__.constructor.call(this);var n=e.attr(\"tabindex\")||0;e.data(\"old-tabindex\",n),e.attr(\"tabindex\",\"-1\");t=this.options.get(\"dataAdapter\");this.dataAdapter=new t(e,this.options);n=this.render();this._placeContainer(n);t=this.options.get(\"selectionAdapter\");this.selection=new t(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,n);t=this.options.get(\"dropdownAdapter\");this.dropdown=new t(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,n);n=this.options.get(\"resultsAdapter\");this.results=new n(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var i=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){i.trigger(\"selection:update\",{data:e})}),e.addClass(\"select2-hidden-accessible\"),e.attr(\"aria-hidden\",\"true\"),this._syncAttributes(),e.data(\"select2\",this)};return n.Extend(a,n.Observable),a.prototype._generateId=function(e){return\"select2-\"+(null!=e.attr(\"id\")?e.attr(\"id\"):null!=e.attr(\"name\")?e.attr(\"name\")+\"-\"+n.generateChars(2):n.generateChars(4)).replace(\u002F(:|\\.|\\[|\\]|,)\u002Fg,\"\")},a.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get(\"width\"));null!=t&&e.css(\"width\",t)},a.prototype._resolveWidth=function(e,t){var n=\u002F^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))\u002Fi;if(\"resolve\"==t){var i=this._resolveWidth(e,\"style\");return null!=i?i:this._resolveWidth(e,\"element\")}if(\"element\"==t){i=e.outerWidth(!1);return i\u003C=0?\"auto\":i+\"px\"}if(\"style\"!=t)return t;e=e.attr(\"style\");if(\"string\"!=typeof e)return null;for(var o=e.split(\";\"),s=0,r=o.length;s\u003Cr;s+=1){var a=o[s].replace(\u002F\\s\u002Fg,\"\").match(n);if(null!==a&&1\u003C=a.length)return a[1]}return null},a.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},a.prototype._registerDomEvents=function(){var t=this;this.$element.on(\"change.select2\",function(){t.dataAdapter.current(function(e){t.trigger(\"selection:update\",{data:e})})}),this.$element.on(\"focus.select2\",function(e){t.trigger(\"focus\",e)}),this._syncA=n.bind(this._syncAttributes,this),this._syncS=n.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent(\"onpropertychange\",this._syncA);var e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=e?(this._observer=new e(function(e){o.each(e,t._syncA),o.each(e,t._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener(\"DOMAttrModified\",t._syncA,!1),this.$element[0].addEventListener(\"DOMNodeInserted\",t._syncS,!1),this.$element[0].addEventListener(\"DOMNodeRemoved\",t._syncS,!1))},a.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on(\"*\",function(e,t){n.trigger(e,t)})},a.prototype._registerSelectionEvents=function(){var n=this,i=[\"toggle\",\"focus\"];this.selection.on(\"toggle\",function(){n.toggleDropdown()}),this.selection.on(\"focus\",function(e){n.focus(e)}),this.selection.on(\"*\",function(e,t){-1===o.inArray(e,i)&&n.trigger(e,t)})},a.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on(\"*\",function(e,t){n.trigger(e,t)})},a.prototype._registerResultsEvents=function(){var n=this;this.results.on(\"*\",function(e,t){n.trigger(e,t)})},a.prototype._registerEvents=function(){var i=this;this.on(\"open\",function(){i.$container.addClass(\"select2-container--open\")}),this.on(\"close\",function(){i.$container.removeClass(\"select2-container--open\")}),this.on(\"enable\",function(){i.$container.removeClass(\"select2-container--disabled\")}),this.on(\"disable\",function(){i.$container.addClass(\"select2-container--disabled\")}),this.on(\"blur\",function(){i.$container.removeClass(\"select2-container--focus\")}),this.on(\"query\",function(t){i.isOpen()||i.trigger(\"open\",{}),this.dataAdapter.query(t,function(e){i.trigger(\"results:all\",{data:e,query:t})})}),this.on(\"query:append\",function(t){this.dataAdapter.query(t,function(e){i.trigger(\"results:append\",{data:e,query:t})})}),this.on(\"open\",function(){setTimeout(function(){i.focusOnActiveElement()},1)}),o(document).on(\"keydown\",function(e){var t,n=e.which;i.isOpen()?(n===r.ESC||n===r.UP&&e.altKey?(i.close(),e.preventDefault()):n===r.ENTER||n===r.TAB?(i.trigger(\"results:select\",{}),e.preventDefault()):n===r.SPACE&&e.ctrlKey?(i.trigger(\"results:toggle\",{}),e.preventDefault()):n===r.UP?(i.trigger(\"results:previous\",{}),e.preventDefault()):n===r.DOWN&&(i.trigger(\"results:next\",{}),e.preventDefault()),(t=i.$dropdown.find(\".select2-search__field\")).length||(t=i.$container.find(\".select2-search__field\")),n===r.DOWN||n===r.UP?i.focusOnActiveElement():(t.trigger(\"focus\"),setTimeout(function(){i.focusOnActiveElement()},1e3))):i.hasFocus()&&(n!==r.ENTER&&n!==r.SPACE&&n!==r.DOWN||(i.open(),e.preventDefault()))})},a.prototype.focusOnActiveElement=function(){this.isOpen()&&!n.isTouchscreen()&&this.$results.find(\"li.select2-results__option--highlighted\").trigger(\"focus\")},a.prototype._syncAttributes=function(){this.options.set(\"disabled\",this.$element.prop(\"disabled\")),this.options.get(\"disabled\")?(this.isOpen()&&this.close(),this.trigger(\"disable\",{})):this.trigger(\"enable\",{})},a.prototype._syncSubtree=function(e,t){var n=!1,i=this;if(!e||!e.target||\"OPTION\"===e.target.nodeName||\"OPTGROUP\"===e.target.nodeName){if(t)if(t.addedNodes&&0\u003Ct.addedNodes.length)for(var o=0;o\u003Ct.addedNodes.length;o++)t.addedNodes[o].selected&&(n=!0);else t.removedNodes&&0\u003Ct.removedNodes.length&&(n=!0);else n=!0;n&&this.dataAdapter.current(function(e){i.trigger(\"selection:update\",{data:e})})}},a.prototype.trigger=function(e,t){var n=a.__super__.trigger,i={open:\"opening\",close:\"closing\",select:\"selecting\",unselect:\"unselecting\"};if(t===undefined&&(t={}),e in i){var o={prevented:!1,name:e,args:t};if(n.call(this,i[e],o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},a.prototype.toggleDropdown=function(){this.options.get(\"disabled\")||(this.isOpen()?this.close():this.open())},a.prototype.open=function(){this.isOpen()||this.trigger(\"query\",{})},a.prototype.close=function(){this.isOpen()&&this.trigger(\"close\",{})},a.prototype.isOpen=function(){return this.$container.hasClass(\"select2-container--open\")},a.prototype.hasFocus=function(){return this.$container.hasClass(\"select2-container--focus\")},a.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass(\"select2-container--focus\"),this.trigger(\"focus\",{}))},a.prototype.enable=function(e){this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"enable\")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop(\"disabled\") instead.');e=!(e=null==e||0===e.length?[!0]:e)[0];this.$element.prop(\"disabled\",e)},a.prototype.data=function(){this.options.get(\"debug\")&&0\u003Carguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2(\"data\")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},a.prototype.val=function(e){if(this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"val\")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();e=e[0];Array.isArray(e)&&(e=o.map(e,function(e){return e.toString()})),this.$element.val(e).trigger(\"change\")},a.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent(\"onpropertychange\",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener(\"DOMAttrModified\",this._syncA,!1),this.$element[0].removeEventListener(\"DOMNodeInserted\",this._syncS,!1),this.$element[0].removeEventListener(\"DOMNodeRemoved\",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(\".select2\"),this.$element.attr(\"tabindex\",this.$element.data(\"old-tabindex\")),this.$element.removeClass(\"select2-hidden-accessible\"),this.$element.attr(\"aria-hidden\",\"false\"),this.$element.removeData(\"select2\"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},a.prototype.render=function(){var e=o('\u003Cspan class=\"select2 select2-container\">\u003Cspan class=\"selection\">\u003C\u002Fspan>\u003Cspan class=\"dropdown-wrapper\" aria-hidden=\"true\">\u003C\u002Fspan>\u003C\u002Fspan>');return e.attr(\"dir\",this.options.get(\"dir\")),this.$container=e,this.$container.addClass(\"select2-container--\"+this.options.get(\"theme\")),e.data(\"element\",this.$element),e},a}),u.define(\"select2\u002Fcompat\u002Futils\",[\"jquery\"],function(r){return{syncCssClasses:function(e,t,n){var i,o=[],s=e.attr(\"class\")||0==e.attr(\"class\")?e.attr(\"class\").toString().trim():\"\";s&&r((s=\"\"+s).split(\u002F\\s+\u002F)).each(function(){0===this.indexOf(\"select2-\")&&o.push(this)}),(s=t.attr(\"class\")||0==t.attr(\"class\")?t.attr(\"class\").toString().trim():\"\")&&r((s=\"\"+s).split(\u002F\\s+\u002F)).each(function(){0!==this.indexOf(\"select2-\")&&null!=(i=n(this))&&o.push(i)}),e.attr(\"class\",o.join(\" \"))}}}),u.define(\"select2\u002Fcompat\u002FcontainerCss\",[\"jquery\",\".\u002Futils\"],function(e,s){function r(e){return null}function t(){}return t.prototype.render=function(e){var t=e.call(this),n=this.options.get(\"containerCssClass\")||\"\";\"function\"==typeof n&&(n=n(this.$element));var i,o=this.options.get(\"adaptContainerCssClass\");o=o||r,-1!==n.indexOf(\":all:\")&&(n=n.replace(\":all:\",\"\"),i=o,o=function(e){var t=i(e);return null!=t?t+\" \"+e:e});e=this.options.get(\"containerCss\")||{};return\"function\"==typeof e&&(e=e(this.$element)),s.syncCssClasses(t,this.$element,o),t.css(e),t.addClass(n),t},t}),u.define(\"select2\u002Fcompat\u002FdropdownCss\",[\"jquery\",\".\u002Futils\"],function(e,s){function r(e){return null}function t(){}return t.prototype.render=function(e){var t=e.call(this),n=this.options.get(\"dropdownCssClass\")||\"\";\"function\"==typeof n&&(n=n(this.$element));var i,o=this.options.get(\"adaptDropdownCssClass\");o=o||r,-1!==n.indexOf(\":all:\")&&(n=n.replace(\":all:\",\"\"),i=o,o=function(e){var t=i(e);return null!=t?t+\" \"+e:e});e=this.options.get(\"dropdownCss\")||{};return\"function\"==typeof e&&(e=e(this.$element)),s.syncCssClasses(t,this.$element,o),t.css(e),t.addClass(n),t},t}),u.define(\"select2\u002Fcompat\u002FinitSelection\",[\"jquery\"],function(e){function t(e,t,n){n.get(\"debug\")&&window.console&&console.warn&&console.warn(\"Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2\"),this.initSelection=n.get(\"initSelection\"),this._isInitialized=!1,e.call(this,t,n)}return t.prototype.current=function(e,t){var n=this;this._isInitialized?e.call(this,t):this.initSelection.call(null,this.$element,function(e){n._isInitialized=!0,Array.isArray(e)||(e=[e]),t(e)})},t}),u.define(\"select2\u002Fcompat\u002FinputData\",[\"jquery\"],function(r){function e(e,t,n){this._currentData=[],this._valueSeparator=n.get(\"valueSeparator\")||\",\",\"hidden\"===t.prop(\"type\")&&n.get(\"debug\")&&console&&console.warn&&console.warn(\"Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `\u003Cselect>` element instead.\"),e.call(this,t,n)}return e.prototype.current=function(e,t){for(var n=[],i=0;i\u003Cthis._currentData.length;i++){var o=this._currentData[i];n.push.apply(n,function s(e,t){var n=[];return e.selected||-1!==r.inArray(e.id,t)?(e.selected=!0,n.push(e)):e.selected=!1,e.children&&n.push.apply(n,s(e.children,t)),n}(o,this.$element.val().split(this._valueSeparator)))}t(n)},e.prototype.select=function(e,t){var n;this.options.get(\"multiple\")?(n=this.$element.val(),n+=this._valueSeparator+t.id,this.$element.val(n)):(this.current(function(e){r.map(e,function(e){e.selected=!1})}),this.$element.val(t.id)),this.$element.trigger(\"change\")},e.prototype.unselect=function(e,o){var s=this;o.selected=!1,this.current(function(e){for(var t=[],n=0;n\u003Ce.length;n++){var i=e[n];o.id!=i.id&&t.push(i.id)}s.$element.val(t.join(s._valueSeparator)),s.$element.trigger(\"change\")})},e.prototype.query=function(e,t,n){for(var i=[],o=0;o\u003Cthis._currentData.length;o++){var s=this._currentData[o],s=this.matches(t,s);null!==s&&i.push(s)}n({results:i})},e.prototype.addOptions=function(e,t){t=r.map(t,function(e){return r.data(e[0],\"data\")});this._currentData.push.apply(this._currentData,t)},e}),u.define(\"select2\u002Fcompat\u002Fmatcher\",[\"jquery\"],function(r){return function(s){return function(e,t){var n=r.extend(!0,{},t);if(null==e.term||\"\"===e.term.trim())return n;if(t.children){for(var i=t.children.length-1;0\u003C=i;i--){var o=t.children[i];s(e.term,o.text,o)||n.children.splice(i,1)}if(0\u003Cn.children.length)return n}return s(e.term,t.text,t)?n:null}}}),u.define(\"select2\u002Fcompat\u002Fquery\",[],function(){function e(e,t,n){n.get(\"debug\")&&window.console&&console.warn&&console.warn(\"Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2.\"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.callback=n,this.options.get(\"query\").call(null,t)},e}),u.define(\"select2\u002Fdropdown\u002FattachContainer\",[],function(){function e(e,t,n){e.call(this,t,n)}return e.prototype.position=function(e,t,n){n.find(\".dropdown-wrapper\").append(t),t.addClass(\"select2-dropdown--below\"),n.addClass(\"select2-container--below\")},e}),u.define(\"select2\u002Fdropdown\u002FstopPropagation\",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$dropdown.on([\"blur\",\"change\",\"click\",\"dblclick\",\"focus\",\"focusin\",\"focusout\",\"input\",\"keydown\",\"keyup\",\"keypress\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseover\",\"mouseup\",\"search\",\"touchend\",\"touchstart\"].join(\" \"),function(e){e.stopPropagation()})},e}),u.define(\"select2\u002Fselection\u002FstopPropagation\",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$selection.on([\"blur\",\"change\",\"click\",\"dblclick\",\"focus\",\"focusin\",\"focusout\",\"input\",\"keydown\",\"keyup\",\"keypress\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseover\",\"mouseup\",\"search\",\"touchend\",\"touchstart\"].join(\" \"),function(e){e.stopPropagation()})},e}),\n-\u002F*!\n- * jQuery Mousewheel 3.1.13\n- *\n- * Copyright jQuery Foundation and other contributors\n- * Released under the MIT license\n- * http:\u002F\u002Fjquery.org\u002Flicense\n- *\u002F\n+\u002F*!\r\n+ * SelectWoo 1.0.10\r\n+ * https:\u002F\u002Fgithub.com\u002Fwoocommerce\u002FselectWoo\r\n+ *\r\n+ * Released under the MIT license\r\n+ * https:\u002F\u002Fgithub.com\u002Fwoocommerce\u002FselectWoo\u002Fblob\u002Fmaster\u002FLICENSE.md\r\n+ *\u002F\r\n+!function(n){\"function\"==typeof define&&define.amd?define([\"jquery\"],n):\"object\"==typeof module&&module.exports?module.exports=function(e,t){return t===undefined&&(t=\"undefined\"!=typeof window?require(\"jquery\"):require(\"jquery\")(e)),n(t),t}:n(jQuery)}(function(t){var e,n,p,s,r,h,f,g,m,y,v,i,o,w,a=((u=t&&t.fn&&t.fn.select2&&t.fn.select2.amd?t.fn.select2.amd:u)&&u.requirejs||(u?n=u:u={},g={},m={},y={},v={},i=Object.prototype.hasOwnProperty,o=[].slice,w=\u002F\\.js$\u002F,h=function(e,t){var n,i,o=c(e),s=o[0],t=t[1];return e=o[1],s&&(n=x(s=l(s,t))),s?e=n&&n.normalize?n.normalize(e,(i=t,function(e){return l(e,i)})):l(e,t):(s=(o=c(e=l(e,t)))[0],e=o[1],s&&(n=x(s))),{f:s?s+\"!\"+e:e,n:e,pr:s,p:n}},f={require:function(e){return b(e)},exports:function(e){var t=g[e];return void 0!==t?t:g[e]={}},module:function(e){return{id:e,uri:\"\",exports:g[e],config:(t=e,function(){return y&&y.config&&y.config[t]||{}})};var t}},s=function(e,t,n,i){var o,s,r,a,l,c=[],u=typeof n,d=A(i=i||e);if(\"undefined\"==u||\"function\"==u){for(t=!t.length&&n.length?[\"require\",\"exports\",\"module\"]:t,a=0;a\u003Ct.length;a+=1)if(\"require\"===(s=(r=h(t[a],d)).f))c[a]=f.require(e);else if(\"exports\"===s)c[a]=f.exports(e),l=!0;else if(\"module\"===s)o=c[a]=f.module(e);else if(_(g,s)||_(m,s)||_(v,s))c[a]=x(s);else{if(!r.p)throw new Error(e+\" missing \"+s);r.p.load(r.n,b(i,!0),function(t){return function(e){g[t]=e}}(s),{}),c[a]=g[s]}u=n?n.apply(g[e],c):undefined,e&&(o&&o.exports!==p&&o.exports!==g[e]?g[e]=o.exports:u===p&&l||(g[e]=u))}else e&&(g[e]=n)},e=n=r=function(e,t,n,i,o){if(\"string\"==typeof e)return f[e]?f[e](t):x(h(e,A(t)).f);if(!e.splice){if((y=e).deps&&r(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=p}return t=t||function(){},\"function\"==typeof n&&(n=i,i=o),i?s(p,e,t,n):setTimeout(function(){s(p,e,t,n)},4),r},r.config=function(e){return r(e)},e._defined=g,(a=function(e,t,n){if(\"string\"!=typeof e)throw new Error(\"See almond README: incorrect module build, no module name\");t.splice||(n=t,t=[]),_(g,e)||_(m,e)||(m[e]=[e,t,n])}).amd={jQuery:!0},u.requirejs=e,u.require=n,u.define=a),u.define(\"almond\",function(){}),u.define(\"jquery\",[],function(){var e=t||$;return null==e&&console&&console.error&&console.error(\"Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page.\"),e}),u.define(\"select2\u002Futils\",[\"jquery\"],function(s){var e={};function c(e){var t,n=e.prototype,i=[];for(t in n)\"function\"==typeof n[t]&&\"constructor\"!==t&&i.push(t);return i}e.Extend=function(e,t){var n,i={}.hasOwnProperty;function o(){this.constructor=e}for(n in t)i.call(t,n)&&(e[n]=t[n]);return o.prototype=t.prototype,e.prototype=new o,e.__super__=t.prototype,e},e.Decorate=function(i,o){var e=c(o),t=c(i);function s(){var e=Array.prototype.unshift,t=o.prototype.constructor.length,n=i.prototype.constructor;0\u003Ct&&(e.call(arguments,i.prototype.constructor),n=o.prototype.constructor),n.apply(this,arguments)}o.displayName=i.displayName,s.prototype=new function(){this.constructor=s};for(var n=0;n\u003Ct.length;n++){var r=t[n];s.prototype[r]=i.prototype[r]}for(var a=0;a\u003Ce.length;a++){var l=e[a];s.prototype[l]=function(e){var t=function(){};e in s.prototype&&(t=s.prototype[e]);var n=o.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}(l)}return s};var t=function(){this.listeners={}};return t.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},t.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},0===(n=null==n?[]:n).length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),\"*\"in this.listeners&&this.invoke(this.listeners[\"*\"],arguments)},t.prototype.invoke=function(e,t){for(var n=0,i=e.length;n\u003Ci;n++)e[n].apply(this,t)},e.Observable=t,e.generateChars=function(e){for(var t=\"\",n=0;n\u003Ce;n++)t+=Math.floor(36*Math.random()).toString(36);return t},e.bind=function(e,t){return function(){e.apply(t,arguments)}},e._convertData=function(e){for(var t in e){var n=t.split(\"-\"),i=e;if(1!==n.length){for(var o=0;o\u003Cn.length;o++){var s=n[o];(s=s.substring(0,1).toLowerCase()+s.substring(1))in i||(i[s]={}),o==n.length-1&&(i[s]=e[t]),i=i[s]}delete e[t]}}return e},e.hasScroll=function(e,t){var n=s(t),i=t.style.overflowX,o=t.style.overflowY;return(i!==o||\"hidden\"!==o&&\"visible\"!==o)&&(\"scroll\"===i||\"scroll\"===o||(n.innerHeight()\u003Ct.scrollHeight||n.innerWidth()\u003Ct.scrollWidth))},e.escapeMarkup=function(e){var t={\"\\\\\":\"&#92;\",\"&\":\"&amp;\",\"\u003C\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\",\"\u002F\":\"&#47;\"};return\"string\"!=typeof e?e:String(e).replace(\u002F[&\u003C>\"'\\\u002F\\\\]\u002Fg,function(e){return t[e]})},e.entityDecode=function(e){var t=document.createElement(\"textarea\");return t.innerHTML=e,t.value},e.appendMany=function(e,t){var n;\"1.7\"===s.fn.jquery.substr(0,3)&&(n=s(),s.map(t,function(e){n=n.add(e)}),t=n),e.append(t)},e.isTouchscreen=function(){return\"undefined\"==typeof e._isTouchscreenCache&&(e._isTouchscreenCache=\"ontouchstart\"in document.documentElement),e._isTouchscreenCache},e}),u.define(\"select2\u002Fresults\",[\"jquery\",\".\u002Futils\"],function(d,e){function i(e,t,n){this.$element=e,this.data=n,this.options=t,i.__super__.constructor.call(this)}return e.Extend(i,e.Observable),i.prototype.render=function(){var e=d('\u003Cul class=\"select2-results__options\" role=\"listbox\" tabindex=\"-1\">\u003C\u002Ful>');return this.options.get(\"multiple\")&&e.attr(\"aria-multiselectable\",\"true\"),this.$results=e},i.prototype.clear=function(){this.$results.empty()},i.prototype.displayMessage=function(e){var t=this.options.get(\"escapeMarkup\");this.clear(),this.hideLoading();var n=d('\u003Cli role=\"alert\" aria-live=\"assertive\" class=\"select2-results__option\">\u003C\u002Fli>'),i=this.options.get(\"translations\").get(e.message);n.append(t(i(e.args))),n[0].className+=\" select2-results__message\",this.$results.append(n)},i.prototype.hideMessages=function(){this.$results.find(\".select2-results__message\").remove()},i.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n\u003Ce.results.length;n++){var i=e.results[n],i=this.option(i);t.push(i)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger(\"results:message\",{message:\"noResults\"})},i.prototype.position=function(e,t){t.find(\".select2-results\").append(e)},i.prototype.sort=function(e){return this.options.get(\"sorter\")(e)},i.prototype.highlightFirstItem=function(){var e=this.$results.find(\".select2-results__option[data-selected]\"),t=e.filter(\"[data-selected=true]\");(0\u003Ct.length?t:e).first().trigger(\"mouseenter\"),this.ensureHighlightVisible()},i.prototype.setClasses=function(){var t=this;this.data.current(function(e){var i=d.map(e,function(e){return e.id.toString()});t.$results.find(\".select2-results__option[data-selected]\").each(function(){var e=d(this),t=d.data(this,\"data\"),n=\"\"+t.id;null!=t.element&&t.element.selected||null==t.element&&-1\u003Cd.inArray(n,i)?e.attr(\"data-selected\",\"true\"):e.attr(\"data-selected\",\"false\")})})},i.prototype.showLoading=function(e){this.hideLoading();e={disabled:!0,loading:!0,text:this.options.get(\"translations\").get(\"searching\")(e)},e=this.option(e);e.className+=\" loading-results\",this.$results.prepend(e)},i.prototype.hideLoading=function(){this.$results.find(\".loading-results\").remove()},i.prototype.option=function(e){var t=document.createElement(\"li\");t.className=\"select2-results__option\";var n,i={role:\"option\",\"data-selected\":\"false\",tabindex:-1};for(n in e.disabled&&(delete i[\"data-selected\"],i[\"aria-disabled\"]=\"true\"),null==e.id&&delete i[\"data-selected\"],null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(i[\"aria-label\"]=e.text,delete i[\"data-selected\"]),i){var o=i[n];t.setAttribute(n,o)}if(e.children){var s=d(t),r=document.createElement(\"strong\");r.className=\"select2-results__group\";var a=d(r);this.template(e,r),a.attr(\"role\",\"presentation\");for(var l=[],c=0;c\u003Ce.children.length;c++){var u=e.children[c],u=this.option(u);l.push(u)}a=d(\"\u003Cul>\u003C\u002Ful>\",{\"class\":\"select2-results__options select2-results__options--nested\",role:\"listbox\"});a.append(l),s.attr(\"role\",\"list\"),s.append(r),s.append(a)}else this.template(e,t);return d.data(t,\"data\",e),t},i.prototype.bind=function(t,e){var o=this,n=t.id+\"-results\";this.$results.attr(\"id\",n),t.on(\"results:all\",function(e){o.clear(),o.append(e.data),t.isOpen()&&(o.setClasses(),o.highlightFirstItem())}),t.on(\"results:append\",function(e){o.append(e.data),t.isOpen()&&o.setClasses()}),t.on(\"query\",function(e){o.hideMessages(),o.showLoading(e)}),t.on(\"select\",function(){t.isOpen()&&(o.setClasses(),o.highlightFirstItem())}),t.on(\"unselect\",function(){t.isOpen()&&(o.setClasses(),o.highlightFirstItem())}),t.on(\"open\",function(){o.$results.attr(\"aria-expanded\",\"true\"),o.$results.attr(\"aria-hidden\",\"false\"),o.setClasses(),o.ensureHighlightVisible();var e=o.$results.parents(\".select2-container\").find(\"input.select2-search__field\")[0];void 0!==e&&e.focus()}),t.on(\"close\",function(){o.$results.attr(\"aria-expanded\",\"false\"),o.$results.attr(\"aria-hidden\",\"true\"),o.$results.removeAttr(\"aria-activedescendant\")}),t.on(\"results:toggle\",function(){var e=o.getHighlightedResults();0!==e.length&&e.trigger(\"mouseup\")}),t.on(\"results:select\",function(){var e,t=o.getHighlightedResults();0!==t.length&&(e=t.data(\"data\"),\"true\"==t.attr(\"data-selected\")?o.trigger(\"close\",{}):o.trigger(\"select\",{data:e}))}),t.on(\"results:previous\",function(){var e,t=o.getHighlightedResults(),n=o.$results.find(\"[data-selected]\"),i=n.index(t);0!==i&&(e=i-1,0===t.length&&(e=0),(i=n.eq(e)).trigger(\"mouseenter\"),t=o.$results.offset().top,n=i.offset().top,i=o.$results.scrollTop()+(n-t),0===e?o.$results.scrollTop(0):n-t\u003C0&&o.$results.scrollTop(i))}),t.on(\"results:next\",function(){var e,t=o.getHighlightedResults(),n=o.$results.find(\"[data-selected]\"),i=n.index(t)+1;i>=n.length||((e=n.eq(i)).trigger(\"mouseenter\"),t=o.$results.offset().top+o.$results.outerHeight(!1),n=e.offset().top+e.outerHeight(!1),e=o.$results.scrollTop()+n-t,0===i?o.$results.scrollTop(0):t\u003Cn&&o.$results.scrollTop(e))}),t.on(\"results:focus\",function(e){e.element.addClass(\"select2-results__option--highlighted\").attr(\"aria-selected\",\"true\"),o.$results.attr(\"aria-activedescendant\",e.element.attr(\"id\"))}),t.on(\"results:message\",function(e){o.displayMessage(e)}),d.fn.mousewheel&&this.$results.on(\"mousewheel\",function(e){var t=o.$results.scrollTop(),n=o.$results.get(0).scrollHeight-t+e.deltaY,t=0\u003Ce.deltaY&&t-e.deltaY\u003C=0,n=e.deltaY\u003C0&&n\u003C=o.$results.height();t?(o.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):n&&(o.$results.scrollTop(o.$results.get(0).scrollHeight-o.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on(\"mouseup\",\".select2-results__option[data-selected]\",function(e){var t=d(this),n=t.data(\"data\");\"true\"!==t.attr(\"data-selected\")?o.trigger(\"select\",{originalEvent:e,data:n}):o.options.get(\"multiple\")?o.trigger(\"unselect\",{originalEvent:e,data:n}):o.trigger(\"close\",{})}),this.$results.on(\"mouseenter\",\".select2-results__option[data-selected]\",function(e){var t=d(this).data(\"data\");o.getHighlightedResults().removeClass(\"select2-results__option--highlighted\").attr(\"aria-selected\",\"false\"),o.trigger(\"results:focus\",{data:t,element:d(this)})})},i.prototype.getHighlightedResults=function(){return this.$results.find(\".select2-results__option--highlighted\")},i.prototype.destroy=function(){this.$results.remove()},i.prototype.ensureHighlightVisible=function(){var e,t,n,i,o=this.getHighlightedResults();0!==o.length&&(e=this.$results.find(\"[data-selected]\").index(o),i=this.$results.offset().top,t=o.offset().top,n=this.$results.scrollTop()+(t-i),i=t-i,n-=2*o.outerHeight(!1),e\u003C=2?this.$results.scrollTop(0):(i>this.$results.outerHeight()||i\u003C0)&&this.$results.scrollTop(n))},i.prototype.template=function(e,t){var n=this.options.get(\"templateResult\"),i=this.options.get(\"escapeMarkup\"),n=n(e,t);null==n?t.style.display=\"none\":\"string\"==typeof n?t.innerHTML=i(n):d(t).append(n)},i}),u.define(\"select2\u002Fkeys\",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),u.define(\"select2\u002Fselection\u002Fbase\",[\"jquery\",\"..\u002Futils\",\"..\u002Fkeys\"],function(i,e,o){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=i('\u003Cspan class=\"select2-selection\"  aria-haspopup=\"true\" aria-expanded=\"false\">\u003C\u002Fspan>');return this._tabindex=0,null!=this.$element.data(\"old-tabindex\")?this._tabindex=this.$element.data(\"old-tabindex\"):null!=this.$element.attr(\"tabindex\")&&(this._tabindex=this.$element.attr(\"tabindex\")),e.attr(\"title\",this.$element.attr(\"title\")),e.attr(\"tabindex\",this._tabindex),this.$selection=e},n.prototype.bind=function(e,t){var n=this,i=(e.id,e.id+\"-results\");this.options.get(\"minimumResultsForSearch\"),Infinity;this.container=e,this.$selection.on(\"focus\",function(e){n.trigger(\"focus\",e)}),this.$selection.on(\"blur\",function(e){n._handleBlur(e)}),this.$selection.on(\"keydown\",function(e){n.trigger(\"keypress\",e),e.which===o.SPACE&&e.preventDefault()}),e.on(\"results:focus\",function(e){n.$selection.attr(\"aria-activedescendant\",e.data._resultId)}),e.on(\"selection:update\",function(e){n.update(e.data)}),e.on(\"open\",function(){n.$selection.attr(\"aria-expanded\",\"true\"),n.$selection.attr(\"aria-owns\",i),n._attachCloseHandler(e)}),e.on(\"close\",function(){n.$selection.attr(\"aria-expanded\",\"false\"),n.$selection.removeAttr(\"aria-activedescendant\"),n.$selection.removeAttr(\"aria-owns\"),window.setTimeout(function(){n.$selection.trigger(\"focus\")},1),n._detachCloseHandler(e)}),e.on(\"enable\",function(){n.$selection.attr(\"tabindex\",n._tabindex)}),e.on(\"disable\",function(){n.$selection.attr(\"tabindex\",\"-1\")})},n.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||i.contains(t.$selection[0],document.activeElement)||t.trigger(\"blur\",e)},1)},n.prototype._attachCloseHandler=function(e){i(document.body).on(\"mousedown.select2.\"+e.id,function(e){var t=i(e.target),n=t.closest(\".select2\");i(\".select2.select2-container--open\").each(function(){var e=i(this);this!=n[0]&&(e.data(\"element\").select2(\"close\"),setTimeout(function(){e.find(\"*:focus\").trigger(\"blur\"),t.trigger(\"focus\")},1))})})},n.prototype._detachCloseHandler=function(e){i(document.body).off(\"mousedown.select2.\"+e.id)},n.prototype.position=function(e,t){t.find(\".selection\").append(e)},n.prototype.destroy=function(){this._detachCloseHandler(this.container)},n.prototype.update=function(e){throw new Error(\"The `update` method must be defined in child classes.\")},n}),u.define(\"select2\u002Fselection\u002Fsingle\",[\"jquery\",\".\u002Fbase\",\"..\u002Futils\",\"..\u002Fkeys\"],function(e,t,i,n){function s(){s.__super__.constructor.apply(this,arguments)}return i.Extend(s,t),s.prototype.render=function(){var e=s.__super__.render.call(this);return e.addClass(\"select2-selection--single\"),e.html('\u003Cspan class=\"select2-selection__rendered\">\u003C\u002Fspan>\u003Cspan class=\"select2-selection__arrow\" role=\"presentation\">\u003Cb role=\"presentation\">\u003C\u002Fb>\u003C\u002Fspan>'),e},s.prototype.bind=function(t,e){var n=this;s.__super__.bind.apply(this,arguments);var i=t.id+\"-container\";this.$selection.find(\".select2-selection__rendered\").attr(\"id\",i).attr(\"role\",\"textbox\").attr(\"aria-readonly\",\"true\");var o=this.options.get(\"label\");\"string\"==typeof o?this.$selection.attr(\"aria-label\",o):this.$selection.attr(\"aria-labelledby\",i),this.$selection.attr(\"role\",\"combobox\"),this.$selection.on(\"mousedown\",function(e){1===e.which&&n.trigger(\"toggle\",{originalEvent:e})}),this.$selection.on(\"focus\",function(e){}),this.$selection.on(\"keydown\",function(e){!t.isOpen()&&48\u003C=e.which&&e.which\u003C=90&&t.open()}),this.$selection.on(\"blur\",function(e){}),t.on(\"focus\",function(e){t.isOpen()||n.$selection.trigger(\"focus\")}),t.on(\"selection:update\",function(e){n.update(e.data)})},s.prototype.clear=function(){this.$selection.find(\".select2-selection__rendered\").empty()},s.prototype.display=function(e,t){var n=this.options.get(\"templateSelection\");return this.options.get(\"escapeMarkup\")(n(e,t))},s.prototype.selectionContainer=function(){return e(\"\u003Cspan>\u003C\u002Fspan>\")},s.prototype.update=function(e){var t,n;0!==e.length?(t=e[0],n=this.$selection.find(\".select2-selection__rendered\"),e=i.entityDecode(this.display(t,n)),n.empty().text(e),n.prop(\"title\",t.title||t.text)):this.clear()},s}),u.define(\"select2\u002Fselection\u002Fmultiple\",[\"jquery\",\".\u002Fbase\",\"..\u002Futils\"],function(i,e,l){function o(e,t){o.__super__.constructor.apply(this,arguments)}return l.Extend(o,e),o.prototype.render=function(){var e=o.__super__.render.call(this);return e.addClass(\"select2-selection--multiple\"),e.html('\u003Cul class=\"select2-selection__rendered\" aria-live=\"polite\" aria-relevant=\"additions removals\" aria-atomic=\"true\">\u003C\u002Ful>'),e},o.prototype.bind=function(t,e){var n=this;o.__super__.bind.apply(this,arguments),this.$selection.on(\"click\",function(e){n.trigger(\"toggle\",{originalEvent:e})}),this.$selection.on(\"click\",\".select2-selection__choice__remove\",function(e){var t;n.options.get(\"disabled\")||(t=i(this).parent().data(\"data\"),n.trigger(\"unselect\",{originalEvent:e,data:t}))}),this.$selection.on(\"keydown\",function(e){!t.isOpen()&&48\u003C=e.which&&e.which\u003C=90&&t.open()}),t.on(\"focus\",function(){n.focusOnSearch()})},o.prototype.clear=function(){this.$selection.find(\".select2-selection__rendered\").empty()},o.prototype.display=function(e,t){var n=this.options.get(\"templateSelection\");return this.options.get(\"escapeMarkup\")(n(e,t))},o.prototype.selectionContainer=function(){return i('\u003Cli class=\"select2-selection__choice\">\u003Cspan class=\"select2-selection__choice__remove\" role=\"presentation\" aria-hidden=\"true\">&times;\u003C\u002Fspan>\u003C\u002Fli>')},o.prototype.focusOnSearch=function(){var e=this;\"undefined\"!=typeof e.$search&&setTimeout(function(){e._keyUpPrevented=!0,e.$search.trigger(\"focus\")},1)},o.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n\u003Ce.length;n++){var i=e[n],o=this.selectionContainer(),s=o.html(),r=this.display(i,o);\"string\"==typeof r&&(r=l.entityDecode(r.trim())),o.text(r),o.prepend(s),o.prop(\"title\",i.title||i.text),o.data(\"data\",i),t.push(o)}var a=this.$selection.find(\".select2-selection__rendered\");l.appendMany(a,t)}},o}),u.define(\"select2\u002Fselection\u002Fplaceholder\",[\"..\u002Futils\"],function(i){function e(e,t,n){this.placeholder=this.normalizePlaceholder(n.get(\"placeholder\")),e.call(this,t,n)}return e.prototype.normalizePlaceholder=function(e,t){return t=\"string\"==typeof t?{id:\"\",text:t}:t},e.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.text(i.entityDecode(this.display(t))),n.addClass(\"select2-selection__placeholder\").removeClass(\"select2-selection__choice\"),n},e.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1\u003Ct.length||n)return e.call(this,t);this.clear();e=this.createPlaceholder(this.placeholder);this.$selection.find(\".select2-selection__rendered\").append(e)},e}),u.define(\"select2\u002Fselection\u002FallowClear\",[\"jquery\",\"..\u002Fkeys\"],function(n,i){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),null==this.placeholder&&this.options.get(\"debug\")&&window.console&&console.error&&console.error(\"Select2: The `allowClear` option should be used in combination with the `placeholder` option.\"),this.$selection.on(\"mousedown\",\".select2-selection__clear\",function(e){i._handleClear(e)}),t.on(\"keypress\",function(e){i._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.options.get(\"disabled\")){var n=this.$selection.find(\".select2-selection__clear\");if(0!==n.length){t.stopPropagation();for(var i=n.data(\"data\"),o=0;o\u003Ci.length;o++){var s={data:i[o]};if(this.trigger(\"unselect\",s),s.prevented)return}this.$element.val(this.placeholder.id).trigger(\"change\"),this.trigger(\"toggle\",{})}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=i.DELETE&&t.which!=i.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){e.call(this,t),0\u003Cthis.$selection.find(\".select2-selection__placeholder\").length||0===t.length||((e=n('\u003Cspan class=\"select2-selection__clear\">&times;\u003C\u002Fspan>')).data(\"data\",t),this.$selection.find(\".select2-selection__rendered\").prepend(e))},e}),u.define(\"select2\u002Fselection\u002Fsearch\",[\"jquery\",\"..\u002Futils\",\"..\u002Fkeys\"],function(n,e,r){function t(e,t,n){e.call(this,t,n)}return t.prototype.render=function(e){var t=n('\u003Cli class=\"select2-search select2-search--inline\">\u003Cinput class=\"select2-search__field\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\" spellcheck=\"false\" role=\"textbox\" aria-autocomplete=\"list\" \u002F>\u003C\u002Fli>');this.$searchContainer=t,this.$search=t.find(\"input\");e=e.call(this);return this._transferTabIndex(),e},t.prototype.bind=function(e,n,t){var i=this,o=n.id+\"-results\";e.call(this,n,t),n.on(\"open\",function(){i.$search.attr(\"aria-owns\",o),i.$search.trigger(\"focus\")}),n.on(\"close\",function(){i.$search.val(\"\"),i.$search.removeAttr(\"aria-activedescendant\"),i.$search.removeAttr(\"aria-owns\"),i.$search.trigger(\"focus\")}),n.on(\"enable\",function(){i.$search.prop(\"disabled\",!1),i._transferTabIndex()}),n.on(\"disable\",function(){i.$search.prop(\"disabled\",!0)}),n.on(\"focus\",function(e){i.$search.trigger(\"focus\")}),n.on(\"results:focus\",function(e){i.$search.attr(\"aria-activedescendant\",e.data._resultId)}),this.$selection.on(\"focusin\",\".select2-search--inline\",function(e){i.trigger(\"focus\",e)}),this.$selection.on(\"focusout\",\".select2-search--inline\",function(e){i._handleBlur(e)}),this.$selection.on(\"keydown\",\".select2-search--inline\",function(e){var t;e.stopPropagation(),i.trigger(\"keypress\",e),i._keyUpPrevented=e.isDefaultPrevented(),e.which===r.BACKSPACE&&\"\"===i.$search.val()?0\u003C(t=i.$searchContainer.prev(\".select2-selection__choice\")).length&&(t=t.data(\"data\"),i.searchRemoveChoice(t),e.preventDefault()):e.which===r.ENTER&&(n.open(),e.preventDefault())});var e=document.documentMode,s=e&&e\u003C=11;this.$selection.on(\"input.searchcheck\",\".select2-search--inline\",function(e){s?i.$selection.off(\"input.search input.searchcheck\"):i.$selection.off(\"keyup.search\")}),this.$selection.on(\"keyup.search input.search\",\".select2-search--inline\",function(e){var t;s&&\"input\"===e.type?i.$selection.off(\"input.search input.searchcheck\"):(t=e.which)!=r.SHIFT&&t!=r.CTRL&&t!=r.ALT&&t!=r.TAB&&i.handleSearch(e)})},t.prototype._transferTabIndex=function(e){this.$search.attr(\"tabindex\",this.$selection.attr(\"tabindex\")),this.$selection.attr(\"tabindex\",\"-1\")},t.prototype.createPlaceholder=function(e,t){this.$search.attr(\"placeholder\",t.text)},t.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr(\"placeholder\",\"\"),e.call(this,t),this.$selection.find(\".select2-selection__rendered\").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.trigger(\"focus\")},t.prototype.handleSearch=function(){var e;this.resizeSearch(),this._keyUpPrevented||(e=this.$search.val(),this.trigger(\"query\",{term:e})),this._keyUpPrevented=!1},t.prototype.searchRemoveChoice=function(e,t){this.trigger(\"unselect\",{data:t}),this.$search.val(t.text),this.handleSearch()},t.prototype.resizeSearch=function(){this.$search.css(\"width\",\"25px\");var e=\"\";e=\"\"!==this.$search.attr(\"placeholder\")?this.$selection.find(\".select2-selection__rendered\").innerWidth():.75*(this.$search.val().length+1)+\"em\",this.$search.css(\"width\",e)},t}),u.define(\"select2\u002Fselection\u002FeventRelay\",[\"jquery\"],function(r){function e(){}return e.prototype.bind=function(e,t,n){var i=this,o=[\"open\",\"opening\",\"close\",\"closing\",\"select\",\"selecting\",\"unselect\",\"unselecting\"],s=[\"opening\",\"closing\",\"selecting\",\"unselecting\"];e.call(this,t,n),t.on(\"*\",function(e,t){var n;-1!==r.inArray(e,o)&&(n=r.Event(\"select2:\"+e,{params:t=t||{}}),i.$element.trigger(n),-1!==r.inArray(e,s)&&(t.prevented=n.isDefaultPrevented()))})},e}),u.define(\"select2\u002Ftranslation\",[\"jquery\",\"require\"],function(t,n){function i(e){this.dict=e||{}}return i.prototype.all=function(){return this.dict},i.prototype.get=function(e){return this.dict[e]},i.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},i._cache={},i.loadPath=function(e){var t;return e in i._cache||(t=n(e),i._cache[e]=t),new i(i._cache[e])},i}),u.define(\"select2\u002Fdiacritics\",[],function(){return{\"Ⓐ\":\"A\",\"Ａ\":\"A\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ầ\":\"A\",\"Ấ\":\"A\",\"Ẫ\":\"A\",\"Ẩ\":\"A\",\"Ã\":\"A\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ằ\":\"A\",\"Ắ\":\"A\",\"Ẵ\":\"A\",\"Ẳ\":\"A\",\"Ȧ\":\"A\",\"Ǡ\":\"A\",\"Ä\":\"A\",\"Ǟ\":\"A\",\"Ả\":\"A\",\"Å\":\"A\",\"Ǻ\":\"A\",\"Ǎ\":\"A\",\"Ȁ\":\"A\",\"Ȃ\":\"A\",\"Ạ\":\"A\",\"Ậ\":\"A\",\"Ặ\":\"A\",\"Ḁ\":\"A\",\"Ą\":\"A\",\"Ⱥ\":\"A\",\"Ɐ\":\"A\",\"Ꜳ\":\"AA\",\"Æ\":\"AE\",\"Ǽ\":\"AE\",\"Ǣ\":\"AE\",\"Ꜵ\":\"AO\",\"Ꜷ\":\"AU\",\"Ꜹ\":\"AV\",\"Ꜻ\":\"AV\",\"Ꜽ\":\"AY\",\"Ⓑ\":\"B\",\"Ｂ\":\"B\",\"Ḃ\":\"B\",\"Ḅ\":\"B\",\"Ḇ\":\"B\",\"Ƀ\":\"B\",\"Ƃ\":\"B\",\"Ɓ\":\"B\",\"Ⓒ\":\"C\",\"Ｃ\":\"C\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"Ç\":\"C\",\"Ḉ\":\"C\",\"Ƈ\":\"C\",\"Ȼ\":\"C\",\"Ꜿ\":\"C\",\"Ⓓ\":\"D\",\"Ｄ\":\"D\",\"Ḋ\":\"D\",\"Ď\":\"D\",\"Ḍ\":\"D\",\"Ḑ\":\"D\",\"Ḓ\":\"D\",\"Ḏ\":\"D\",\"Đ\":\"D\",\"Ƌ\":\"D\",\"Ɗ\":\"D\",\"Ɖ\":\"D\",\"Ꝺ\":\"D\",\"Ǳ\":\"DZ\",\"Ǆ\":\"DZ\",\"ǲ\":\"Dz\",\"ǅ\":\"Dz\",\"Ⓔ\":\"E\",\"Ｅ\":\"E\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ề\":\"E\",\"Ế\":\"E\",\"Ễ\":\"E\",\"Ể\":\"E\",\"Ẽ\":\"E\",\"Ē\":\"E\",\"Ḕ\":\"E\",\"Ḗ\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ë\":\"E\",\"Ẻ\":\"E\",\"Ě\":\"E\",\"Ȅ\":\"E\",\"Ȇ\":\"E\",\"Ẹ\":\"E\",\"Ệ\":\"E\",\"Ȩ\":\"E\",\"Ḝ\":\"E\",\"Ę\":\"E\",\"Ḙ\":\"E\",\"Ḛ\":\"E\",\"Ɛ\":\"E\",\"Ǝ\":\"E\",\"Ⓕ\":\"F\",\"Ｆ\":\"F\",\"Ḟ\":\"F\",\"Ƒ\":\"F\",\"Ꝼ\":\"F\",\"Ⓖ\":\"G\",\"Ｇ\":\"G\",\"Ǵ\":\"G\",\"Ĝ\":\"G\",\"Ḡ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ǧ\":\"G\",\"Ģ\":\"G\",\"Ǥ\":\"G\",\"Ɠ\":\"G\",\"Ꞡ\":\"G\",\"Ᵹ\":\"G\",\"Ꝿ\":\"G\",\"Ⓗ\":\"H\",\"Ｈ\":\"H\",\"Ĥ\":\"H\",\"Ḣ\":\"H\",\"Ḧ\":\"H\",\"Ȟ\":\"H\",\"Ḥ\":\"H\",\"Ḩ\":\"H\",\"Ḫ\":\"H\",\"Ħ\":\"H\",\"Ⱨ\":\"H\",\"Ⱶ\":\"H\",\"Ɥ\":\"H\",\"Ⓘ\":\"I\",\"Ｉ\":\"I\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"İ\":\"I\",\"Ï\":\"I\",\"Ḯ\":\"I\",\"Ỉ\":\"I\",\"Ǐ\":\"I\",\"Ȉ\":\"I\",\"Ȋ\":\"I\",\"Ị\":\"I\",\"Į\":\"I\",\"Ḭ\":\"I\",\"Ɨ\":\"I\",\"Ⓙ\":\"J\",\"Ｊ\":\"J\",\"Ĵ\":\"J\",\"Ɉ\":\"J\",\"Ⓚ\":\"K\",\"Ｋ\":\"K\",\"Ḱ\":\"K\",\"Ǩ\":\"K\",\"Ḳ\":\"K\",\"Ķ\":\"K\",\"Ḵ\":\"K\",\"Ƙ\":\"K\",\"Ⱪ\":\"K\",\"Ꝁ\":\"K\",\"Ꝃ\":\"K\",\"Ꝅ\":\"K\",\"Ꞣ\":\"K\",\"Ⓛ\":\"L\",\"Ｌ\":\"L\",\"Ŀ\":\"L\",\"Ĺ\":\"L\",\"Ľ\":\"L\",\"Ḷ\":\"L\",\"Ḹ\":\"L\",\"Ļ\":\"L\",\"Ḽ\":\"L\",\"Ḻ\":\"L\",\"Ł\":\"L\",\"Ƚ\":\"L\",\"Ɫ\":\"L\",\"Ⱡ\":\"L\",\"Ꝉ\":\"L\",\"Ꝇ\":\"L\",\"Ꞁ\":\"L\",\"Ǉ\":\"LJ\",\"ǈ\":\"Lj\",\"Ⓜ\":\"M\",\"Ｍ\":\"M\",\"Ḿ\":\"M\",\"Ṁ\":\"M\",\"Ṃ\":\"M\",\"Ɱ\":\"M\",\"Ɯ\":\"M\",\"Ⓝ\":\"N\",\"Ｎ\":\"N\",\"Ǹ\":\"N\",\"Ń\":\"N\",\"Ñ\":\"N\",\"Ṅ\":\"N\",\"Ň\":\"N\",\"Ṇ\":\"N\",\"Ņ\":\"N\",\"Ṋ\":\"N\",\"Ṉ\":\"N\",\"Ƞ\":\"N\",\"Ɲ\":\"N\",\"Ꞑ\":\"N\",\"Ꞥ\":\"N\",\"Ǌ\":\"NJ\",\"ǋ\":\"Nj\",\"Ⓞ\":\"O\",\"Ｏ\":\"O\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Ồ\":\"O\",\"Ố\":\"O\",\"Ỗ\":\"O\",\"Ổ\":\"O\",\"Õ\":\"O\",\"Ṍ\":\"O\",\"Ȭ\":\"O\",\"Ṏ\":\"O\",\"Ō\":\"O\",\"Ṑ\":\"O\",\"Ṓ\":\"O\",\"Ŏ\":\"O\",\"Ȯ\":\"O\",\"Ȱ\":\"O\",\"Ö\":\"O\",\"Ȫ\":\"O\",\"Ỏ\":\"O\",\"Ő\":\"O\",\"Ǒ\":\"O\",\"Ȍ\":\"O\",\"Ȏ\":\"O\",\"Ơ\":\"O\",\"Ờ\":\"O\",\"Ớ\":\"O\",\"Ỡ\":\"O\",\"Ở\":\"O\",\"Ợ\":\"O\",\"Ọ\":\"O\",\"Ộ\":\"O\",\"Ǫ\":\"O\",\"Ǭ\":\"O\",\"Ø\":\"O\",\"Ǿ\":\"O\",\"Ɔ\":\"O\",\"Ɵ\":\"O\",\"Ꝋ\":\"O\",\"Ꝍ\":\"O\",\"Ƣ\":\"OI\",\"Ꝏ\":\"OO\",\"Ȣ\":\"OU\",\"Ⓟ\":\"P\",\"Ｐ\":\"P\",\"Ṕ\":\"P\",\"Ṗ\":\"P\",\"Ƥ\":\"P\",\"Ᵽ\":\"P\",\"Ꝑ\":\"P\",\"Ꝓ\":\"P\",\"Ꝕ\":\"P\",\"Ⓠ\":\"Q\",\"Ｑ\":\"Q\",\"Ꝗ\":\"Q\",\"Ꝙ\":\"Q\",\"Ɋ\":\"Q\",\"Ⓡ\":\"R\",\"Ｒ\":\"R\",\"Ŕ\":\"R\",\"Ṙ\":\"R\",\"Ř\":\"R\",\"Ȑ\":\"R\",\"Ȓ\":\"R\",\"Ṛ\":\"R\",\"Ṝ\":\"R\",\"Ŗ\":\"R\",\"Ṟ\":\"R\",\"Ɍ\":\"R\",\"Ɽ\":\"R\",\"Ꝛ\":\"R\",\"Ꞧ\":\"R\",\"Ꞃ\":\"R\",\"Ⓢ\":\"S\",\"Ｓ\":\"S\",\"ẞ\":\"S\",\"Ś\":\"S\",\"Ṥ\":\"S\",\"Ŝ\":\"S\",\"Ṡ\":\"S\",\"Š\":\"S\",\"Ṧ\":\"S\",\"Ṣ\":\"S\",\"Ṩ\":\"S\",\"Ș\":\"S\",\"Ş\":\"S\",\"Ȿ\":\"S\",\"Ꞩ\":\"S\",\"Ꞅ\":\"S\",\"Ⓣ\":\"T\",\"Ｔ\":\"T\",\"Ṫ\":\"T\",\"Ť\":\"T\",\"Ṭ\":\"T\",\"Ț\":\"T\",\"Ţ\":\"T\",\"Ṱ\":\"T\",\"Ṯ\":\"T\",\"Ŧ\":\"T\",\"Ƭ\":\"T\",\"Ʈ\":\"T\",\"Ⱦ\":\"T\",\"Ꞇ\":\"T\",\"Ꜩ\":\"TZ\",\"Ⓤ\":\"U\",\"Ｕ\":\"U\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ũ\":\"U\",\"Ṹ\":\"U\",\"Ū\":\"U\",\"Ṻ\":\"U\",\"Ŭ\":\"U\",\"Ü\":\"U\",\"Ǜ\":\"U\",\"Ǘ\":\"U\",\"Ǖ\":\"U\",\"Ǚ\":\"U\",\"Ủ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ǔ\":\"U\",\"Ȕ\":\"U\",\"Ȗ\":\"U\",\"Ư\":\"U\",\"Ừ\":\"U\",\"Ứ\":\"U\",\"Ữ\":\"U\",\"Ử\":\"U\",\"Ự\":\"U\",\"Ụ\":\"U\",\"Ṳ\":\"U\",\"Ų\":\"U\",\"Ṷ\":\"U\",\"Ṵ\":\"U\",\"Ʉ\":\"U\",\"Ⓥ\":\"V\",\"Ｖ\":\"V\",\"Ṽ\":\"V\",\"Ṿ\":\"V\",\"Ʋ\":\"V\",\"Ꝟ\":\"V\",\"Ʌ\":\"V\",\"Ꝡ\":\"VY\",\"Ⓦ\":\"W\",\"Ｗ\":\"W\",\"Ẁ\":\"W\",\"Ẃ\":\"W\",\"Ŵ\":\"W\",\"Ẇ\":\"W\",\"Ẅ\":\"W\",\"Ẉ\":\"W\",\"Ⱳ\":\"W\",\"Ⓧ\":\"X\",\"Ｘ\":\"X\",\"Ẋ\":\"X\",\"Ẍ\":\"X\",\"Ⓨ\":\"Y\",\"Ｙ\":\"Y\",\"Ỳ\":\"Y\",\"Ý\":\"Y\",\"Ŷ\":\"Y\",\"Ỹ\":\"Y\",\"Ȳ\":\"Y\",\"Ẏ\":\"Y\",\"Ÿ\":\"Y\",\"Ỷ\":\"Y\",\"Ỵ\":\"Y\",\"Ƴ\":\"Y\",\"Ɏ\":\"Y\",\"Ỿ\":\"Y\",\"Ⓩ\":\"Z\",\"Ｚ\":\"Z\",\"Ź\":\"Z\",\"Ẑ\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"Ẓ\":\"Z\",\"Ẕ\":\"Z\",\"Ƶ\":\"Z\",\"Ȥ\":\"Z\",\"Ɀ\":\"Z\",\"Ⱬ\":\"Z\",\"Ꝣ\":\"Z\",\"ⓐ\":\"a\",\"ａ\":\"a\",\"ẚ\":\"a\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ầ\":\"a\",\"ấ\":\"a\",\"ẫ\":\"a\",\"ẩ\":\"a\",\"ã\":\"a\",\"ā\":\"a\",\"ă\":\"a\",\"ằ\":\"a\",\"ắ\":\"a\",\"ẵ\":\"a\",\"ẳ\":\"a\",\"ȧ\":\"a\",\"ǡ\":\"a\",\"ä\":\"a\",\"ǟ\":\"a\",\"ả\":\"a\",\"å\":\"a\",\"ǻ\":\"a\",\"ǎ\":\"a\",\"ȁ\":\"a\",\"ȃ\":\"a\",\"ạ\":\"a\",\"ậ\":\"a\",\"ặ\":\"a\",\"ḁ\":\"a\",\"ą\":\"a\",\"ⱥ\":\"a\",\"ɐ\":\"a\",\"ꜳ\":\"aa\",\"æ\":\"ae\",\"ǽ\":\"ae\",\"ǣ\":\"ae\",\"ꜵ\":\"ao\",\"ꜷ\":\"au\",\"ꜹ\":\"av\",\"ꜻ\":\"av\",\"ꜽ\":\"ay\",\"ⓑ\":\"b\",\"ｂ\":\"b\",\"ḃ\":\"b\",\"ḅ\":\"b\",\"ḇ\":\"b\",\"ƀ\":\"b\",\"ƃ\":\"b\",\"ɓ\":\"b\",\"ⓒ\":\"c\",\"ｃ\":\"c\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"ç\":\"c\",\"ḉ\":\"c\",\"ƈ\":\"c\",\"ȼ\":\"c\",\"ꜿ\":\"c\",\"ↄ\":\"c\",\"ⓓ\":\"d\",\"ｄ\":\"d\",\"ḋ\":\"d\",\"ď\":\"d\",\"ḍ\":\"d\",\"ḑ\":\"d\",\"ḓ\":\"d\",\"ḏ\":\"d\",\"đ\":\"d\",\"ƌ\":\"d\",\"ɖ\":\"d\",\"ɗ\":\"d\",\"ꝺ\":\"d\",\"ǳ\":\"dz\",\"ǆ\":\"dz\",\"ⓔ\":\"e\",\"ｅ\":\"e\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ề\":\"e\",\"ế\":\"e\",\"ễ\":\"e\",\"ể\":\"e\",\"ẽ\":\"e\",\"ē\":\"e\",\"ḕ\":\"e\",\"ḗ\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ë\":\"e\",\"ẻ\":\"e\",\"ě\":\"e\",\"ȅ\":\"e\",\"ȇ\":\"e\",\"ẹ\":\"e\",\"ệ\":\"e\",\"ȩ\":\"e\",\"ḝ\":\"e\",\"ę\":\"e\",\"ḙ\":\"e\",\"ḛ\":\"e\",\"ɇ\":\"e\",\"ɛ\":\"e\",\"ǝ\":\"e\",\"ⓕ\":\"f\",\"ｆ\":\"f\",\"ḟ\":\"f\",\"ƒ\":\"f\",\"ꝼ\":\"f\",\"ⓖ\":\"g\",\"ｇ\":\"g\",\"ǵ\":\"g\",\"ĝ\":\"g\",\"ḡ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ǧ\":\"g\",\"ģ\":\"g\",\"ǥ\":\"g\",\"ɠ\":\"g\",\"ꞡ\":\"g\",\"ᵹ\":\"g\",\"ꝿ\":\"g\",\"ⓗ\":\"h\",\"ｈ\":\"h\",\"ĥ\":\"h\",\"ḣ\":\"h\",\"ḧ\":\"h\",\"ȟ\":\"h\",\"ḥ\":\"h\",\"ḩ\":\"h\",\"ḫ\":\"h\",\"ẖ\":\"h\",\"ħ\":\"h\",\"ⱨ\":\"h\",\"ⱶ\":\"h\",\"ɥ\":\"h\",\"ƕ\":\"hv\",\"ⓘ\":\"i\",\"ｉ\":\"i\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"ï\":\"i\",\"ḯ\":\"i\",\"ỉ\":\"i\",\"ǐ\":\"i\",\"ȉ\":\"i\",\"ȋ\":\"i\",\"ị\":\"i\",\"į\":\"i\",\"ḭ\":\"i\",\"ɨ\":\"i\",\"ı\":\"i\",\"ⓙ\":\"j\",\"ｊ\":\"j\",\"ĵ\":\"j\",\"ǰ\":\"j\",\"ɉ\":\"j\",\"ⓚ\":\"k\",\"ｋ\":\"k\",\"ḱ\":\"k\",\"ǩ\":\"k\",\"ḳ\":\"k\",\"ķ\":\"k\",\"ḵ\":\"k\",\"ƙ\":\"k\",\"ⱪ\":\"k\",\"ꝁ\":\"k\",\"ꝃ\":\"k\",\"ꝅ\":\"k\",\"ꞣ\":\"k\",\"ⓛ\":\"l\",\"ｌ\":\"l\",\"ŀ\":\"l\",\"ĺ\":\"l\",\"ľ\":\"l\",\"ḷ\":\"l\",\"ḹ\":\"l\",\"ļ\":\"l\",\"ḽ\":\"l\",\"ḻ\":\"l\",\"ſ\":\"l\",\"ł\":\"l\",\"ƚ\":\"l\",\"ɫ\":\"l\",\"ⱡ\":\"l\",\"ꝉ\":\"l\",\"ꞁ\":\"l\",\"ꝇ\":\"l\",\"ǉ\":\"lj\",\"ⓜ\":\"m\",\"ｍ\":\"m\",\"ḿ\":\"m\",\"ṁ\":\"m\",\"ṃ\":\"m\",\"ɱ\":\"m\",\"ɯ\":\"m\",\"ⓝ\":\"n\",\"ｎ\":\"n\",\"ǹ\":\"n\",\"ń\":\"n\",\"ñ\":\"n\",\"ṅ\":\"n\",\"ň\":\"n\",\"ṇ\":\"n\",\"ņ\":\"n\",\"ṋ\":\"n\",\"ṉ\":\"n\",\"ƞ\":\"n\",\"ɲ\":\"n\",\"ŉ\":\"n\",\"ꞑ\":\"n\",\"ꞥ\":\"n\",\"ǌ\":\"nj\",\"ⓞ\":\"o\",\"ｏ\":\"o\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"ồ\":\"o\",\"ố\":\"o\",\"ỗ\":\"o\",\"ổ\":\"o\",\"õ\":\"o\",\"ṍ\":\"o\",\"ȭ\":\"o\",\"ṏ\":\"o\",\"ō\":\"o\",\"ṑ\":\"o\",\"ṓ\":\"o\",\"ŏ\":\"o\",\"ȯ\":\"o\",\"ȱ\":\"o\",\"ö\":\"o\",\"ȫ\":\"o\",\"ỏ\":\"o\",\"ő\":\"o\",\"ǒ\":\"o\",\"ȍ\":\"o\",\"ȏ\":\"o\",\"ơ\":\"o\",\"ờ\":\"o\",\"ớ\":\"o\",\"ỡ\":\"o\",\"ở\":\"o\",\"ợ\":\"o\",\"ọ\":\"o\",\"ộ\":\"o\",\"ǫ\":\"o\",\"ǭ\":\"o\",\"ø\":\"o\",\"ǿ\":\"o\",\"ɔ\":\"o\",\"ꝋ\":\"o\",\"ꝍ\":\"o\",\"ɵ\":\"o\",\"ƣ\":\"oi\",\"ȣ\":\"ou\",\"ꝏ\":\"oo\",\"ⓟ\":\"p\",\"ｐ\":\"p\",\"ṕ\":\"p\",\"ṗ\":\"p\",\"ƥ\":\"p\",\"ᵽ\":\"p\",\"ꝑ\":\"p\",\"ꝓ\":\"p\",\"ꝕ\":\"p\",\"ⓠ\":\"q\",\"ｑ\":\"q\",\"ɋ\":\"q\",\"ꝗ\":\"q\",\"ꝙ\":\"q\",\"ⓡ\":\"r\",\"ｒ\":\"r\",\"ŕ\":\"r\",\"ṙ\":\"r\",\"ř\":\"r\",\"ȑ\":\"r\",\"ȓ\":\"r\",\"ṛ\":\"r\",\"ṝ\":\"r\",\"ŗ\":\"r\",\"ṟ\":\"r\",\"ɍ\":\"r\",\"ɽ\":\"r\",\"ꝛ\":\"r\",\"ꞧ\":\"r\",\"ꞃ\":\"r\",\"ⓢ\":\"s\",\"ｓ\":\"s\",\"ß\":\"s\",\"ś\":\"s\",\"ṥ\":\"s\",\"ŝ\":\"s\",\"ṡ\":\"s\",\"š\":\"s\",\"ṧ\":\"s\",\"ṣ\":\"s\",\"ṩ\":\"s\",\"ș\":\"s\",\"ş\":\"s\",\"ȿ\":\"s\",\"ꞩ\":\"s\",\"ꞅ\":\"s\",\"ẛ\":\"s\",\"ⓣ\":\"t\",\"ｔ\":\"t\",\"ṫ\":\"t\",\"ẗ\":\"t\",\"ť\":\"t\",\"ṭ\":\"t\",\"ț\":\"t\",\"ţ\":\"t\",\"ṱ\":\"t\",\"ṯ\":\"t\",\"ŧ\":\"t\",\"ƭ\":\"t\",\"ʈ\":\"t\",\"ⱦ\":\"t\",\"ꞇ\":\"t\",\"ꜩ\":\"tz\",\"ⓤ\":\"u\",\"ｕ\":\"u\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ũ\":\"u\",\"ṹ\":\"u\",\"ū\":\"u\",\"ṻ\":\"u\",\"ŭ\":\"u\",\"ü\":\"u\",\"ǜ\":\"u\",\"ǘ\":\"u\",\"ǖ\":\"u\",\"ǚ\":\"u\",\"ủ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ǔ\":\"u\",\"ȕ\":\"u\",\"ȗ\":\"u\",\"ư\":\"u\",\"ừ\":\"u\",\"ứ\":\"u\",\"ữ\":\"u\",\"ử\":\"u\",\"ự\":\"u\",\"ụ\":\"u\",\"ṳ\":\"u\",\"ų\":\"u\",\"ṷ\":\"u\",\"ṵ\":\"u\",\"ʉ\":\"u\",\"ⓥ\":\"v\",\"ｖ\":\"v\",\"ṽ\":\"v\",\"ṿ\":\"v\",\"ʋ\":\"v\",\"ꝟ\":\"v\",\"ʌ\":\"v\",\"ꝡ\":\"vy\",\"ⓦ\":\"w\",\"ｗ\":\"w\",\"ẁ\":\"w\",\"ẃ\":\"w\",\"ŵ\":\"w\",\"ẇ\":\"w\",\"ẅ\":\"w\",\"ẘ\":\"w\",\"ẉ\":\"w\",\"ⱳ\":\"w\",\"ⓧ\":\"x\",\"ｘ\":\"x\",\"ẋ\":\"x\",\"ẍ\":\"x\",\"ⓨ\":\"y\",\"ｙ\":\"y\",\"ỳ\":\"y\",\"ý\":\"y\",\"ŷ\":\"y\",\"ỹ\":\"y\",\"ȳ\":\"y\",\"ẏ\":\"y\",\"ÿ\":\"y\",\"ỷ\":\"y\",\"ẙ\":\"y\",\"ỵ\":\"y\",\"ƴ\":\"y\",\"ɏ\":\"y\",\"ỿ\":\"y\",\"ⓩ\":\"z\",\"ｚ\":\"z\",\"ź\":\"z\",\"ẑ\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"ẓ\":\"z\",\"ẕ\":\"z\",\"ƶ\":\"z\",\"ȥ\":\"z\",\"ɀ\":\"z\",\"ⱬ\":\"z\",\"ꝣ\":\"z\",\"Ά\":\"Α\",\"Έ\":\"Ε\",\"Ή\":\"Η\",\"Ί\":\"Ι\",\"Ϊ\":\"Ι\",\"Ό\":\"Ο\",\"Ύ\":\"Υ\",\"Ϋ\":\"Υ\",\"Ώ\":\"Ω\",\"ά\":\"α\",\"έ\":\"ε\",\"ή\":\"η\",\"ί\":\"ι\",\"ϊ\":\"ι\",\"ΐ\":\"ι\",\"ό\":\"ο\",\"ύ\":\"υ\",\"ϋ\":\"υ\",\"ΰ\":\"υ\",\"ω\":\"ω\",\"ς\":\"σ\"}}),u.define(\"select2\u002Fdata\u002Fbase\",[\"..\u002Futils\"],function(i){function n(e,t){n.__super__.constructor.call(this)}return i.Extend(n,i.Observable),n.prototype.current=function(e){throw new Error(\"The `current` method must be defined in child classes.\")},n.prototype.query=function(e,t){throw new Error(\"The `query` method must be defined in child classes.\")},n.prototype.bind=function(e,t){},n.prototype.destroy=function(){},n.prototype.generateResultId=function(e,t){var n=\"\";return n+=null!=e?e.id:i.generateChars(4),n+=\"-result-\",n+=i.generateChars(4),null!=t.id?n+=\"-\"+t.id.toString():n+=\"-\"+i.generateChars(4),n},n}),u.define(\"select2\u002Fdata\u002Fselect\",[\".\u002Fbase\",\"..\u002Futils\",\"jquery\"],function(e,t,r){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,e),n.prototype.current=function(e){var t=[],n=this;this.$element.find(\":selected\").each(function(){var e=r(this),e=n.item(e);t.push(e)}),e(t)},n.prototype.select=function(o){var e,s=this;if(o.selected=!0,r(o.element).is(\"option\"))return o.element.selected=!0,void this.$element.trigger(\"change\");this.$element.prop(\"multiple\")?this.current(function(e){var t=[];(o=[o]).push.apply(o,e);for(var n=0;n\u003Co.length;n++){var i=o[n].id;-1===r.inArray(i,t)&&t.push(i)}s.$element.val(t),s.$element.trigger(\"change\")}):(e=o.id,this.$element.val(e),this.$element.trigger(\"change\"))},n.prototype.unselect=function(o){var s=this;if(this.$element.prop(\"multiple\")){if(o.selected=!1,r(o.element).is(\"option\"))return o.element.selected=!1,void this.$element.trigger(\"change\");this.current(function(e){for(var t=[],n=0;n\u003Ce.length;n++){var i=e[n].id;i!==o.id&&-1===r.inArray(i,t)&&t.push(i)}s.$element.val(t),s.$element.trigger(\"change\")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on(\"select\",function(e){n.select(e.data)}),e.on(\"unselect\",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find(\"*\").each(function(){r.removeData(this,\"data\")})},n.prototype.query=function(t,e){var n=[],i=this;this.$element.children().each(function(){var e=r(this);(e.is(\"option\")||e.is(\"optgroup\"))&&(e=i.item(e),null!==(e=i.matches(t,e))&&n.push(e))}),e({results:n})},n.prototype.addOptions=function(e){t.appendMany(this.$element,e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement(\"optgroup\")).label=e.text:(t=document.createElement(\"option\")).textContent!==undefined?t.textContent=e.text:t.innerText=e.text,e.id!==undefined&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var n=r(t),e=this._normalizeItem(e);return e.element=t,r.data(t,\"data\",e),n},n.prototype.item=function(e){var t={};if(null!=(t=r.data(e[0],\"data\")))return t;if(e.is(\"option\"))t={id:e.val(),text:e.text(),disabled:e.prop(\"disabled\"),selected:e.prop(\"selected\"),title:e.prop(\"title\")};else if(e.is(\"optgroup\")){for(var t={text:e.prop(\"label\"),children:[],title:e.prop(\"title\")},n=e.children(\"option\"),i=[],o=0;o\u003Cn.length;o++){var s=r(n[o]),s=this.item(s);i.push(s)}t.children=i}return(t=this._normalizeItem(t)).element=e[0],r.data(e[0],\"data\",t),t},n.prototype._normalizeItem=function(e){r.isPlainObject(e)||(e={id:e,text:e});return null!=(e=r.extend({},{text:\"\"},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&(e._resultId=this.generateResultId(this.container,e)),r.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get(\"matcher\")(e,t)},n}),u.define(\"select2\u002Fdata\u002Farray\",[\".\u002Fselect\",\"..\u002Futils\",\"jquery\"],function(e,c,u){function i(e,t){var n=t.get(\"data\")||[];i.__super__.constructor.call(this,e,t),this.addOptions(this.convertToOptions(n))}return c.Extend(i,e),i.prototype.select=function(n){var e;0===(e=this.$element.find(\"option\").filter(function(e,t){return t.value==n.id.toString()})).length&&(e=this.option(n),this.addOptions(e)),i.__super__.select.call(this,n)},i.prototype.convertToOptions=function(e){var t=this,n=this.$element.find(\"option\"),i=n.map(function(){return t.item(u(this)).id}).get(),o=[];for(var s=0;s\u003Ce.length;s++){var r,a,l=this._normalizeItem(e[s]);0\u003C=u.inArray(l.id,i)?(a=n.filter(function(e){return function(){return u(this).val()==e.id}}(l)),r=this.item(a),r=u.extend(!0,{},l,r),r=this.option(r),a.replaceWith(r)):(a=this.option(l),l.children&&(l=this.convertToOptions(l.children),c.appendMany(a,l)),o.push(a))}return o},i}),u.define(\"select2\u002Fdata\u002Fajax\",[\".\u002Farray\",\"..\u002Futils\",\"jquery\"],function(e,t,s){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get(\"ajax\")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){return s.extend({},{data:function(e){return s.extend({},e,{q:e.term})},transport:function(e,t,n){e=s.ajax(e);return e.then(t),e.fail(n),e}},e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(t,n){var i=this;null!=this._request&&(\"function\"==typeof this._request.abort&&this._request.abort(),this._request=null);var o=s.extend({type:\"GET\"},this.ajaxOptions);function e(){var e=o.transport(o,function(e){e=i.processResults(e,t);i.options.get(\"debug\")&&window.console&&console.error&&(e&&e.results&&Array.isArray(e.results)||console.error(\"Select2: The AJAX results did not return an array in the `results` key of the response.\")),n(e),i.container.focusOnActiveElement()},function(){e.status&&\"0\"===e.status||i.trigger(\"results:message\",{message:\"errorLoading\"})});i._request=e}\"function\"==typeof o.url&&(o.url=o.url.call(this.$element,t)),\"function\"==typeof o.data&&(o.data=o.data.call(this.$element,t)),this.ajaxOptions.delay&&null!=t.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),u.define(\"select2\u002Fdata\u002Ftags\",[\"jquery\"],function(t){function e(e,t,n){var i=n.get(\"tags\"),o=n.get(\"createTag\");o!==undefined&&(this.createTag=o);o=n.get(\"insertTag\");if(o!==undefined&&(this.insertTag=o),e.call(this,t,n),Array.isArray(i))for(var s=0;s\u003Ci.length;s++){var r=i[s],r=this._normalizeItem(r),r=this.option(r);this.$element.append(r)}}return e.prototype.query=function(e,l,c){var u=this;this._removeOldTags(),null!=l.term&&null==l.page?e.call(this,l,function d(e,t){for(var n=e.results,i=0;i\u003Cn.length;i++){var o=n[i],s=null!=o.children&&!d({results:o.children},!0);if((o.text||\"\").toUpperCase()===(l.term||\"\").toUpperCase()||s)return!t&&(e.data=n,void c(e))}if(t)return!0;var r,a=u.createTag(l);null!=a&&((r=u.option(a)).attr(\"data-select2-tag\",!0),u.addOptions([r]),u.insertTag(n,a)),e.results=n,c(e)}):e.call(this,l,c)},e.prototype.createTag=function(e,t){t=t.term||0==t.term?t.term.toString().trim():\"\";return\"\"===t?null:{id:t,text:t}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this._lastTag;this.$element.find(\"option[data-select2-tag]\").each(function(){this.selected||t(this).remove()})},e}),u.define(\"select2\u002Fdata\u002Ftokenizer\",[\"jquery\"],function(c){function e(e,t,n){var i=n.get(\"tokenizer\");i!==undefined&&(this.tokenizer=i),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(\".select2-search__field\")},e.prototype.query=function(e,t,n){var i=this;t.term=t.term||\"\";var o=this.tokenizer(t,this.options,function(e){var t=i._normalizeItem(e);i.$element.find(\"option\").filter(function(){return c(this).val()===t.id}).length||((e=i.option(t)).attr(\"data-select2-tag\",!0),i._removeOldTags(),i.addOptions([e])),i.trigger(\"select\",{data:t})});o.term!==t.term&&(this.$search.length&&(this.$search.val(o.term),this.$search.trigger(\"focus\")),t.term=o.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,i){for(var o=n.get(\"tokenSeparators\")||[],s=t.term,r=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};r\u003Cs.length;){var l=s[r];-1!==c.inArray(l,o)?(l=s.substr(0,r),null!=(l=a(c.extend({},t,{term:l})))?(i(l),s=s.substr(r+1)||\"\",r=0):r++):r++}return{term:s}},e}),u.define(\"select2\u002Fdata\u002FminimumInputLength\",[],function(){function e(e,t,n){this.minimumInputLength=n.get(\"minimumInputLength\"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||\"\",t.term.length\u003Cthis.minimumInputLength?this.trigger(\"results:message\",{message:\"inputTooShort\",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define(\"select2\u002Fdata\u002FmaximumInputLength\",[],function(){function e(e,t,n){this.maximumInputLength=n.get(\"maximumInputLength\"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||\"\",0\u003Cthis.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger(\"results:message\",{message:\"inputTooLong\",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define(\"select2\u002Fdata\u002FmaximumSelectionLength\",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get(\"maximumSelectionLength\"),e.call(this,t,n)}return e.prototype.query=function(t,n,i){var o=this;this.current(function(e){e=null!=e?e.length:0;0\u003Co.maximumSelectionLength&&e>=o.maximumSelectionLength?o.trigger(\"results:message\",{message:\"maximumSelected\",args:{maximum:o.maximumSelectionLength}}):t.call(o,n,i)})},e}),u.define(\"select2\u002Fdropdown\",[\"jquery\",\".\u002Futils\"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('\u003Cspan class=\"select2-dropdown\">\u003Cspan class=\"select2-results\">\u003C\u002Fspan>\u003C\u002Fspan>');return e.attr(\"dir\",this.options.get(\"dir\")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),u.define(\"select2\u002Fdropdown\u002Fsearch\",[\"jquery\",\"..\u002Futils\"],function(s,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),e=s('\u003Cspan class=\"select2-search select2-search--dropdown\">\u003Cinput class=\"select2-search__field\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\" spellcheck=\"false\" role=\"combobox\" aria-autocomplete=\"list\" aria-expanded=\"true\" \u002F>\u003C\u002Fspan>');return this.$searchContainer=e,this.$search=e.find(\"input\"),t.prepend(e),t},t.prototype.bind=function(e,t,n){var i=this,o=t.id+\"-results\";e.call(this,t,n),this.$search.on(\"keydown\",function(e){i.trigger(\"keypress\",e),i._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on(\"input\",function(e){s(this).off(\"keyup\")}),this.$search.on(\"keyup input\",function(e){i.handleSearch(e)}),t.on(\"open\",function(){i.$search.attr(\"tabindex\",0),i.$search.attr(\"aria-owns\",o),i.$search.trigger(\"focus\"),window.setTimeout(function(){i.$search.trigger(\"focus\")},0)}),t.on(\"close\",function(){i.$search.attr(\"tabindex\",-1),i.$search.removeAttr(\"aria-activedescendant\"),i.$search.removeAttr(\"aria-owns\"),i.$search.val(\"\")}),t.on(\"focus\",function(){t.isOpen()||i.$search.trigger(\"focus\")}),t.on(\"results:all\",function(e){null!=e.query.term&&\"\"!==e.query.term||(i.showSearch(e)?i.$searchContainer.removeClass(\"select2-search--hide\"):i.$searchContainer.addClass(\"select2-search--hide\"))}),t.on(\"results:focus\",function(e){i.$search.attr(\"aria-activedescendant\",e.data._resultId)})},t.prototype.handleSearch=function(e){var t;this._keyUpPrevented||(t=this.$search.val(),this.trigger(\"query\",{term:t})),this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),u.define(\"select2\u002Fdropdown\u002FhidePlaceholder\",[],function(){function e(e,t,n,i){this.placeholder=this.normalizePlaceholder(n.get(\"placeholder\")),e.call(this,t,n,i)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return t=\"string\"==typeof t?{id:\"\",text:t}:t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),i=t.length-1;0\u003C=i;i--){var o=t[i];this.placeholder.id===o.id&&n.splice(i,1)}return n},e}),u.define(\"select2\u002Fdropdown\u002FinfiniteScroll\",[\"jquery\"],function(o){function e(e,t,n,i){this.lastParams={},e.call(this,t,n,i),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&this.$results.append(this.$loadingMore)},e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on(\"query\",function(e){i.lastParams=e,i.loading=!0}),t.on(\"query:append\",function(e){i.lastParams=e,i.loading=!0}),this.$results.on(\"scroll\",function(){var e=o.contains(document.documentElement,i.$loadingMore[0]);!i.loading&&e&&(e=i.$results.offset().top+i.$results.outerHeight(!1),i.$loadingMore.offset().top+i.$loadingMore.outerHeight(!1)\u003C=e+50&&i.loadMore())})},e.prototype.loadMore=function(){this.loading=!0;var e=o.extend({},{page:1},this.lastParams);e.page++,this.trigger(\"query:append\",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=o('\u003Cli class=\"select2-results__option select2-results__option--load-more\"role=\"option\" aria-disabled=\"true\">\u003C\u002Fli>'),t=this.options.get(\"translations\").get(\"loadingMore\");return e.html(t(this.lastParams)),e},e}),u.define(\"select2\u002Fdropdown\u002FattachBody\",[\"jquery\",\"..\u002Futils\"],function(c,r){function e(e,t,n){this.$dropdownParent=n.get(\"dropdownParent\")||c(document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var i=this,o=!1;e.call(this,t,n),t.on(\"open\",function(){i._showDropdown(),i._attachPositioningHandler(t),o||(o=!0,t.on(\"results:all\",function(){i._positionDropdown(),i._resizeDropdown()}),t.on(\"results:append\",function(){i._positionDropdown(),i._resizeDropdown()}))}),t.on(\"close\",function(){i._hideDropdown(),i._detachPositioningHandler(t)}),this.$dropdownContainer.on(\"mousedown\",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr(\"class\",n.attr(\"class\")),t.removeClass(\"select2\"),t.addClass(\"select2-container--open\"),t.css({position:\"absolute\",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=c(\"\u003Cspan>\u003C\u002Fspan>\"),e=e.call(this);return t.append(e),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._attachPositioningHandler=function(e,t){var n=this,i=\"scroll.select2.\"+t.id,o=\"resize.select2.\"+t.id,s=\"orientationchange.select2.\"+t.id,t=this.$container.parents().filter(r.hasScroll);t.each(function(){c(this).data(\"select2-scroll-position\",{x:c(this).scrollLeft(),y:c(this).scrollTop()})}),t.on(i,function(e){var t=c(this).data(\"select2-scroll-position\");c(this).scrollTop(t.y)}),c(window).on(i+\" \"+o+\" \"+s,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n=\"scroll.select2.\"+t.id,i=\"resize.select2.\"+t.id,t=\"orientationchange.select2.\"+t.id;this.$container.parents().filter(r.hasScroll).off(n),c(window).off(n+\" \"+i+\" \"+t)},e.prototype._positionDropdown=function(){var e=c(window),t=this.$dropdown.hasClass(\"select2-dropdown--above\"),n=this.$dropdown.hasClass(\"select2-dropdown--below\"),i=null,o=this.$container.offset();o.bottom=o.top+this.$container.outerHeight(!1);var s={height:this.$container.outerHeight(!1)};s.top=o.top,s.bottom=o.top+s.height;var r=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),e=a\u003Co.top-r,a=l>o.bottom+r,l={left:o.left,top:s.bottom},o=this.$dropdownParent,o=(o=\"static\"===o.css(\"position\")?o.offsetParent():o).offset();l.left-=o.left,t||n||(i=\"below\"),a||!e||t?!e&&a&&t&&(i=\"below\"):i=\"above\",(\"above\"==i||t&&\"below\"!==i)&&(l.top=s.top-r),null!=i&&(this.$dropdown.removeClass(\"select2-dropdown--below select2-dropdown--above\").addClass(\"select2-dropdown--\"+i),this.$container.removeClass(\"select2-container--below select2-container--above\").addClass(\"select2-container--\"+i)),this.$dropdownContainer.css(l)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+\"px\"};this.options.get(\"dropdownAutoWidth\")&&(e.minWidth=e.width,e.position=\"relative\",e.width=\"auto\"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),u.define(\"select2\u002Fdropdown\u002FminimumResultsForSearch\",[],function(){function e(e,t,n,i){this.minimumResultsForSearch=n.get(\"minimumResultsForSearch\"),this.minimumResultsForSearch\u003C0&&(this.minimumResultsForSearch=Infinity),e.call(this,t,n,i)}return e.prototype.showSearch=function(e,t){return!(function o(e){for(var t=0,n=0;n\u003Ce.length;n++){var i=e[n];i.children?t+=o(i.children):t++}return t}(t.data.results)\u003Cthis.minimumResultsForSearch)&&e.call(this,t)},e}),u.define(\"select2\u002Fdropdown\u002FselectOnClose\",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on(\"close\",function(e){i._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if(\"select\"===n._type||\"unselect\"===n._type)return}var n=this.getHighlightedResults();n.length\u003C1||(null!=(n=n.data(\"data\")).element&&n.element.selected||null==n.element&&n.selected||this.trigger(\"select\",{data:n}))},e}),u.define(\"select2\u002Fdropdown\u002FcloseOnSelect\",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on(\"select\",function(e){i._selectTriggered(e)}),t.on(\"unselect\",function(e){i._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&n.ctrlKey||this.trigger(\"close\",{originalEvent:n,originalSelect2Event:t})},e}),u.define(\"select2\u002Fi18n\u002Fen\",[],function(){return{errorLoading:function(){return\"The results could not be loaded.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,e=\"Please delete \"+t+\" character\";return 1!=t&&(e+=\"s\"),e},inputTooShort:function(e){return\"Please enter \"+(e.minimum-e.input.length)+\" or more characters\"},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(e){var t=\"You can only select \"+e.maximum+\" item\";return 1!=e.maximum&&(t+=\"s\"),t},noResults:function(){return\"No results found\"},searching:function(){return\"Searching…\"}}}),u.define(\"select2\u002Fdefaults\",[\"jquery\",\"require\",\".\u002Fresults\",\".\u002Fselection\u002Fsingle\",\".\u002Fselection\u002Fmultiple\",\".\u002Fselection\u002Fplaceholder\",\".\u002Fselection\u002FallowClear\",\".\u002Fselection\u002Fsearch\",\".\u002Fselection\u002FeventRelay\",\".\u002Futils\",\".\u002Ftranslation\",\".\u002Fdiacritics\",\".\u002Fdata\u002Fselect\",\".\u002Fdata\u002Farray\",\".\u002Fdata\u002Fajax\",\".\u002Fdata\u002Ftags\",\".\u002Fdata\u002Ftokenizer\",\".\u002Fdata\u002FminimumInputLength\",\".\u002Fdata\u002FmaximumInputLength\",\".\u002Fdata\u002FmaximumSelectionLength\",\".\u002Fdropdown\",\".\u002Fdropdown\u002Fsearch\",\".\u002Fdropdown\u002FhidePlaceholder\",\".\u002Fdropdown\u002FinfiniteScroll\",\".\u002Fdropdown\u002FattachBody\",\".\u002Fdropdown\u002FminimumResultsForSearch\",\".\u002Fdropdown\u002FselectOnClose\",\".\u002Fdropdown\u002FcloseOnSelect\",\".\u002Fi18n\u002Fen\"],function(p,h,f,g,m,y,v,w,_,$,b,t,x,A,C,S,O,E,D,T,q,j,L,k,P,I,M,R,e){function n(){this.reset()}return n.prototype.apply=function(e){var t,n;if(null==(e=p.extend(!0,{},this.defaults,e)).dataAdapter&&(null!=e.ajax?e.dataAdapter=C:null!=e.data?e.dataAdapter=A:e.dataAdapter=x,0\u003Ce.minimumInputLength&&(e.dataAdapter=$.Decorate(e.dataAdapter,E)),0\u003Ce.maximumInputLength&&(e.dataAdapter=$.Decorate(e.dataAdapter,D)),0\u003Ce.maximumSelectionLength&&(e.dataAdapter=$.Decorate(e.dataAdapter,T)),e.tags&&(e.dataAdapter=$.Decorate(e.dataAdapter,S)),null==e.tokenSeparators&&null==e.tokenizer||(e.dataAdapter=$.Decorate(e.dataAdapter,O)),null!=e.query&&(t=h(e.amdBase+\"compat\u002Fquery\"),e.dataAdapter=$.Decorate(e.dataAdapter,t)),null!=e.initSelection&&(t=h(e.amdBase+\"compat\u002FinitSelection\"),e.dataAdapter=$.Decorate(e.dataAdapter,t))),null==e.resultsAdapter&&(e.resultsAdapter=f,null!=e.ajax&&(e.resultsAdapter=$.Decorate(e.resultsAdapter,k)),null!=e.placeholder&&(e.resultsAdapter=$.Decorate(e.resultsAdapter,L)),e.selectOnClose&&(e.resultsAdapter=$.Decorate(e.resultsAdapter,M))),null==e.dropdownAdapter&&(e.multiple?e.dropdownAdapter=q:(n=$.Decorate(q,j),e.dropdownAdapter=n),0!==e.minimumResultsForSearch&&(e.dropdownAdapter=$.Decorate(e.dropdownAdapter,I)),e.closeOnSelect&&(e.dropdownAdapter=$.Decorate(e.dropdownAdapter,R)),null==e.dropdownCssClass&&null==e.dropdownCss&&null==e.adaptDropdownCssClass||(n=h(e.amdBase+\"compat\u002FdropdownCss\"),e.dropdownAdapter=$.Decorate(e.dropdownAdapter,n)),e.dropdownAdapter=$.Decorate(e.dropdownAdapter,P)),null==e.selectionAdapter&&(e.multiple?e.selectionAdapter=m:e.selectionAdapter=g,null!=e.placeholder&&(e.selectionAdapter=$.Decorate(e.selectionAdapter,y)),e.allowClear&&(e.selectionAdapter=$.Decorate(e.selectionAdapter,v)),e.multiple&&(e.selectionAdapter=$.Decorate(e.selectionAdapter,w)),null==e.containerCssClass&&null==e.containerCss&&null==e.adaptContainerCssClass||(l=h(e.amdBase+\"compat\u002FcontainerCss\"),e.selectionAdapter=$.Decorate(e.selectionAdapter,l)),e.selectionAdapter=$.Decorate(e.selectionAdapter,_)),\"string\"==typeof e.language&&(0\u003Ce.language.indexOf(\"-\")?(c=e.language.split(\"-\")[0],e.language=[e.language,c]):e.language=[e.language]),Array.isArray(e.language)){var i=new b;e.language.push(\"en\");for(var o=e.language,s=0;s\u003Co.length;s++){var r=o[s],a={};try{a=b.loadPath(r)}catch(u){try{r=this.defaults.amdLanguageBase+r,a=b.loadPath(r)}catch(d){e.debug&&window.console&&console.warn&&console.warn('Select2: The language file for \"'+r+'\" could not be automatically loaded. A fallback will be used instead.');continue}}i.extend(a)}e.translations=i}else{var l=b.loadPath(this.defaults.amdLanguageBase+\"en\"),c=new b(e.language);c.extend(l),e.translations=c}return e},n.prototype.reset=function(){function r(e){return e.replace(\u002F[^\\u0000-\\u007E]\u002Fg,function(e){return t[e]||e})}this.defaults={amdBase:\".\u002F\",amdLanguageBase:\".\u002Fi18n\u002F\",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:$.escapeMarkup,language:e,matcher:function a(e,t){if(null==e.term||\"\"===e.term.toString().trim())return t;if(t.children&&0\u003Ct.children.length){for(var n=p.extend(!0,{},t),i=t.children.length-1;0\u003C=i;i--)null==a(e,t.children[i])&&n.children.splice(i,1);return 0\u003Cn.children.length?n:a(e,n)}var o=r(t.text).toUpperCase(),s=r(e.term).toUpperCase();return-1\u003Co.indexOf(s)?t:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:\"default\",width:\"resolve\"}},n.prototype.set=function(e,t){var n={};n[p.camelCase(e)]=t;n=$._convertData(n);p.extend(this.defaults,n)},new n}),u.define(\"select2\u002Foptions\",[\"require\",\"jquery\",\".\u002Fdefaults\",\".\u002Futils\"],function(n,s,i,r){function e(e,t){this.options=e,null!=t&&this.fromElement(t),this.options=i.apply(this.options),t&&t.is(\"input\")&&(t=n(this.get(\"amdBase\")+\"compat\u002FinputData\"),this.options.dataAdapter=r.Decorate(this.options.dataAdapter,t))}return e.prototype.fromElement=function(e){var t=[\"select2\"];null==this.options.multiple&&(this.options.multiple=e.prop(\"multiple\")),null==this.options.disabled&&(this.options.disabled=e.prop(\"disabled\")),null==this.options.language&&(e.prop(\"lang\")?this.options.language=e.prop(\"lang\").toLowerCase():e.closest(\"[lang]\").prop(\"lang\")&&(this.options.language=e.closest(\"[lang]\").prop(\"lang\"))),null==this.options.dir&&(e.prop(\"dir\")?this.options.dir=e.prop(\"dir\"):e.closest(\"[dir]\").prop(\"dir\")?this.options.dir=e.closest(\"[dir]\").prop(\"dir\"):this.options.dir=\"ltr\"),e.prop(\"disabled\",this.options.disabled),e.prop(\"multiple\",this.options.multiple),e.data(\"select2Tags\")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags=\"true\"` attributes and will be removed in future versions of Select2.'),e.data(\"data\",e.data(\"select2Tags\")),e.data(\"tags\",!0)),e.data(\"ajaxUrl\")&&(this.options.debug&&window.console&&console.warn&&console.warn(\"Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2.\"),e.attr(\"ajax--url\",e.data(\"ajaxUrl\")),e.data(\"ajax--url\",e.data(\"ajaxUrl\")));var n,i={},i=s.fn.jquery&&\"1.\"==s.fn.jquery.substr(0,2)&&e[0].dataset?s.extend(!0,{},e[0].dataset,e.data()):e.data(),o=s.extend(!0,{},i);for(n in o=r._convertData(o))-1\u003Cs.inArray(n,t)||(s.isPlainObject(this.options[n])?s.extend(this.options[n],o[n]):this.options[n]=o[n]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),u.define(\"select2\u002Fcore\",[\"jquery\",\".\u002Foptions\",\".\u002Futils\",\".\u002Fkeys\"],function(o,s,n,r){var a=function(e,t){null!=e.data(\"select2\")&&e.data(\"select2\").destroy(),this.$element=e,this.id=this._generateId(e),this.options=new s(t=t||{},e),a.__super__.constructor.call(this);var n=e.attr(\"tabindex\")||0;e.data(\"old-tabindex\",n),e.attr(\"tabindex\",\"-1\");t=this.options.get(\"dataAdapter\");this.dataAdapter=new t(e,this.options);n=this.render();this._placeContainer(n);t=this.options.get(\"selectionAdapter\");this.selection=new t(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,n);t=this.options.get(\"dropdownAdapter\");this.dropdown=new t(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,n);n=this.options.get(\"resultsAdapter\");this.results=new n(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var i=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){i.trigger(\"selection:update\",{data:e})}),e.addClass(\"select2-hidden-accessible\"),e.attr(\"aria-hidden\",\"true\"),this._syncAttributes(),e.data(\"select2\",this)};return n.Extend(a,n.Observable),a.prototype._generateId=function(e){return\"select2-\"+(null!=e.attr(\"id\")?e.attr(\"id\"):null!=e.attr(\"name\")?e.attr(\"name\")+\"-\"+n.generateChars(2):n.generateChars(4)).replace(\u002F(:|\\.|\\[|\\]|,)\u002Fg,\"\")},a.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get(\"width\"));null!=t&&e.css(\"width\",t)},a.prototype._resolveWidth=function(e,t){var n=\u002F^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))\u002Fi;if(\"resolve\"==t){var i=this._resolveWidth(e,\"style\");return null!=i?i:this._resolveWidth(e,\"element\")}if(\"element\"==t){i=e.outerWidth(!1);return i\u003C=0?\"auto\":i+\"px\"}if(\"style\"!=t)return t;e=e.attr(\"style\");if(\"string\"!=typeof e)return null;for(var o=e.split(\";\"),s=0,r=o.length;s\u003Cr;s+=1){var a=o[s].replace(\u002F\\s\u002Fg,\"\").match(n);if(null!==a&&1\u003C=a.length)return a[1]}return null},a.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},a.prototype._registerDomEvents=function(){var t=this;this.$element.on(\"change.select2\",function(){t.dataAdapter.current(function(e){t.trigger(\"selection:update\",{data:e})})}),this.$element.on(\"focus.select2\",function(e){t.trigger(\"focus\",e)}),this._syncA=n.bind(this._syncAttributes,this),this._syncS=n.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent(\"onpropertychange\",this._syncA);var e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=e?(this._observer=new e(function(e){o.each(e,t._syncA),o.each(e,t._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener(\"DOMAttrModified\",t._syncA,!1),this.$element[0].addEventListener(\"DOMNodeInserted\",t._syncS,!1),this.$element[0].addEventListener(\"DOMNodeRemoved\",t._syncS,!1))},a.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on(\"*\",function(e,t){n.trigger(e,t)})},a.prototype._registerSelectionEvents=function(){var n=this,i=[\"toggle\",\"focus\"];this.selection.on(\"toggle\",function(){n.toggleDropdown()}),this.selection.on(\"focus\",function(e){n.focus(e)}),this.selection.on(\"*\",function(e,t){-1===o.inArray(e,i)&&n.trigger(e,t)})},a.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on(\"*\",function(e,t){n.trigger(e,t)})},a.prototype._registerResultsEvents=function(){var n=this;this.results.on(\"*\",function(e,t){n.trigger(e,t)})},a.prototype._registerEvents=function(){var i=this;this.on(\"open\",function(){i.$container.addClass(\"select2-container--open\")}),this.on(\"close\",function(){i.$container.removeClass(\"select2-container--open\")}),this.on(\"enable\",function(){i.$container.removeClass(\"select2-container--disabled\")}),this.on(\"disable\",function(){i.$container.addClass(\"select2-container--disabled\")}),this.on(\"blur\",function(){i.$container.removeClass(\"select2-container--focus\")}),this.on(\"query\",function(t){i.isOpen()||i.trigger(\"open\",{}),this.dataAdapter.query(t,function(e){i.trigger(\"results:all\",{data:e,query:t})})}),this.on(\"query:append\",function(t){this.dataAdapter.query(t,function(e){i.trigger(\"results:append\",{data:e,query:t})})}),this.on(\"open\",function(){setTimeout(function(){i.focusOnActiveElement()},1)}),o(document).on(\"keydown\",function(e){var t,n=e.which;i.isOpen()?(n===r.ESC||n===r.UP&&e.altKey?(i.close(),e.preventDefault()):n===r.ENTER||n===r.TAB?(i.trigger(\"results:select\",{}),e.preventDefault()):n===r.SPACE&&e.ctrlKey?(i.trigger(\"results:toggle\",{}),e.preventDefault()):n===r.UP?(i.trigger(\"results:previous\",{}),e.preventDefault()):n===r.DOWN&&(i.trigger(\"results:next\",{}),e.preventDefault()),(t=i.$dropdown.find(\".select2-search__field\")).length||(t=i.$container.find(\".select2-search__field\")),n===r.DOWN||n===r.UP?i.focusOnActiveElement():(t.trigger(\"focus\"),setTimeout(function(){i.focusOnActiveElement()},1e3))):i.hasFocus()&&(n!==r.ENTER&&n!==r.SPACE&&n!==r.DOWN||(i.open(),e.preventDefault()))})},a.prototype.focusOnActiveElement=function(){this.isOpen()&&!n.isTouchscreen()&&this.$results.find(\"li.select2-results__option--highlighted\").trigger(\"focus\")},a.prototype._syncAttributes=function(){this.options.set(\"disabled\",this.$element.prop(\"disabled\")),this.options.get(\"disabled\")?(this.isOpen()&&this.close(),this.trigger(\"disable\",{})):this.trigger(\"enable\",{})},a.prototype._syncSubtree=function(e,t){var n=!1,i=this;if(!e||!e.target||\"OPTION\"===e.target.nodeName||\"OPTGROUP\"===e.target.nodeName){if(t)if(t.addedNodes&&0\u003Ct.addedNodes.length)for(var o=0;o\u003Ct.addedNodes.length;o++)t.addedNodes[o].selected&&(n=!0);else t.removedNodes&&0\u003Ct.removedNodes.length&&(n=!0);else n=!0;n&&this.dataAdapter.current(function(e){i.trigger(\"selection:update\",{data:e})})}},a.prototype.trigger=function(e,t){var n=a.__super__.trigger,i={open:\"opening\",close:\"closing\",select:\"selecting\",unselect:\"unselecting\"};if(t===undefined&&(t={}),e in i){var o={prevented:!1,name:e,args:t};if(n.call(this,i[e],o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},a.prototype.toggleDropdown=function(){this.options.get(\"disabled\")||(this.isOpen()?this.close():this.open())},a.prototype.open=function(){this.isOpen()||this.trigger(\"query\",{})},a.prototype.close=function(){this.isOpen()&&this.trigger(\"close\",{})},a.prototype.isOpen=function(){return this.$container.hasClass(\"select2-container--open\")},a.prototype.hasFocus=function(){return this.$container.hasClass(\"select2-container--focus\")},a.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass(\"select2-container--focus\"),this.trigger(\"focus\",{}))},a.prototype.enable=function(e){this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"enable\")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop(\"disabled\") instead.');e=!(e=null==e||0===e.length?[!0]:e)[0];this.$element.prop(\"disabled\",e)},a.prototype.data=function(){this.options.get(\"debug\")&&0\u003Carguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2(\"data\")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},a.prototype.val=function(e){if(this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"val\")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();e=e[0];Array.isArray(e)&&(e=o.map(e,function(e){return e.toString()})),this.$element.val(e).trigger(\"change\")},a.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent(\"onpropertychange\",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener(\"DOMAttrModified\",this._syncA,!1),this.$element[0].removeEventListener(\"DOMNodeInserted\",this._syncS,!1),this.$element[0].removeEventListener(\"DOMNodeRemoved\",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(\".select2\"),this.$element.attr(\"tabindex\",this.$element.data(\"old-tabindex\")),this.$element.removeClass(\"select2-hidden-accessible\"),this.$element.attr(\"aria-hidden\",\"false\"),this.$element.removeData(\"select2\"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},a.prototype.render=function(){var e=o('\u003Cspan class=\"select2 select2-container\">\u003Cspan class=\"selection\">\u003C\u002Fspan>\u003Cspan class=\"dropdown-wrapper\" aria-hidden=\"true\">\u003C\u002Fspan>\u003C\u002Fspan>');return e.attr(\"dir\",this.options.get(\"dir\")),this.$container=e,this.$container.addClass(\"select2-container--\"+this.options.get(\"theme\")),e.data(\"element\",this.$element),e},a}),u.define(\"select2\u002Fcompat\u002Futils\",[\"jquery\"],function(r){return{syncCssClasses:function(e,t,n){var i,o=[],s=e.attr(\"class\")||0==e.attr(\"class\")?e.attr(\"class\").toString().trim():\"\";s&&r((s=\"\"+s).split(\u002F\\s+\u002F)).each(function(){0===this.indexOf(\"select2-\")&&o.push(this)}),(s=t.attr(\"class\")||0==t.attr(\"class\")?t.attr(\"class\").toString().trim():\"\")&&r((s=\"\"+s).split(\u002F\\s+\u002F)).each(function(){0!==this.indexOf(\"select2-\")&&null!=(i=n(this))&&o.push(i)}),e.attr(\"class\",o.join(\" \"))}}}),u.define(\"select2\u002Fcompat\u002FcontainerCss\",[\"jquery\",\".\u002Futils\"],function(e,s){function r(e){return null}function t(){}return t.prototype.render=function(e){var t=e.call(this),n=this.options.get(\"containerCssClass\")||\"\";\"function\"==typeof n&&(n=n(this.$element));var i,o=this.options.get(\"adaptContainerCssClass\");o=o||r,-1!==n.indexOf(\":all:\")&&(n=n.replace(\":all:\",\"\"),i=o,o=function(e){var t=i(e);return null!=t?t+\" \"+e:e});e=this.options.get(\"containerCss\")||{};return\"function\"==typeof e&&(e=e(this.$element)),s.syncCssClasses(t,this.$element,o),t.css(e),t.addClass(n),t},t}),u.define(\"select2\u002Fcompat\u002FdropdownCss\",[\"jquery\",\".\u002Futils\"],function(e,s){function r(e){return null}function t(){}return t.prototype.render=function(e){var t=e.call(this),n=this.options.get(\"dropdownCssClass\")||\"\";\"function\"==typeof n&&(n=n(this.$element));var i,o=this.options.get(\"adaptDropdownCssClass\");o=o||r,-1!==n.indexOf(\":all:\")&&(n=n.replace(\":all:\",\"\"),i=o,o=function(e){var t=i(e);return null!=t?t+\" \"+e:e});e=this.options.get(\"dropdownCss\")||{};return\"function\"==typeof e&&(e=e(this.$element)),s.syncCssClasses(t,this.$element,o),t.css(e),t.addClass(n),t},t}),u.define(\"select2\u002Fcompat\u002FinitSelection\",[\"jquery\"],function(e){function t(e,t,n){n.get(\"debug\")&&window.console&&console.warn&&console.warn(\"Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2\"),this.initSelection=n.get(\"initSelection\"),this._isInitialized=!1,e.call(this,t,n)}return t.prototype.current=function(e,t){var n=this;this._isInitialized?e.call(this,t):this.initSelection.call(null,this.$element,function(e){n._isInitialized=!0,Array.isArray(e)||(e=[e]),t(e)})},t}),u.define(\"select2\u002Fcompat\u002FinputData\",[\"jquery\"],function(r){function e(e,t,n){this._currentData=[],this._valueSeparator=n.get(\"valueSeparator\")||\",\",\"hidden\"===t.prop(\"type\")&&n.get(\"debug\")&&console&&console.warn&&console.warn(\"Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `\u003Cselect>` element instead.\"),e.call(this,t,n)}return e.prototype.current=function(e,t){for(var n=[],i=0;i\u003Cthis._currentData.length;i++){var o=this._currentData[i];n.push.apply(n,function s(e,t){var n=[];return e.selected||-1!==r.inArray(e.id,t)?(e.selected=!0,n.push(e)):e.selected=!1,e.children&&n.push.apply(n,s(e.children,t)),n}(o,this.$element.val().split(this._valueSeparator)))}t(n)},e.prototype.select=function(e,t){var n;this.options.get(\"multiple\")?(n=this.$element.val(),n+=this._valueSeparator+t.id,this.$element.val(n)):(this.current(function(e){r.map(e,function(e){e.selected=!1})}),this.$element.val(t.id)),this.$element.trigger(\"change\")},e.prototype.unselect=function(e,o){var s=this;o.selected=!1,this.current(function(e){for(var t=[],n=0;n\u003Ce.length;n++){var i=e[n];o.id!=i.id&&t.push(i.id)}s.$element.val(t.join(s._valueSeparator)),s.$element.trigger(\"change\")})},e.prototype.query=function(e,t,n){for(var i=[],o=0;o\u003Cthis._currentData.length;o++){var s=this._currentData[o],s=this.matches(t,s);null!==s&&i.push(s)}n({results:i})},e.prototype.addOptions=function(e,t){t=r.map(t,function(e){return r.data(e[0],\"data\")});this._currentData.push.apply(this._currentData,t)},e}),u.define(\"select2\u002Fcompat\u002Fmatcher\",[\"jquery\"],function(r){return function(s){return function(e,t){var n=r.extend(!0,{},t);if(null==e.term||\"\"===e.term.trim())return n;if(t.children){for(var i=t.children.length-1;0\u003C=i;i--){var o=t.children[i];s(e.term,o.text,o)||n.children.splice(i,1)}if(0\u003Cn.children.length)return n}return s(e.term,t.text,t)?n:null}}}),u.define(\"select2\u002Fcompat\u002Fquery\",[],function(){function e(e,t,n){n.get(\"debug\")&&window.console&&console.warn&&console.warn(\"Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2.\"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.callback=n,this.options.get(\"query\").call(null,t)},e}),u.define(\"select2\u002Fdropdown\u002FattachContainer\",[],function(){function e(e,t,n){e.call(this,t,n)}return e.prototype.position=function(e,t,n){n.find(\".dropdown-wrapper\").append(t),t.addClass(\"select2-dropdown--below\"),n.addClass(\"select2-container--below\")},e}),u.define(\"select2\u002Fdropdown\u002FstopPropagation\",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$dropdown.on([\"blur\",\"change\",\"click\",\"dblclick\",\"focus\",\"focusin\",\"focusout\",\"input\",\"keydown\",\"keyup\",\"keypress\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseover\",\"mouseup\",\"search\",\"touchend\",\"touchstart\"].join(\" \"),function(e){e.stopPropagation()})},e}),u.define(\"select2\u002Fselection\u002FstopPropagation\",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$selection.on([\"blur\",\"change\",\"click\",\"dblclick\",\"focus\",\"focusin\",\"focusout\",\"input\",\"keydown\",\"keyup\",\"keypress\",\"mousedown\",\"mouseenter\",\"mouseleave\",\"mousemove\",\"mouseover\",\"mouseup\",\"search\",\"touchend\",\"touchstart\"].join(\" \"),function(e){e.stopPropagation()})},e}),\r\n+\u002F*!\r\n+ * jQuery Mousewheel 3.1.13\r\n+ *\r\n+ * Copyright jQuery Foundation and other contributors\r\n+ * Released under the MIT license\r\n+ * http:\u002F\u002Fjquery.org\u002Flicense\r\n+ *\u002F\r\n a=function(u){var d,p,e=[\"wheel\",\"mousewheel\",\"DOMMouseScroll\",\"MozMousePixelScroll\"],t=\"onwheel\"in document||9\u003C=document.documentMode?[\"wheel\"]:[\"mousewheel\",\"DomMouseScroll\",\"MozMousePixelScroll\"],h=Array.prototype.slice;if(u.event.fixHooks)for(var n=e.length;n;)u.event.fixHooks[e[--n]]=u.event.mouseHooks;var f=u.event.special.mousewheel={version:\"3.1.12\",setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],i,!1);else this.onmousewheel=i;u.data(this,\"mousewheel-line-height\",f.getLineHeight(this)),u.data(this,\"mousewheel-page-height\",f.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],i,!1);else this.onmousewheel=null;u.removeData(this,\"mousewheel-line-height\"),u.removeData(this,\"mousewheel-page-height\")},getLineHeight:function(e){var t=u(e),e=t[\"offsetParent\"in u.fn?\"offsetParent\":\"parent\"]();return e.length||(e=u(\"body\")),parseInt(e.css(\"fontSize\"),10)||parseInt(t.css(\"fontSize\"),10)||16},getPageHeight:function(e){return u(e).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function i(e){var t,n,i=e||window.event,o=h.call(arguments,1),s=0,r=0,a=0,l=0,c=0;if((e=u.event.fix(i)).type=\"mousewheel\",\"detail\"in i&&(a=-1*i.detail),\"wheelDelta\"in i&&(a=i.wheelDelta),\"wheelDeltaY\"in i&&(a=i.wheelDeltaY),\"wheelDeltaX\"in i&&(r=-1*i.wheelDeltaX),\"axis\"in i&&i.axis===i.HORIZONTAL_AXIS&&(r=-1*a,a=0),s=0===a?r:a,\"deltaY\"in i&&(s=a=-1*i.deltaY),\"deltaX\"in i&&(r=i.deltaX,0===a&&(s=-1*r)),0!==a||0!==r)return 1===i.deltaMode?(s*=t=u.data(this,\"mousewheel-line-height\"),a*=t,r*=t):2===i.deltaMode&&(s*=n=u.data(this,\"mousewheel-page-height\"),a*=n,r*=n),n=Math.max(Math.abs(a),Math.abs(r)),(!p||n\u003Cp)&&m(i,p=n)&&(p\u002F=40),m(i,n)&&(s\u002F=40,r\u002F=40,a\u002F=40),s=Math[1\u003C=s?\"floor\":\"ceil\"](s\u002Fp),r=Math[1\u003C=r?\"floor\":\"ceil\"](r\u002Fp),a=Math[1\u003C=a?\"floor\":\"ceil\"](a\u002Fp),f.settings.normalizeOffset&&this.getBoundingClientRect&&(n=this.getBoundingClientRect(),l=e.clientX-n.left,c=e.clientY-n.top),e.deltaX=r,e.deltaY=a,e.deltaFactor=p,e.offsetX=l,e.offsetY=c,e.deltaMode=0,o.unshift(e,s,r,a),d&&clearTimeout(d),d=setTimeout(g,200),(u.event.dispatch||u.event.handle).apply(this,o)}function g(){p=null}function m(e,t){return f.settings.adjustOldDeltas&&\"mousewheel\"===e.type&&t%120==0}u.fn.extend({mousewheel:function(e){return e?this.on(\"mousewheel\",e):this.trigger(\"mousewheel\")},unmousewheel:function(e){return this.off(\"mousewheel\",e)}})},\"function\"==typeof u.define&&u.define.amd?u.define(\"jquery-mousewheel\",[\"jquery\"],a):\"object\"==typeof exports?module.exports=a:a(t),u.define(\"jquery.select2\",[\"jquery\",\"jquery-mousewheel\",\".\u002Fselect2\u002Fcore\",\".\u002Fselect2\u002Fdefaults\"],function(o,e,s,t){var r;return null==o.fn.selectWoo&&(r=[\"open\",\"close\",\"destroy\"],o.fn.selectWoo=function(t){if(\"object\"==typeof(t=t||{}))return this.each(function(){var e=o.extend(!0,{},t);new s(o(this),e)}),this;if(\"string\"!=typeof t)throw new Error(\"Invalid arguments for Select2: \"+t);var n,i=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=o(this).data(\"select2\");null==e&&window.console&&console.error&&console.error(\"The select2('\"+t+\"') method was called on an element that is not using Select2.\"),n=e[t].apply(e,i)}),-1\u003Co.inArray(t,r)?this:n}),null!=o.fn.select2&&null!=o.fn.select2.defaults&&(o.fn.selectWoo.defaults=o.fn.select2.defaults),null==o.fn.selectWoo.defaults&&(o.fn.selectWoo.defaults=t),o.fn.select2=o.fn.select2||o.fn.selectWoo,s}),{define:u.define,require:u.require});function _(e,t){return i.call(e,t)}function l(e,t){var n,i,o,s,r,a,l,c,u,d,p=t&&t.split(\"\u002F\"),h=y.map,f=h&&h[\"*\"]||{};if(e){for(t=(e=e.split(\"\u002F\")).length-1,y.nodeIdCompat&&w.test(e[t])&&(e[t]=e[t].replace(w,\"\")),\".\"===e[0].charAt(0)&&p&&(e=p.slice(0,p.length-1).concat(e)),c=0;c\u003Ce.length;c++)\".\"===(d=e[c])?(e.splice(c,1),--c):\"..\"===d&&(0===c||1===c&&\"..\"===e[2]||\"..\"===e[c-1]||0\u003Cc&&(e.splice(c-1,2),c-=2));e=e.join(\"\u002F\")}if((p||f)&&h){for(c=(n=e.split(\"\u002F\")).length;0\u003Cc;--c){if(i=n.slice(0,c).join(\"\u002F\"),p)for(u=p.length;0\u003Cu;--u)if(o=(o=h[p.slice(0,u).join(\"\u002F\")])&&o[i]){s=o,r=c;break}if(s)break;!a&&f&&f[i]&&(a=f[i],l=c)}!s&&a&&(s=a,r=l),s&&(n.splice(0,r,s),e=n.join(\"\u002F\"))}return e}function b(t,n){return function(){var e=o.call(arguments,0);return\"string\"!=typeof e[0]&&1===e.length&&e.push(null),r.apply(p,e.concat([t,n]))}}function x(e){var t;if(_(m,e)&&(t=m[e],delete m[e],v[e]=!0,s.apply(p,t)),!_(g,e)&&!_(v,e))throw new Error(\"No \"+e);return g[e]}function c(e){var t,n=e?e.indexOf(\"!\"):-1;return-1\u003Cn&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function A(e){return e?c(e):[]}var u=a.require(\"jquery.select2\");return t.fn.select2.amd=a,t.fn.selectWoo.amd=a,u});\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fchartjs\u002Fchart.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fchartjs\u002Fchart.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fchartjs\u002Fchart.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fchartjs\u002Fchart.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,14 +1,14 @@\n-\u002F*!\n- * Chart.js v4.5.1\n- * https:\u002F\u002Fwww.chartjs.org\n- * (c) 2025 Chart.js Contributors\n- * Released under the MIT License\n- *\u002F\n-!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){\"use strict\";var t=Object.freeze({__proto__:null,get Colors(){return Jo},get Decimation(){return ta},get Filler(){return ba},get Legend(){return Ma},get SubTitle(){return Pa},get Title(){return ka},get Tooltip(){return Na}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return\"[object\"===e.slice(0,7)&&\"Array]\"===e.slice(-6)}function o(t){return null!==t&&\"[object Object]\"===Object.prototype.toString.call(t)}function a(t){return(\"number\"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>\"string\"==typeof t&&t.endsWith(\"%\")?parseFloat(t)\u002F100:+t\u002Fe,c=(t,e)=>\"string\"==typeof t&&t.endsWith(\"%\")?parseFloat(t)\u002F100*e:+t;function d(t,e,i){if(t&&\"function\"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a\u003Cr;a++)e.call(i,t[a],a);else if(o(t))for(l=Object.keys(t),r=l.length,a=0;a\u003Cr;a++)e.call(i,t[l[a]],l[a])}function f(t,e){let i,s,n,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,s=t.length;i\u003Cs;++i)if(n=t[i],o=e[i],n.datasetIndex!==o.datasetIndex||n.index!==o.index)return!1;return!0}function g(t){if(n(t))return t.map(g);if(o(t)){const e=Object.create(null),i=Object.keys(t),s=i.length;let n=0;for(;n\u003Cs;++n)e[i[n]]=g(t[i[n]]);return e}return t}function p(t){return-1===[\"__proto__\",\"prototype\",\"constructor\"].indexOf(t)}function m(t,e,i,s){if(!p(t))return;const n=e[t],a=i[t];o(n)&&o(a)?x(n,a,s):e[t]=g(a)}function x(t,e,i){const s=n(e)?e:[e],a=s.length;if(!o(t))return t;const r=(i=i||{}).merger||m;let l;for(let e=0;e\u003Ca;++e){if(l=s[e],!o(l))continue;const n=Object.keys(l);for(let e=0,s=n.length;e\u003Cs;++e)r(n[e],t,l,i)}return t}function b(t,e){return x(t,e,{merger:_})}function _(t,e,i){if(!p(t))return;const s=e[t],n=i[t];o(s)&&o(n)?b(s,n):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=g(n))}const y={\"\":t=>t,x:t=>t.x,y:t=>t.y};function v(t){const e=t.split(\".\"),i=[];let s=\"\";for(const t of e)s+=t,s.endsWith(\"\\\\\")?s=s.slice(0,-1)+\".\":(i.push(s),s=\"\");return i}function M(t,e){const i=y[e]||(y[e]=function(t){const e=v(t);return t=>{for(const i of e){if(\"\"===i)break;t=t&&t[i]}return t}}(e));return i(t)}function w(t){return t.charAt(0).toUpperCase()+t.slice(1)}const k=t=>void 0!==t,S=t=>\"function\"==typeof t,P=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function D(t){return\"mouseup\"===t.type||\"click\"===t.type||\"contextmenu\"===t.type}const C=Math.PI,O=2*C,A=O+C,T=Number.POSITIVE_INFINITY,L=C\u002F180,E=C\u002F2,R=C\u002F4,I=2*C\u002F3,z=Math.log10,F=Math.sign;function V(t,e,i){return Math.abs(t-e)\u003Ci}function B(t){const e=Math.round(t);t=V(t,e,t\u002F1e3)?e:t;const i=Math.pow(10,Math.floor(z(t))),s=t\u002Fi;return(s\u003C=1?1:s\u003C=2?2:s\u003C=5?5:10)*i}function W(t){const e=[],i=Math.sqrt(t);let s;for(s=1;s\u003Ci;s++)t%s==0&&(e.push(s),e.push(t\u002Fs));return i===(0|i)&&e.push(i),e.sort(((t,e)=>t-e)).pop(),e}function N(t){return!function(t){return\"symbol\"==typeof t||\"object\"==typeof t&&null!==t&&!(Symbol.toPrimitive in t||\"toString\"in t||\"valueOf\"in t)}(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function H(t,e){const i=Math.round(t);return i-e\u003C=t&&i+e>=t}function j(t,e,i){let s,n,o;for(s=0,n=t.length;s\u003Cn;s++)o=t[s][i],isNaN(o)||(e.min=Math.min(e.min,o),e.max=Math.max(e.max,o))}function $(t){return t*(C\u002F180)}function Y(t){return t*(180\u002FC)}function U(t){if(!a(t))return;let e=1,i=0;for(;Math.round(t*e)\u002Fe!==t;)e*=10,i++;return i}function X(t,e){const i=e.x-t.x,s=e.y-t.y,n=Math.sqrt(i*i+s*s);let o=Math.atan2(s,i);return o\u003C-.5*C&&(o+=O),{angle:o,distance:n}}function q(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function K(t,e){return(t-e+A)%O-C}function G(t){return(t%O+O)%O}function J(t,e,i,s){const n=G(t),o=G(e),a=G(i),r=G(o-n),l=G(a-n),h=G(n-o),c=G(n-a);return n===o||n===a||s&&o===a||r>l&&h\u003Cc}function Z(t,e,i){return Math.max(e,Math.min(i,t))}function Q(t){return Z(t,-32768,32767)}function tt(t,e,i,s=1e-6){return t>=Math.min(e,i)-s&&t\u003C=Math.max(e,i)+s}function et(t,e,i){i=i||(i=>t[i]\u003Ce);let s,n=t.length-1,o=0;for(;n-o>1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const it=(t,e,i,s)=>et(t,i,s?s=>{const n=t[s][e];return n\u003Ci||n===i&&t[s+1][e]===i}:s=>t[s][e]\u003Ci),st=(t,e,i)=>et(t,i,(s=>t[s][e]>=i));function nt(t,e,i){let s=0,n=t.length;for(;s\u003Cn&&t[s]\u003Ce;)s++;for(;n>s&&t[n-1]>i;)n--;return s>0||n\u003Ct.length?t.slice(s,n):t}const ot=[\"push\",\"pop\",\"shift\",\"splice\",\"unshift\"];function at(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,\"_chartjs\",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),ot.forEach((e=>{const i=\"_onData\"+w(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{\"function\"==typeof t[i]&&t[i](...e)})),n}})})))}function rt(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s.indexOf(e);-1!==n&&s.splice(n,1),s.length>0||(ot.forEach((e=>{delete t[e]})),delete t._chartjs)}function lt(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const ht=\"undefined\"==typeof window?function(t){return t()}:window.requestAnimationFrame;function ct(t,e){let i=[],s=!1;return function(...n){i=n,s||(s=!0,ht.call(window,(()=>{s=!1,t.apply(e,i)})))}}function dt(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}const ut=t=>\"start\"===t?\"left\":\"end\"===t?\"right\":\"center\",ft=(t,e,i)=>\"start\"===t?e:\"end\"===t?i:(e+i)\u002F2,gt=(t,e,i,s)=>t===(s?\"left\":\"right\")?i:\"center\"===t?(e+i)\u002F2:e;function pt(t,e,i){const n=e.length;let o=0,a=n;if(t._sorted){const{iScale:r,vScale:l,_parsed:h}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,d=r.axis,{min:u,max:f,minDefined:g,maxDefined:p}=r.getUserBounds();if(g){if(o=Math.min(it(h,d,u).lo,i?n:it(e,d,r.getPixelForValue(u)).lo),c){const t=h.slice(0,o+1).reverse().findIndex((t=>!s(t[l.axis])));o-=Math.max(0,t)}o=Z(o,0,n-1)}if(p){let t=Math.max(it(h,r.axis,f,!0).hi+1,i?0:it(e,d,r.getPixelForValue(f),!0).hi+1);if(c){const e=h.slice(t-1).findIndex((t=>!s(t[l.axis])));t+=Math.max(0,e)}a=Z(t,o,n)-o}else a=n-o}return{start:o,count:a}}function mt(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}class xt{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=ht.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,\"progress\")),n.length||(i.running=!1,this._notify(s,i,t,\"complete\"),i.initial=!1),e+=n.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),\"complete\")}remove(t){return this._charts.delete(t)}}var bt=new xt;\n-\u002F*!\n- * @kurkle\u002Fcolor v0.3.2\n- * https:\u002F\u002Fgithub.com\u002Fkurkle\u002Fcolor#readme\n- * (c) 2023 Jukka Kurkela\n- * Released under the MIT License\n- *\u002Ffunction _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t\u002F2.55)\u002F100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[...\"0123456789ABCDEF\"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?\"#\"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t\u003C255?e(t):\"\")(t.a,e):void 0}const Tt=\u002F^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$\u002F;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t\u002F30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t\u002F60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1\u002F(e+i),e*=n,i*=n),n=0;n\u003C3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r\u002F255,i=t.g\u002F255,s=t.b\u002F255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)\u002F2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h\u002F(2-n-o):h\u002F(n+o),r=function(t,e,i,s,n){return t===n?(e-i)\u002Fs+(e\u003Ci?6:0):e===n?(i-t)\u002Fs+2:(t-e)\u002Fs+4}(e,i,s,h,n),r=60*r+.5),[0|r,l||0,a]}function zt(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s)).map(Mt)}function Ft(t,e,i){return zt(Lt,t,e,i)}function Vt(t){return(t%360+360)%360}function Bt(t){const e=Tt.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=e[6]?vt(+e[5]):Mt(+e[5]));const n=Vt(+e[2]),o=+e[3]\u002F100,a=+e[4]\u002F100;return i=\"hwb\"===e[1]?function(t,e,i){return zt(Rt,t,e,i)}(n,o,a):\"hsv\"===e[1]?function(t,e,i){return zt(Et,t,e,i)}(n,o,a):Ft(n,o,a),{r:i[0],g:i[1],b:i[2],a:s}}const Wt={x:\"dark\",Z:\"light\",Y:\"re\",X:\"blu\",W:\"gr\",V:\"medium\",U:\"slate\",A:\"ee\",T:\"ol\",S:\"or\",B:\"ra\",C:\"lateg\",D:\"ights\",R:\"in\",Q:\"turquois\",E:\"hi\",P:\"ro\",O:\"al\",N:\"le\",M:\"de\",L:\"yello\",F:\"en\",K:\"ch\",G:\"arks\",H:\"ea\",I:\"ightg\",J:\"wh\"},Nt={OiceXe:\"f0f8ff\",antiquewEte:\"faebd7\",aqua:\"ffff\",aquamarRe:\"7fffd4\",azuY:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"0\",blanKedOmond:\"ffebcd\",Xe:\"ff\",XeviTet:\"8a2be2\",bPwn:\"a52a2a\",burlywood:\"deb887\",caMtXe:\"5f9ea0\",KartYuse:\"7fff00\",KocTate:\"d2691e\",cSO:\"ff7f50\",cSnflowerXe:\"6495ed\",cSnsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"ffff\",xXe:\"8b\",xcyan:\"8b8b\",xgTMnPd:\"b8860b\",xWay:\"a9a9a9\",xgYF:\"6400\",xgYy:\"a9a9a9\",xkhaki:\"bdb76b\",xmagFta:\"8b008b\",xTivegYF:\"556b2f\",xSange:\"ff8c00\",xScEd:\"9932cc\",xYd:\"8b0000\",xsOmon:\"e9967a\",xsHgYF:\"8fbc8f\",xUXe:\"483d8b\",xUWay:\"2f4f4f\",xUgYy:\"2f4f4f\",xQe:\"ced1\",xviTet:\"9400d3\",dAppRk:\"ff1493\",dApskyXe:\"bfff\",dimWay:\"696969\",dimgYy:\"696969\",dodgerXe:\"1e90ff\",fiYbrick:\"b22222\",flSOwEte:\"fffaf0\",foYstWAn:\"228b22\",fuKsia:\"ff00ff\",gaRsbSo:\"dcdcdc\",ghostwEte:\"f8f8ff\",gTd:\"ffd700\",gTMnPd:\"daa520\",Way:\"808080\",gYF:\"8000\",gYFLw:\"adff2f\",gYy:\"808080\",honeyMw:\"f0fff0\",hotpRk:\"ff69b4\",RdianYd:\"cd5c5c\",Rdigo:\"4b0082\",ivSy:\"fffff0\",khaki:\"f0e68c\",lavFMr:\"e6e6fa\",lavFMrXsh:\"fff0f5\",lawngYF:\"7cfc00\",NmoncEffon:\"fffacd\",ZXe:\"add8e6\",ZcSO:\"f08080\",Zcyan:\"e0ffff\",ZgTMnPdLw:\"fafad2\",ZWay:\"d3d3d3\",ZgYF:\"90ee90\",ZgYy:\"d3d3d3\",ZpRk:\"ffb6c1\",ZsOmon:\"ffa07a\",ZsHgYF:\"20b2aa\",ZskyXe:\"87cefa\",ZUWay:\"778899\",ZUgYy:\"778899\",ZstAlXe:\"b0c4de\",ZLw:\"ffffe0\",lime:\"ff00\",limegYF:\"32cd32\",lRF:\"faf0e6\",magFta:\"ff00ff\",maPon:\"800000\",VaquamarRe:\"66cdaa\",VXe:\"cd\",VScEd:\"ba55d3\",VpurpN:\"9370db\",VsHgYF:\"3cb371\",VUXe:\"7b68ee\",VsprRggYF:\"fa9a\",VQe:\"48d1cc\",VviTetYd:\"c71585\",midnightXe:\"191970\",mRtcYam:\"f5fffa\",mistyPse:\"ffe4e1\",moccasR:\"ffe4b5\",navajowEte:\"ffdead\",navy:\"80\",Tdlace:\"fdf5e6\",Tive:\"808000\",TivedBb:\"6b8e23\",Sange:\"ffa500\",SangeYd:\"ff4500\",ScEd:\"da70d6\",pOegTMnPd:\"eee8aa\",pOegYF:\"98fb98\",pOeQe:\"afeeee\",pOeviTetYd:\"db7093\",papayawEp:\"ffefd5\",pHKpuff:\"ffdab9\",peru:\"cd853f\",pRk:\"ffc0cb\",plum:\"dda0dd\",powMrXe:\"b0e0e6\",purpN:\"800080\",YbeccapurpN:\"663399\",Yd:\"ff0000\",Psybrown:\"bc8f8f\",PyOXe:\"4169e1\",saddNbPwn:\"8b4513\",sOmon:\"fa8072\",sandybPwn:\"f4a460\",sHgYF:\"2e8b57\",sHshell:\"fff5ee\",siFna:\"a0522d\",silver:\"c0c0c0\",skyXe:\"87ceeb\",UXe:\"6a5acd\",UWay:\"708090\",UgYy:\"708090\",snow:\"fffafa\",sprRggYF:\"ff7f\",stAlXe:\"4682b4\",tan:\"d2b48c\",teO:\"8080\",tEstN:\"d8bfd8\",tomato:\"ff6347\",Qe:\"40e0d0\",viTet:\"ee82ee\",JHt:\"f5deb3\",wEte:\"ffffff\",wEtesmoke:\"f5f5f5\",Lw:\"ffff00\",LwgYF:\"9acd32\"};let Ht;function jt(t){Ht||(Ht=function(){const t={},e=Object.keys(Nt),i=Object.keys(Wt);let s,n,o,a,r;for(s=0;s\u003Ce.length;s++){for(a=r=e[s],n=0;n\u003Ci.length;n++)o=i[n],r=r.replace(o,Wt[o]);o=parseInt(Nt[a],16),t[r]=[o>>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=\u002F^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,\u002F]+([-+.e\\d]+)(%)?)?\\s*\\)$\u002F;const Yt=t=>t\u003C=.0031308?12.92*t:1.055*Math.pow(t,1\u002F2.4)-.055,Ut=t=>t\u003C=.04045?t\u002F12.92:Math.pow((t+.055)\u002F1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=Ft(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function qt(t,e){return t?Object.assign(e||{},t):t}function Kt(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Mt(t[3]))):(e=qt(t,{r:0,g:0,b:0,a:1})).a=Mt(e.a),e}function Gt(t){return\"r\"===t.charAt(0)?function(t){const e=$t.exec(t);let i,s,n,o=255;if(e){if(e[7]!==i){const t=+e[7];o=e[8]?vt(t):yt(255*t,0,255)}return i=+e[1],s=+e[3],n=+e[5],i=255&(e[2]?vt(i):yt(i,0,255)),s=255&(e[4]?vt(s):yt(s,0,255)),n=255&(e[6]?vt(n):yt(n,0,255)),{r:i,g:s,b:n,a:o}}}(t):Bt(t)}class Jt{constructor(t){if(t instanceof Jt)return t;const e=typeof t;let i;var s,n,o;\"object\"===e?i=Kt(t):\"string\"===e&&(o=(s=t).length,\"#\"===s[0]&&(4===o||5===o?n={r:255&17*St[s[1]],g:255&17*St[s[2]],b:255&17*St[s[3]],a:5===o?17*St[s[4]]:255}:7!==o&&9!==o||(n={r:St[s[1]]\u003C\u003C4|St[s[2]],g:St[s[3]]\u003C\u003C4|St[s[4]],b:St[s[5]]\u003C\u003C4|St[s[6]],a:9===o?St[s[7]]\u003C\u003C4|St[s[8]]:255})),i=n||jt(t)||Gt(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=qt(this._rgb);return t&&(t.a=wt(t.a)),t}set rgb(t){this._rgb=Kt(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a\u003C255?`rgba(${t.r}, ${t.g}, ${t.b}, ${wt(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?At(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=It(t),i=e[0],s=kt(e[1]),n=kt(e[2]);return t.a\u003C255?`hsla(${i}, ${s}%, ${n}%, ${wt(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,s=t.rgb;let n;const o=e===n?.5:e,a=2*o-1,r=i.a-s.a,l=((a*r==-1?a:(a+r)\u002F(1+a*r))+1)\u002F2;n=1-l,i.r=255&l*i.r+n*s.r+.5,i.g=255&l*i.g+n*s.g+.5,i.b=255&l*i.b+n*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const s=Ut(wt(t.r)),n=Ut(wt(t.g)),o=Ut(wt(t.b));return{r:Mt(Yt(s+i*(Ut(wt(e.r))-s))),g:Mt(Yt(n+i*(Ut(wt(e.g))-n))),b:Mt(Yt(o+i*(Ut(wt(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new Jt(this.rgb)}alpha(t){return this._rgb.a=Mt(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=_t(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Xt(this._rgb,2,t),this}darken(t){return Xt(this._rgb,2,-t),this}saturate(t){return Xt(this._rgb,1,t),this}desaturate(t){return Xt(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=It(t);i[0]=Vt(i[0]+e),i=Ft(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function Zt(t){if(t&&\"object\"==typeof t){const e=t.toString();return\"[object CanvasPattern]\"===e||\"[object CanvasGradient]\"===e}return!1}function Qt(t){return Zt(t)?t:new Jt(t)}function te(t){return Zt(t)?t:new Jt(t).saturate(.5).darken(.1).hexString()}const ee=[\"x\",\"y\",\"borderWidth\",\"radius\",\"tension\"],ie=[\"color\",\"borderColor\",\"backgroundColor\"];const se=new Map;function ne(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=se.get(i);return s||(s=new Intl.NumberFormat(t,e),se.set(i,s)),s}(e,i).format(t)}const oe={values:t=>n(t)?t:\"\"+t,numeric(t,e,i){if(0===t)return\"0\";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e\u003C1e-4||e>1e15)&&(n=\"scientific\"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=z(Math.abs(o)),r=isNaN(a)?1:Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),ne(t,s,l)},logarithmic(t,e,i){if(0===t)return\"0\";const s=i[e].significand||t\u002FMath.pow(10,Math.floor(z(t)));return[1,2,3,5,10,15].includes(s)||e>.8*i.length?oe.numeric.call(this,t,e,i):\"\"}};var ae={formatters:oe};const re=Object.create(null),le=Object.create(null);function he(t,e){if(!e)return t;const i=e.split(\".\");for(let e=0,s=i.length;e\u003Cs;++e){const s=i[e];t=t[s]||(t[s]=Object.create(null))}return t}function ce(t,e,i){return\"string\"==typeof e?x(he(t,e),i):x(he(t,\"\"),e)}class de{constructor(t,e){this.animation=void 0,this.backgroundColor=\"rgba(0,0,0,0.1)\",this.borderColor=\"rgba(0,0,0,0.1)\",this.color=\"#666\",this.datasets={},this.devicePixelRatio=t=>t.chart.platform.getDevicePixelRatio(),this.elements={},this.events=[\"mousemove\",\"mouseout\",\"click\",\"touchstart\",\"touchmove\"],this.font={family:\"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",size:12,style:\"normal\",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>te(e.backgroundColor),this.hoverBorderColor=(t,e)=>te(e.borderColor),this.hoverColor=(t,e)=>te(e.color),this.indexAxis=\"x\",this.interaction={mode:\"nearest\",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return ce(this,t,e)}get(t){return he(this,t)}describe(t,e){return ce(le,t,e)}override(t,e){return ce(re,t,e)}route(t,e,i,s){const n=he(this,t),a=he(this,i),r=\"_\"+e;Object.defineProperties(n,{[r]:{value:n[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[r],e=a[s];return o(t)?Object.assign({},e,t):l(t,e)},set(t){this[r]=t}}})}apply(t){t.forEach((t=>t(this)))}}var ue=new de({_scriptable:t=>!t.startsWith(\"on\"),_indexable:t=>\"events\"!==t,hover:{_fallback:\"interaction\"},interaction:{_scriptable:!1,_indexable:!1}},[function(t){t.set(\"animation\",{delay:void 0,duration:1e3,easing:\"easeOutQuart\",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe(\"animation\",{_fallback:!1,_indexable:!1,_scriptable:t=>\"onProgress\"!==t&&\"onComplete\"!==t&&\"fn\"!==t}),t.set(\"animations\",{colors:{type:\"color\",properties:ie},numbers:{type:\"number\",properties:ee}}),t.describe(\"animations\",{_fallback:\"animation\"}),t.set(\"transitions\",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:\"transparent\"},visible:{type:\"boolean\",duration:0}}},hide:{animations:{colors:{to:\"transparent\"},visible:{type:\"boolean\",easing:\"linear\",fn:t=>0|t}}}})},function(t){t.set(\"layout\",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(t){t.set(\"scale\",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:\"ticks\",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:\"\",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:\"\",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ae.formatters.values,minor:{},major:{},align:\"center\",crossAlign:\"near\",showLabelBackdrop:!1,backdropColor:\"rgba(255, 255, 255, 0.75)\",backdropPadding:2}}),t.route(\"scale.ticks\",\"color\",\"\",\"color\"),t.route(\"scale.grid\",\"color\",\"\",\"borderColor\"),t.route(\"scale.border\",\"color\",\"\",\"borderColor\"),t.route(\"scale.title\",\"color\",\"\",\"color\"),t.describe(\"scale\",{_fallback:!1,_scriptable:t=>!t.startsWith(\"before\")&&!t.startsWith(\"after\")&&\"callback\"!==t&&\"parser\"!==t,_indexable:t=>\"borderDash\"!==t&&\"tickBorderDash\"!==t&&\"dash\"!==t}),t.describe(\"scales\",{_fallback:\"scale\"}),t.describe(\"scale.ticks\",{_scriptable:t=>\"backdropPadding\"!==t&&\"callback\"!==t,_indexable:t=>\"backdropPadding\"!==t})}]);function fe(){return\"undefined\"!=typeof window&&\"undefined\"!=typeof document}function ge(t){let e=t.parentNode;return e&&\"[object ShadowRoot]\"===e.toString()&&(e=e.host),e}function pe(t,e,i){let s;return\"string\"==typeof t?(s=parseInt(t,10),-1!==t.indexOf(\"%\")&&(s=s\u002F100*e.parentNode[i])):s=t,s}const me=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);function xe(t,e){return me(t).getPropertyValue(e)}const be=[\"top\",\"right\",\"bottom\",\"left\"];function _e(t,e,i){const s={};i=i?\"-\"+i:\"\";for(let n=0;n\u003C4;n++){const o=be[n];s[o]=parseFloat(t[e+\"-\"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}const ye=(t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot);function ve(t,e){if(\"native\"in t)return t;const{canvas:i,currentDevicePixelRatio:s}=e,n=me(i),o=\"border-box\"===n.boxSizing,a=_e(n,\"padding\"),r=_e(n,\"border\",\"width\"),{x:l,y:h,box:c}=function(t,e){const i=t.touches,s=i&&i.length?i[0]:t,{offsetX:n,offsetY:o}=s;let a,r,l=!1;if(ye(n,o,t.target))a=n,r=o;else{const t=e.getBoundingClientRect();a=s.clientX-t.left,r=s.clientY-t.top,l=!0}return{x:a,y:r,box:l}}(t,i),d=a.left+(c&&r.left),u=a.top+(c&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)\u002Ff*i.width\u002Fs),y:Math.round((h-u)\u002Fg*i.height\u002Fs)}}const Me=t=>Math.round(10*t)\u002F10;function we(t,e,i,s){const n=me(t),o=_e(n,\"margin\"),a=pe(n.maxWidth,t,\"clientWidth\")||T,r=pe(n.maxHeight,t,\"clientHeight\")||T,l=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=t&&ge(t);if(o){const t=o.getBoundingClientRect(),a=me(o),r=_e(a,\"border\",\"width\"),l=_e(a,\"padding\");e=t.width-l.width-r.width,i=t.height-l.height-r.height,s=pe(a.maxWidth,o,\"clientWidth\"),n=pe(a.maxHeight,o,\"clientHeight\")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||T,maxHeight:n||T}}(t,e,i);let{width:h,height:c}=l;if(\"content-box\"===n.boxSizing){const t=_e(n,\"border\",\"width\"),e=_e(n,\"padding\");h-=e.width+t.width,c-=e.height+t.height}h=Math.max(0,h-o.width),c=Math.max(0,s?h\u002Fs:c-o.height),h=Me(Math.min(h,a,l.maxWidth)),c=Me(Math.min(c,r,l.maxHeight)),h&&!c&&(c=Me(h\u002F2));return(void 0!==e||void 0!==i)&&s&&l.height&&c>l.height&&(c=l.height,h=Me(Math.floor(c*s))),{width:h,height:c}}function ke(t,e,i){const s=e||1,n=Me(t.height*s),o=Me(t.width*s);t.height=Me(t.height),t.width=Me(t.width);const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const Se=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};fe()&&(window.addEventListener(\"test\",null,e),window.removeEventListener(\"test\",null,e))}catch(t){}return t}();function Pe(t,e){const i=xe(t,e),s=i&&i.match(\u002F^(\\d+)(\\.\\d+)?px$\u002F);return s?+s[1]:void 0}function De(t){return!t||s(t.size)||s(t.family)?null:(t.style?t.style+\" \":\"\")+(t.weight?t.weight+\" \":\"\")+t.size+\"px \"+t.family}function Ce(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function Oe(t,e,i,s){let o=(s=s||{}).data=s.data||{},a=s.garbageCollect=s.garbageCollect||[];s.font!==e&&(o=s.data={},a=s.garbageCollect=[],s.font=e),t.save(),t.font=e;let r=0;const l=i.length;let h,c,d,u,f;for(h=0;h\u003Cl;h++)if(u=i[h],null==u||n(u)){if(n(u))for(c=0,d=u.length;c\u003Cd;c++)f=u[c],null==f||n(f)||(r=Ce(t,o,a,r,f))}else r=Ce(t,o,a,r,u);t.restore();const g=a.length\u002F2;if(g>i.length){for(h=0;h\u003Cg;h++)delete o[a[h]];a.splice(0,g)}return r}function Ae(t,e,i){const s=t.currentDevicePixelRatio,n=0!==i?Math.max(i\u002F2,.5):0;return Math.round((e-n)*s)\u002Fs+n}function Te(t,e){(e||t)&&((e=e||t.getContext(\"2d\")).save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function Le(t,e,i,s){Ee(t,e,i,s,null)}function Ee(t,e,i,s,n){let o,a,r,l,h,c,d,u;const f=e.pointStyle,g=e.rotation,p=e.radius;let m=(g||0)*L;if(f&&\"object\"==typeof f&&(o=f.toString(),\"[object HTMLImageElement]\"===o||\"[object HTMLCanvasElement]\"===o))return t.save(),t.translate(i,s),t.rotate(m),t.drawImage(f,-f.width\u002F2,-f.height\u002F2,f.width,f.height),void t.restore();if(!(isNaN(p)||p\u003C=0)){switch(t.beginPath(),f){default:n?t.ellipse(i,s,n\u002F2,p,0,0,O):t.arc(i,s,p,0,O),t.closePath();break;case\"triangle\":c=n?n\u002F2:p,t.moveTo(i+Math.sin(m)*c,s-Math.cos(m)*p),m+=I,t.lineTo(i+Math.sin(m)*c,s-Math.cos(m)*p),m+=I,t.lineTo(i+Math.sin(m)*c,s-Math.cos(m)*p),t.closePath();break;case\"rectRounded\":h=.516*p,l=p-h,a=Math.cos(m+R)*l,d=Math.cos(m+R)*(n?n\u002F2-h:l),r=Math.sin(m+R)*l,u=Math.sin(m+R)*(n?n\u002F2-h:l),t.arc(i-d,s-r,h,m-C,m-E),t.arc(i+u,s-a,h,m-E,m),t.arc(i+d,s+r,h,m,m+E),t.arc(i-u,s+a,h,m+E,m+C),t.closePath();break;case\"rect\":if(!g){l=Math.SQRT1_2*p,c=n?n\u002F2:l,t.rect(i-c,s-l,2*c,2*l);break}m+=R;case\"rectRot\":d=Math.cos(m)*(n?n\u002F2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n\u002F2:p),t.moveTo(i-d,s-r),t.lineTo(i+u,s-a),t.lineTo(i+d,s+r),t.lineTo(i-u,s+a),t.closePath();break;case\"crossRot\":m+=R;case\"cross\":d=Math.cos(m)*(n?n\u002F2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n\u002F2:p),t.moveTo(i-d,s-r),t.lineTo(i+d,s+r),t.moveTo(i+u,s-a),t.lineTo(i-u,s+a);break;case\"star\":d=Math.cos(m)*(n?n\u002F2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n\u002F2:p),t.moveTo(i-d,s-r),t.lineTo(i+d,s+r),t.moveTo(i+u,s-a),t.lineTo(i-u,s+a),m+=R,d=Math.cos(m)*(n?n\u002F2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n\u002F2:p),t.moveTo(i-d,s-r),t.lineTo(i+d,s+r),t.moveTo(i+u,s-a),t.lineTo(i-u,s+a);break;case\"line\":a=n?n\u002F2:Math.cos(m)*p,r=Math.sin(m)*p,t.moveTo(i-a,s-r),t.lineTo(i+a,s+r);break;case\"dash\":t.moveTo(i,s),t.lineTo(i+Math.cos(m)*(n?n\u002F2:p),s+Math.sin(m)*p);break;case!1:t.closePath()}t.fill(),e.borderWidth>0&&t.stroke()}}function Re(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.x\u003Ce.right+i&&t.y>e.top-i&&t.y\u003Ce.bottom+i}function Ie(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()}function ze(t){t.restore()}function Fe(t,e,i,s,n){if(!e)return t.lineTo(i.x,i.y);if(\"middle\"===n){const s=(e.x+i.x)\u002F2;t.lineTo(s,e.y),t.lineTo(s,i.y)}else\"after\"===n!=!!s?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}function Ve(t,e,i,s){if(!e)return t.lineTo(i.x,i.y);t.bezierCurveTo(s?e.cp1x:e.cp2x,s?e.cp1y:e.cp2y,s?i.cp2x:i.cp1x,s?i.cp2y:i.cp1y,i.x,i.y)}function Be(t,e,i,s,n){if(n.strikethrough||n.underline){const o=t.measureText(s),a=e-o.actualBoundingBoxLeft,r=e+o.actualBoundingBoxRight,l=i-o.actualBoundingBoxAscent,h=i+o.actualBoundingBoxDescent,c=n.strikethrough?(l+h)\u002F2:h;t.strokeStyle=t.fillStyle,t.beginPath(),t.lineWidth=n.decorationWidth||2,t.moveTo(a,c),t.lineTo(r,c),t.stroke()}}function We(t,e){const i=t.fillStyle;t.fillStyle=e.color,t.fillRect(e.left,e.top,e.width,e.height),t.fillStyle=i}function Ne(t,e,i,o,a,r={}){const l=n(e)?e:[e],h=r.strokeWidth>0&&\"\"!==r.strokeColor;let c,d;for(t.save(),t.font=a.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]),s(e.rotation)||t.rotate(e.rotation),e.color&&(t.fillStyle=e.color),e.textAlign&&(t.textAlign=e.textAlign),e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,r),c=0;c\u003Cl.length;++c)d=l[c],r.backdrop&&We(t,r.backdrop),h&&(r.strokeColor&&(t.strokeStyle=r.strokeColor),s(r.strokeWidth)||(t.lineWidth=r.strokeWidth),t.strokeText(d,i,o,r.maxWidth)),t.fillText(d,i,o,r.maxWidth),Be(t,i,o,d,r),o+=Number(a.lineHeight);t.restore()}function He(t,e){const{x:i,y:s,w:n,h:o,radius:a}=e;t.arc(i+a.topLeft,s+a.topLeft,a.topLeft,1.5*C,C,!0),t.lineTo(i,s+o-a.bottomLeft),t.arc(i+a.bottomLeft,s+o-a.bottomLeft,a.bottomLeft,C,E,!0),t.lineTo(i+n-a.bottomRight,s+o),t.arc(i+n-a.bottomRight,s+o-a.bottomRight,a.bottomRight,E,0,!0),t.lineTo(i+n,s+a.topRight),t.arc(i+n-a.topRight,s+a.topRight,a.topRight,0,-E,!0),t.lineTo(i+a.topLeft,s)}function je(t,e=[\"\"],i,s,n=(()=>t[0])){const o=i||t;void 0===s&&(s=ti(\"_fallback\",t));const a={[Symbol.toStringTag]:\"Object\",_cacheable:!0,_scopes:t,_rootScopes:o,_fallback:s,_getTarget:n,override:i=>je([i,...t],e,o,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete e._keys,delete t[0][i],!0),get:(i,s)=>qe(i,s,(()=>function(t,e,i,s){let n;for(const o of e)if(n=ti(Ue(o,t),i),void 0!==n)return Xe(t,n)?Ze(i,s,t,n):n}(s,e,t,i))),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>ei(t).includes(e),ownKeys:t=>ei(t),set(t,e,i){const s=t._storage||(t._storage=n());return t[e]=s[e]=i,delete t._keys,!0}})}function $e(t,e,i,s){const a={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:Ye(t,s),setContext:e=>$e(t,e,i,s),override:n=>$e(t.override(n),e,i,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete t[i],!0),get:(t,e,i)=>qe(t,e,(()=>function(t,e,i){const{_proxy:s,_context:a,_subProxy:r,_descriptors:l}=t;let h=s[e];S(h)&&l.isScriptable(e)&&(h=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=i;if(r.has(t))throw new Error(\"Recursion detected: \"+Array.from(r).join(\"->\")+\"->\"+t);r.add(t);let l=e(o,a||s);r.delete(t),Xe(t,l)&&(l=Ze(n._scopes,n,t,l));return l}(e,h,t,i));n(h)&&h.length&&(h=function(t,e,i,s){const{_proxy:n,_context:a,_subProxy:r,_descriptors:l}=i;if(void 0!==a.index&&s(t))return e[a.index%e.length];if(o(e[0])){const i=e,s=n._scopes.filter((t=>t!==i));e=[];for(const o of i){const i=Ze(s,n,t,o);e.push($e(i,a,r&&r[t],l))}}return e}(e,h,t,l.isIndexable));Xe(e,h)&&(h=$e(h,a,r&&r[e],l));return h}(t,e,i))),getOwnPropertyDescriptor:(e,i)=>e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,i)=>Reflect.has(t,i),ownKeys:()=>Reflect.ownKeys(t),set:(e,i,s)=>(t[i]=s,delete e[i],!0)})}function Ye(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:s=e.indexable,_allKeys:n=e.allKeys}=t;return{allKeys:n,scriptable:i,indexable:s,isScriptable:S(i)?i:()=>i,isIndexable:S(s)?s:()=>s}}const Ue=(t,e)=>t?t+w(e):e,Xe=(t,e)=>o(e)&&\"adapters\"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function qe(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e)||\"constructor\"===e)return t[e];const s=i();return t[e]=s,s}function Ke(t,e,i){return S(t)?t(e,i):t}const Ge=(t,e)=>!0===t?e:\"string\"==typeof t?M(e,t):void 0;function Je(t,e,i,s,n){for(const o of e){const e=Ge(i,o);if(e){t.add(e);const o=Ke(e._fallback,i,n);if(void 0!==o&&o!==i&&o!==s)return o}else if(!1===e&&void 0!==s&&i!==s)return null}return!1}function Ze(t,e,i,s){const a=e._rootScopes,r=Ke(e._fallback,i,s),l=[...t,...a],h=new Set;h.add(s);let c=Qe(h,l,i,r||i,s);return null!==c&&((void 0===r||r===i||(c=Qe(h,l,r,c,s),null!==c))&&je(Array.from(h),[\"\"],a,r,(()=>function(t,e,i){const s=t._getTarget();e in s||(s[e]={});const a=s[e];if(n(a)&&o(i))return i;return a||{}}(e,i,s))))}function Qe(t,e,i,s,n){for(;i;)i=Je(t,e,i,s,n);return i}function ti(t,e){for(const i of e){if(!i)continue;const e=i[t];if(void 0!==e)return e}}function ei(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith(\"_\"))))e.add(t);return Array.from(e)}(t._scopes)),e}function ii(t,e,i,s){const{iScale:n}=t,{key:o=\"r\"}=this._parsing,a=new Array(s);let r,l,h,c;for(r=0,l=s;r\u003Cl;++r)h=r+i,c=e[h],a[r]={r:n.parse(M(c,o),h)};return a}const si=Number.EPSILON||1e-14,ni=(t,e)=>e\u003Ct.length&&!t[e].skip&&t[e],oi=t=>\"x\"===t?\"y\":\"x\";function ai(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=q(o,n),l=q(a,o);let h=r\u002F(r+l),c=l\u002F(r+l);h=isNaN(h)?0:h,c=isNaN(c)?0:c;const d=s*h,u=s*c;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function ri(t,e=\"x\"){const i=oi(e),s=t.length,n=Array(s).fill(0),o=Array(s);let a,r,l,h=ni(t,0);for(a=0;a\u003Cs;++a)if(r=l,l=h,h=ni(t,a+1),l){if(h){const t=h[e]-l[e];n[a]=0!==t?(h[i]-l[i])\u002Ft:0}o[a]=r?h?F(n[a-1])!==F(n[a])?0:(n[a-1]+n[a])\u002F2:n[a-1]:n[a]}!function(t,e,i){const s=t.length;let n,o,a,r,l,h=ni(t,0);for(let c=0;c\u003Cs-1;++c)l=h,h=ni(t,c+1),l&&h&&(V(e[c],0,si)?i[c]=i[c+1]=0:(n=i[c]\u002Fe[c],o=i[c+1]\u002Fe[c],r=Math.pow(n,2)+Math.pow(o,2),r\u003C=9||(a=3\u002FMath.sqrt(r),i[c]=n*a*e[c],i[c+1]=o*a*e[c])))}(t,n,o),function(t,e,i=\"x\"){const s=oi(i),n=t.length;let o,a,r,l=ni(t,0);for(let h=0;h\u003Cn;++h){if(a=r,r=l,l=ni(t,h+1),!r)continue;const n=r[i],c=r[s];a&&(o=(n-a[i])\u002F3,r[`cp1${i}`]=n-o,r[`cp1${s}`]=c-o*e[h]),l&&(o=(l[i]-n)\u002F3,r[`cp2${i}`]=n+o,r[`cp2${s}`]=c+o*e[h])}}(t,o,e)}function li(t,e,i){return Math.max(Math.min(t,i),e)}function hi(t,e,i,s,n){let o,a,r,l;if(e.spanGaps&&(t=t.filter((t=>!t.skip))),\"monotone\"===e.cubicInterpolationMode)ri(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;o\u003Ca;++o)r=t[o],l=ai(i,r,t[Math.min(o+1,a-(s?0:1))%a],e.tension),r.cp1x=l.previous.x,r.cp1y=l.previous.y,r.cp2x=l.next.x,r.cp2y=l.next.y,i=r}e.capBezierPoints&&function(t,e){let i,s,n,o,a,r=Re(t[0],e);for(i=0,s=t.length;i\u003Cs;++i)a=o,o=r,r=i\u003Cs-1&&Re(t[i+1],e),o&&(n=t[i],a&&(n.cp1x=li(n.cp1x,e.left,e.right),n.cp1y=li(n.cp1y,e.top,e.bottom)),r&&(n.cp2x=li(n.cp2x,e.left,e.right),n.cp2y=li(n.cp2y,e.top,e.bottom)))}(t,i)}const ci=t=>0===t||1===t,di=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*O\u002Fi),ui=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*O\u002Fi)+1,fi={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t\u002F=.5)\u003C1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t\u002F=.5)\u003C1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t\u002F=.5)\u003C1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t\u002F=.5)\u003C1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*E),easeOutSine:t=>Math.sin(t*E),easeInOutSine:t=>-.5*(Math.cos(C*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>ci(t)?t:t\u003C.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t\u002F=.5)\u003C1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>ci(t)?t:di(t,.075,.3),easeOutElastic:t=>ci(t)?t:ui(t,.075,.3),easeInOutElastic(t){const e=.1125;return ci(t)?t:t\u003C.5?.5*di(2*t,e,.45):.5+.5*ui(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t\u002F=.5)\u003C1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-fi.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t\u003C1\u002Fi?e*t*t:t\u003C2\u002Fi?e*(t-=1.5\u002Fi)*t+.75:t\u003C2.5\u002Fi?e*(t-=2.25\u002Fi)*t+.9375:e*(t-=2.625\u002Fi)*t+.984375},easeInOutBounce:t=>t\u003C.5?.5*fi.easeInBounce(2*t):.5*fi.easeOutBounce(2*t-1)+.5};function gi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function pi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:\"middle\"===s?i\u003C.5?t.y:e.y:\"after\"===s?i\u003C1?t.y:e.y:i>0?e.y:t.y}}function mi(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=gi(t,n,i),r=gi(n,o,i),l=gi(o,e,i),h=gi(a,r,i),c=gi(r,l,i);return gi(h,c,i)}const xi=\u002F^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$\u002F,bi=\u002F^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$\u002F;function _i(t,e){const i=(\"\"+t).match(xi);if(!i||\"normal\"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case\"px\":return t;case\"%\":t\u002F=100}return e*t}const yi=t=>+t||0;function vi(t,e){const i={},s=o(e),n=s?Object.keys(e):e,a=o(t)?s?i=>l(t[i],t[e[i]]):e=>t[e]:()=>t;for(const t of n)i[t]=yi(a(t));return i}function Mi(t){return vi(t,{top:\"y\",right:\"x\",bottom:\"y\",left:\"x\"})}function wi(t){return vi(t,[\"topLeft\",\"topRight\",\"bottomLeft\",\"bottomRight\"])}function ki(t){const e=Mi(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function Si(t,e){t=t||{},e=e||ue.font;let i=l(t.size,e.size);\"string\"==typeof i&&(i=parseInt(i,10));let s=l(t.style,e.style);s&&!(\"\"+s).match(bi)&&(console.warn('Invalid font style specified: \"'+s+'\"'),s=void 0);const n={family:l(t.family,e.family),lineHeight:_i(l(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:l(t.weight,e.weight),string:\"\"};return n.string=De(n),n}function Pi(t,e,i,s){let o,a,r,l=!0;for(o=0,a=t.length;o\u003Ca;++o)if(r=t[o],void 0!==r&&(void 0!==e&&\"function\"==typeof r&&(r=r(e),l=!1),void 0!==i&&n(r)&&(r=r[i%r.length],l=!1),void 0!==r))return s&&!l&&(s.cacheable=!1),r}function Di(t,e,i){const{min:s,max:n}=t,o=c(e,(n-s)\u002F2),a=(t,e)=>i&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function Ci(t,e){return Object.assign(Object.create(t),e)}function Oi(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>\"center\"===t?t:\"right\"===t?\"left\":\"right\",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,i):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function Ai(t,e){let i,s;\"ltr\"!==e&&\"rtl\"!==e||(i=t.canvas.style,s=[i.getPropertyValue(\"direction\"),i.getPropertyPriority(\"direction\")],i.setProperty(\"direction\",e,\"important\"),t.prevTextDirection=s)}function Ti(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty(\"direction\",e[0],e[1]))}function Li(t){return\"angle\"===t?{between:J,compare:K,normalize:G}:{between:tt,compare:(t,e)=>t-e,normalize:t=>t}}function Ei({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i==0,style:n}}function Ri(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:l,normalize:h}=Li(s),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=Li(s),l=e.length;let h,c,{start:d,end:u,loop:f}=t;if(f){for(d+=l,u+=l,h=0,c=l;h\u003Cc&&a(r(e[d%l][s]),n,o);++h)d--,u--;d%=l,u%=l}return u\u003Cd&&(u+=l),{start:d,end:u,loop:f,style:t.style}}(t,e,i),g=[];let p,m,x,b=!1,_=null;const y=()=>b||l(n,x,p)&&0!==r(n,x),v=()=>!b||0===r(o,p)||l(o,x,p);for(let t=c,i=c;t\u003C=d;++t)m=e[t%a],m.skip||(p=h(m[s]),p!==x&&(b=l(p,n,o),null===_&&y()&&(_=0===r(p,n)?t:i),null!==_&&v()&&(g.push(Ei({start:_,end:t,loop:u,count:a,style:f})),_=null),i=t,x=p));return null!==_&&g.push(Ei({start:_,end:d,loop:u,count:a,style:f})),g}function Ii(t,e){const i=[],s=t.segments;for(let n=0;n\u003Cs.length;n++){const o=Ri(s[n],t.points,e);o.length&&i.push(...o)}return i}function zi(t,e){const i=t.points,s=t.options.spanGaps,n=i.length;if(!n)return[];const o=!!t._loop,{start:a,end:r}=function(t,e,i,s){let n=0,o=e-1;if(i&&!s)for(;n\u003Ce&&!t[n].skip;)n++;for(;n\u003Ce&&t[n].skip;)n++;for(n%=e,i&&(o+=n);o>n&&t[o%e].skip;)o--;return o%=e,{start:n,end:o}}(i,n,o,s);if(!0===s)return Fi(t,[{start:a,end:r,loop:o}],i,e);return Fi(t,function(t,e,i,s){const n=t.length,o=[];let a,r=e,l=t[e];for(a=e+1;a\u003C=i;++a){const i=t[a%n];i.skip||i.stop?l.skip||(s=!1,o.push({start:e%n,end:(a-1)%n,loop:s}),e=r=i.stop?a:null):(r=a,l.skip&&(e=a)),l=i}return null!==r&&o.push({start:e%n,end:r%n,loop:s}),o}(i,a,r\u003Ca?r+n:r,!!t._fullLoop&&0===a&&r===n-1),i,e)}function Fi(t,e,i,s){return s&&s.setContext&&i?function(t,e,i,s){const n=t._chart.getContext(),o=Vi(t.options),{_datasetIndex:a,options:{spanGaps:r}}=t,l=i.length,h=[];let c=o,d=e[0].start,u=d;function f(t,e,s,n){const o=r?-1:1;if(t!==e){for(t+=l;i[t%l].skip;)t-=o;for(;i[e%l].skip;)e+=o;t%l!=e%l&&(h.push({start:t%l,end:e%l,loop:s,style:n}),c=n,d=e%l)}}for(const t of e){d=r?d:t.start;let e,o=i[d%l];for(u=d+1;u\u003C=t.end;u++){const r=i[u%l];e=Vi(s.setContext(Ci(n,{type:\"segment\",p0:o,p1:r,p0DataIndex:(u-1)%l,p1DataIndex:u%l,datasetIndex:a}))),Bi(e,c)&&f(d,u-1,t.loop,c),o=r,c=e}d\u003Cu-1&&f(d,u-1,t.loop,c)}return h}(t,e,i,s):e}function Vi(t){return{backgroundColor:t.backgroundColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,borderWidth:t.borderWidth,borderColor:t.borderColor}}function Bi(t,e){if(!e)return!1;const i=[],s=function(t,e){return Zt(e)?(i.includes(e)||i.push(e),i.indexOf(e)):e};return JSON.stringify(t,s)!==JSON.stringify(e,s)}function Wi(t,e,i){return t.options.clip?t[i]:e[i]}function Ni(t,e){const i=e._clip;if(i.disabled)return!1;const s=function(t,e){const{xScale:i,yScale:s}=t;return i&&s?{left:Wi(i,e,\"left\"),right:Wi(i,e,\"right\"),top:Wi(s,e,\"top\"),bottom:Wi(s,e,\"bottom\")}:e}(e,t.chartArea);return{left:!1===i.left?0:s.left-(!0===i.left?0:i.left),right:!1===i.right?t.width:s.right+(!0===i.right?0:i.right),top:!1===i.top?0:s.top-(!0===i.top?0:i.top),bottom:!1===i.bottom?t.height:s.bottom+(!0===i.bottom?0:i.bottom)}}var Hi=Object.freeze({__proto__:null,HALF_PI:E,INFINITY:T,PI:C,PITAU:A,QUARTER_PI:R,RAD_PER_DEG:L,TAU:O,TWO_THIRDS_PI:I,_addGrace:Di,_alignPixel:Ae,_alignStartEnd:ft,_angleBetween:J,_angleDiff:K,_arrayUnique:lt,_attachContext:$e,_bezierCurveTo:Ve,_bezierInterpolation:mi,_boundSegment:Ri,_boundSegments:Ii,_capitalize:w,_computeSegments:zi,_createResolver:je,_decimalPlaces:U,_deprecated:function(t,e,i,s){void 0!==e&&console.warn(t+': \"'+i+'\" is deprecated. Please use \"'+s+'\" instead')},_descriptors:Ye,_elementsEqual:f,_factorize:W,_filterBetween:nt,_getParentNode:ge,_getStartAndCountOfVisiblePoints:pt,_int16Range:Q,_isBetween:tt,_isClickEvent:D,_isDomSupported:fe,_isPointInArea:Re,_limitValue:Z,_longestText:Oe,_lookup:et,_lookupByKey:it,_measureText:Ce,_merger:m,_mergerIf:_,_normalizeAngle:G,_parseObjectDataRadialScale:ii,_pointInLine:gi,_readValueToProps:vi,_rlookupByKey:st,_scaleRangesChanged:mt,_setMinAndMaxByKey:j,_splitKey:v,_steppedInterpolation:pi,_steppedLineTo:Fe,_textX:gt,_toLeftRightCenter:ut,_updateBezierControlPoints:hi,addRoundedRectPath:He,almostEquals:V,almostWhole:H,callback:d,clearCanvas:Te,clipArea:Ie,clone:g,color:Qt,createContext:Ci,debounce:dt,defined:k,distanceBetweenPoints:q,drawPoint:Le,drawPointLegend:Ee,each:u,easingEffects:fi,finiteOrDefault:r,fontString:function(t,e,i){return e+\" \"+t+\"px \"+i},formatNumber:ne,getAngleFromPoint:X,getDatasetClipArea:Ni,getHoverColor:te,getMaximumSize:we,getRelativePosition:ve,getRtlAdapter:Oi,getStyle:xe,isArray:n,isFinite:a,isFunction:S,isNullOrUndef:s,isNumber:N,isObject:o,isPatternOrGradient:Zt,listenArrayEvents:at,log10:z,merge:x,mergeIf:b,niceNum:B,noop:e,overrideTextDirection:Ai,readUsedSize:Pe,renderText:Ne,requestAnimFrame:ht,resolve:Pi,resolveObjectKey:M,restoreTextDirection:Ti,retinaScale:ke,setsEqual:P,sign:F,splineCurve:ai,splineCurveMonotone:ri,supportsEventListenerOptions:Se,throttled:ct,toDegrees:Y,toDimension:c,toFont:Si,toFontString:De,toLineHeight:_i,toPadding:ki,toPercentage:h,toRadians:$,toTRBL:Mi,toTRBLCorners:wi,uid:i,unclipArea:ze,unlistenArrayEvents:rt,valueOrDefault:l});function ji(t,e,i,n){const{controller:o,data:a,_sorted:r}=t,l=o._cachedMeta.iScale,h=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(l&&e===l.axis&&\"r\"!==e&&r&&a.length){const r=l._reversePixels?st:it;if(!n){const n=r(a,e,i);if(h){const{vScale:e}=o._cachedMeta,{_parsed:i}=t,a=i.slice(0,n.lo+1).reverse().findIndex((t=>!s(t[e.axis])));n.lo-=Math.max(0,a);const r=i.slice(n.hi).findIndex((t=>!s(t[e.axis])));n.hi+=Math.max(0,r)}return n}if(o._sharedOptions){const t=a[0],s=\"function\"==typeof t.getRange&&t.getRange(e);if(s){const t=r(a,e,i-s),n=r(a,e,i+s);return{lo:t.lo,hi:n.hi}}}}return{lo:0,hi:a.length-1}}function $i(t,e,i,s,n){const o=t.getSortedVisibleDatasetMetas(),a=i[e];for(let t=0,i=o.length;t\u003Ci;++t){const{index:i,data:r}=o[t],{lo:l,hi:h}=ji(o[t],e,a,n);for(let t=l;t\u003C=h;++t){const e=r[t];e.skip||s(e,i,t)}}}function Yi(t,e,i,s,n){const o=[];if(!n&&!t.isPointInArea(e))return o;return $i(t,i,e,(function(i,a,r){(n||Re(i,t.chartArea,0))&&i.inRange(e.x,e.y,s)&&o.push({element:i,datasetIndex:a,index:r})}),!0),o}function Ui(t,e,i,s,n,o){let a=[];const r=function(t){const e=-1!==t.indexOf(\"x\"),i=-1!==t.indexOf(\"y\");return function(t,s){const n=e?Math.abs(t.x-s.x):0,o=i?Math.abs(t.y-s.y):0;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))}}(i);let l=Number.POSITIVE_INFINITY;return $i(t,i,e,(function(i,h,c){const d=i.inRange(e.x,e.y,n);if(s&&!d)return;const u=i.getCenterPoint(n);if(!(!!o||t.isPointInArea(u))&&!d)return;const f=r(e,u);f\u003Cl?(a=[{element:i,datasetIndex:h,index:c}],l=f):f===l&&a.push({element:i,datasetIndex:h,index:c})})),a}function Xi(t,e,i,s,n,o){return o||t.isPointInArea(e)?\"r\"!==i||s?Ui(t,e,i,s,n,o):function(t,e,i,s){let n=[];return $i(t,i,e,(function(t,i,o){const{startAngle:a,endAngle:r}=t.getProps([\"startAngle\",\"endAngle\"],s),{angle:l}=X(t,{x:e.x,y:e.y});J(l,a,r)&&n.push({element:t,datasetIndex:i,index:o})})),n}(t,e,i,n):[]}function qi(t,e,i,s,n){const o=[],a=\"x\"===i?\"inXRange\":\"inYRange\";let r=!1;return $i(t,i,e,((t,s,l)=>{t[a]&&t[a](e[i],n)&&(o.push({element:t,datasetIndex:s,index:l}),r=r||t.inRange(e.x,e.y,n))})),s&&!r?[]:o}var Ki={evaluateInteractionItems:$i,modes:{index(t,e,i,s){const n=ve(e,t),o=i.axis||\"x\",a=i.includeInvisible||!1,r=i.intersect?Yi(t,n,o,s,a):Xi(t,n,o,!1,s,a),l=[];return r.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=r[0].index,i=t.data[e];i&&!i.skip&&l.push({element:i,datasetIndex:t.index,index:e})})),l):[]},dataset(t,e,i,s){const n=ve(e,t),o=i.axis||\"xy\",a=i.includeInvisible||!1;let r=i.intersect?Yi(t,n,o,s,a):Xi(t,n,o,!1,s,a);if(r.length>0){const e=r[0].datasetIndex,i=t.getDatasetMeta(e).data;r=[];for(let t=0;t\u003Ci.length;++t)r.push({element:i[t],datasetIndex:e,index:t})}return r},point:(t,e,i,s)=>Yi(t,ve(e,t),i.axis||\"xy\",s,i.includeInvisible||!1),nearest(t,e,i,s){const n=ve(e,t),o=i.axis||\"xy\",a=i.includeInvisible||!1;return Xi(t,n,o,i.intersect,s,a)},x:(t,e,i,s)=>qi(t,ve(e,t),\"x\",i.intersect,s),y:(t,e,i,s)=>qi(t,ve(e,t),\"y\",i.intersect,s)}};const Gi=[\"left\",\"top\",\"right\",\"bottom\"];function Ji(t,e){return t.filter((t=>t.pos===e))}function Zi(t,e){return t.filter((t=>-1===Gi.indexOf(t.pos)&&t.box.axis===e))}function Qi(t,e){return t.sort(((t,i)=>{const s=e?i:t,n=e?t:i;return s.weight===n.weight?s.index-n.index:s.weight-n.weight}))}function ts(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:s,stackWeight:n}=i;if(!t||!Gi.includes(s))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=n}return e}(t),{vBoxMaxWidth:s,hBoxMaxHeight:n}=e;let o,a,r;for(o=0,a=t.length;o\u003Ca;++o){r=t[o];const{fullSize:a}=r.box,l=i[r.stack],h=l&&r.stackWeight\u002Fl.weight;r.horizontal?(r.width=h?h*s:a&&e.availableWidth,r.height=n):(r.width=s,r.height=h?h*n:a&&e.availableHeight)}return i}function es(t,e,i,s){return Math.max(t[i],e[i])+Math.max(t[s],e[s])}function is(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function ss(t,e,i,s){const{pos:n,box:a}=i,r=t.maxPadding;if(!o(n)){i.size&&(t[n]-=i.size);const e=s[i.stack]||{size:0,count:1};e.size=Math.max(e.size,i.horizontal?a.height:a.width),i.size=e.size\u002Fe.count,t[n]+=i.size}a.getPadding&&is(r,a.getPadding());const l=Math.max(0,e.outerWidth-es(r,t,\"left\",\"right\")),h=Math.max(0,e.outerHeight-es(r,t,\"top\",\"bottom\")),c=l!==t.w,d=h!==t.h;return t.w=l,t.h=h,i.horizontal?{same:c,other:d}:{same:d,other:c}}function ns(t,e){const i=e.maxPadding;function s(t){const s={left:0,top:0,right:0,bottom:0};return t.forEach((t=>{s[t]=Math.max(e[t],i[t])})),s}return s(t?[\"left\",\"right\"]:[\"top\",\"bottom\"])}function os(t,e,i,s){const n=[];let o,a,r,l,h,c;for(o=0,a=t.length,h=0;o\u003Ca;++o){r=t[o],l=r.box,l.update(r.width||e.w,r.height||e.h,ns(r.horizontal,e));const{same:a,other:d}=ss(e,i,r,s);h|=a&&n.length,c=c||d,l.fullSize||n.push(r)}return h&&os(n,e,i,s)||c}function as(t,e,i,s,n){t.top=i,t.left=e,t.right=e+s,t.bottom=i+n,t.width=s,t.height=n}function rs(t,e,i,s){const n=i.padding;let{x:o,y:a}=e;for(const r of t){const t=r.box,l=s[r.stack]||{count:1,placed:0,weight:1},h=r.stackWeight\u002Fl.weight||1;if(r.horizontal){const s=e.w*h,o=l.size||t.height;k(l.start)&&(a=l.start),t.fullSize?as(t,n.left,a,i.outerWidth-n.right-n.left,o):as(t,e.left+l.placed,a,s,o),l.start=a,l.placed+=s,a=t.bottom}else{const s=e.h*h,a=l.size||t.width;k(l.start)&&(o=l.start),t.fullSize?as(t,o,n.top,a,i.outerHeight-n.bottom-n.top):as(t,o,e.top+l.placed,a,s),l.start=o,l.placed+=s,o=t.right}}e.x=o,e.y=a}var ls={addBox(t,e){t.boxes||(t.boxes=[]),e.fullSize=e.fullSize||!1,e.position=e.position||\"top\",e.weight=e.weight||0,e._layers=e._layers||function(){return[{z:0,draw(t){e.draw(t)}}]},t.boxes.push(e)},removeBox(t,e){const i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure(t,e,i){e.fullSize=i.fullSize,e.position=i.position,e.weight=i.weight},update(t,e,i,s){if(!t)return;const n=ki(t.options.layout.padding),o=Math.max(e-n.width,0),a=Math.max(i-n.height,0),r=function(t){const e=function(t){const e=[];let i,s,n,o,a,r;for(i=0,s=(t||[]).length;i\u003Cs;++i)n=t[i],({position:o,options:{stack:a,stackWeight:r=1}}=n),e.push({index:i,box:n,pos:o,horizontal:n.isHorizontal(),weight:n.weight,stack:a&&o+a,stackWeight:r});return e}(t),i=Qi(e.filter((t=>t.box.fullSize)),!0),s=Qi(Ji(e,\"left\"),!0),n=Qi(Ji(e,\"right\")),o=Qi(Ji(e,\"top\"),!0),a=Qi(Ji(e,\"bottom\")),r=Zi(e,\"x\"),l=Zi(e,\"y\");return{fullSize:i,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Ji(e,\"chartArea\"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}(t.boxes),l=r.vertical,h=r.horizontal;u(t.boxes,(t=>{\"function\"==typeof t.beforeLayout&&t.beforeLayout()}));const c=l.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,d=Object.freeze({outerWidth:e,outerHeight:i,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o\u002F2\u002Fc,hBoxMaxHeight:a\u002F2}),f=Object.assign({},n);is(f,ki(s));const g=Object.assign({maxPadding:f,w:o,h:a,x:n.left,y:n.top},n),p=ts(l.concat(h),d);os(r.fullSize,g,d,p),os(l,g,d,p),os(h,g,d,p)&&os(l,g,d,p),function(t){const e=t.maxPadding;function i(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=i(\"top\"),t.x+=i(\"left\"),i(\"right\"),i(\"bottom\")}(g),rs(r.leftAndTop,g,d,p),g.x+=g.w,g.y+=g.h,rs(r.rightAndBottom,g,d,p),t.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},u(r.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})}))}};class hs{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e\u002Fs):i)}}isAttached(t){return!0}updateConfig(t){}}class cs extends hs{acquireContext(t){return t&&t.getContext&&t.getContext(\"2d\")||null}updateConfig(t){t.options.animation=!1}}const ds=\"$chartjs\",us={touchstart:\"mousedown\",touchmove:\"mousemove\",touchend:\"mouseup\",pointerenter:\"mouseenter\",pointerdown:\"mousedown\",pointermove:\"mousemove\",pointerup:\"mouseup\",pointerleave:\"mouseout\",pointerout:\"mouseout\"},fs=t=>null===t||\"\"===t;const gs=!!Se&&{passive:!0};function ps(t,e,i){t&&t.canvas&&t.canvas.removeEventListener(e,i,gs)}function ms(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function xs(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ms(i.addedNodes,s),e=e&&!ms(i.removedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}function bs(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ms(i.removedNodes,s),e=e&&!ms(i.addedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}const _s=new Map;let ys=0;function vs(){const t=window.devicePixelRatio;t!==ys&&(ys=t,_s.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function Ms(t,e,i){const s=t.canvas,n=s&&ge(s);if(!n)return;const o=ct(((t,e)=>{const s=n.clientWidth;i(t,e),s\u003Cn.clientWidth&&i()}),window),a=new ResizeObserver((t=>{const e=t[0],i=e.contentRect.width,s=e.contentRect.height;0===i&&0===s||o(i,s)}));return a.observe(n),function(t,e){_s.size||window.addEventListener(\"resize\",vs),_s.set(t,e)}(t,o),a}function ws(t,e,i){i&&i.disconnect(),\"resize\"===e&&function(t){_s.delete(t),_s.size||window.removeEventListener(\"resize\",vs)}(t)}function ks(t,e,i){const s=t.canvas,n=ct((e=>{null!==t.ctx&&i(function(t,e){const i=us[t.type]||t.type,{x:s,y:n}=ve(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==n?n:null}}(e,t))}),t);return function(t,e,i){t&&t.addEventListener(e,i,gs)}(s,e,n),n}class Ss extends hs{acquireContext(t,e){const i=t&&t.getContext&&t.getContext(\"2d\");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute(\"height\"),n=t.getAttribute(\"width\");if(t[ds]={initial:{height:s,width:n,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||\"block\",i.boxSizing=i.boxSizing||\"border-box\",fs(n)){const e=Pe(t,\"width\");void 0!==e&&(t.width=e)}if(fs(s))if(\"\"===t.style.height)t.height=t.width\u002F(e||2);else{const e=Pe(t,\"height\");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e[ds])return!1;const i=e[ds].initial;[\"height\",\"width\"].forEach((t=>{const n=i[t];s(n)?e.removeAttribute(t):e.setAttribute(t,n)}));const n=i.style||{};return Object.keys(n).forEach((t=>{e.style[t]=n[t]})),e.width=e.width,delete e[ds],!0}addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxies||(t.$proxies={}),n={attach:xs,detach:bs,resize:Ms}[e]||ks;s[e]=n(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:ws,detach:ws,resize:ws}[e]||ps)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return we(t,e,i,s)}isAttached(t){const e=t&&ge(t);return!(!e||!e.isConnected)}}function Ps(t){return!fe()||\"undefined\"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?cs:Ss}var Ds=Object.freeze({__proto__:null,BasePlatform:hs,BasicPlatform:cs,DomPlatform:Ss,_detectPlatform:Ps});const Cs=\"transparent\",Os={boolean:(t,e,i)=>i>.5?e:t,color(t,e,i){const s=Qt(t||Cs),n=s.valid&&Qt(e||Cs);return n&&n.valid?n.mix(s,i).hexString():e},number:(t,e,i)=>t+(e-t)*i};class As{constructor(t,e,i,s){const n=e[i];s=Pi([t.to,s,n,t.from]);const o=Pi([t.from,n,s]);this._active=!0,this._fn=t.fn||Os[t.type||typeof o],this._easing=fi[t.easing]||fi.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],n=i-this._start,o=this._duration-n;this._start=i,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=n,this._loop=!!t.loop,this._to=Pi([t.to,e,s,t.from]),this._from=Pi([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._from,o=this._loop,a=this._to;let r;if(this._active=n!==a&&(o||e\u003Ci),!this._active)return this._target[s]=a,void this._notify(!0);e\u003C0?this._target[s]=n:(r=e\u002Fi%2,r=o&&r>1?2-r:r,r=this._easing(Math.min(1,Math.max(0,r))),this._target[s]=this._fn(n,a,r))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?\"res\":\"rej\",i=this._promises||[];for(let t=0;t\u003Ci.length;t++)i[t][e]()}}class Ts{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!o(t))return;const e=Object.keys(ue.animation),i=this._properties;Object.getOwnPropertyNames(t).forEach((s=>{const a=t[s];if(!o(a))return;const r={};for(const t of e)r[t]=a[t];(n(a.properties)&&a.properties||[s]).forEach((t=>{t!==s&&i.has(t)||i.set(t,r)}))}))}_animateOptions(t,e){const i=e.options,s=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!s)return[];const n=this._createAnimations(s,i);return i.$shared&&function(t,e){const i=[],s=Object.keys(e);for(let e=0;e\u003Cs.length;e++){const n=t[s[e]];n&&n.active()&&i.push(n.wait())}return Promise.all(i)}(t.options.$animations,i).then((()=>{t.options=i}),(()=>{})),n}_createAnimations(t,e){const i=this._properties,s=[],n=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now();let r;for(r=o.length-1;r>=0;--r){const l=o[r];if(\"$\"===l.charAt(0))continue;if(\"options\"===l){s.push(...this._animateOptions(t,e));continue}const h=e[l];let c=n[l];const d=i.get(l);if(c){if(d&&c.active()){c.update(d,h,a);continue}c.cancel()}d&&d.duration?(n[l]=c=new As(d,t,l,h),s.push(c)):t[l]=h}return s}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(bt.add(this._chart,i),!0):void 0}}function Ls(t,e){const i=t&&t.options||{},s=i.reverse,n=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:s?o:n,end:s?n:o}}function Es(t,e){const i=[],s=t._getSortedDatasetMetas(e);let n,o;for(n=0,o=s.length;n\u003Co;++n)i.push(s[n].index);return i}function Rs(t,e,i,s={}){const n=t.keys,o=\"single\"===s.mode;let r,l,h,c;if(null===e)return;let d=!1;for(r=0,l=n.length;r\u003Cl;++r){if(h=+n[r],h===i){if(d=!0,s.all)continue;break}c=t.values[h],a(c)&&(o||0===e||F(e)===F(c))&&(e+=c)}return d||s.all?e:0}function Is(t,e){const i=t&&t.options.stacked;return i||void 0===i&&void 0!==e.stack}function zs(t,e,i){const s=t[e]||(t[e]={});return s[i]||(s[i]={})}function Fs(t,e,i,s){for(const n of e.getMatchingVisibleMetas(s).reverse()){const e=t[n.index];if(i&&e>0||!i&&e\u003C0)return n.index}return null}function Vs(t,e){const{chart:i,_cachedMeta:s}=t,n=i._stacks||(i._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,h=a.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,a,s),d=e.length;let u;for(let t=0;t\u003Cd;++t){const i=e[t],{[l]:o,[h]:d}=i;u=(i._stacks||(i._stacks={}))[h]=zs(n,c,o),u[r]=d,u._top=Fs(u,a,!0,s.type),u._bottom=Fs(u,a,!1,s.type);(u._visualValues||(u._visualValues={}))[r]=d}}function Bs(t,e){const i=t.scales;return Object.keys(i).filter((t=>i[t].axis===e)).shift()}function Ws(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if(s){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[s]||void 0===e[s][i])return;delete e[s][i],void 0!==e[s]._visualValues&&void 0!==e[s]._visualValues[i]&&delete e[s]._visualValues[i]}}}const Ns=t=>\"reset\"===t||\"none\"===t,Hs=(t,e)=>e?t:Object.assign({},t);class js{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=Is(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled(\"filler\")&&console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\")}updateIndex(t){this.index!==t&&Ws(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,s)=>\"x\"===t?e:\"r\"===t?s:i,n=e.xAxisID=l(i.xAxisID,Bs(t,\"x\")),o=e.yAxisID=l(i.yAxisID,Bs(t,\"y\")),a=e.rAxisID=l(i.rAxisID,Bs(t,\"r\")),r=e.indexAxis,h=e.iAxisID=s(r,n,o,a),c=e.vAxisID=s(r,o,n,a);e.xScale=this.getScaleForId(n),e.yScale=this.getScaleForId(o),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(h),e.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update(\"reset\")}_destroy(){const t=this._cachedMeta;this._data&&rt(this._data,this),t._stacked&&Ws(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(o(e)){const t=this._cachedMeta;this._data=function(t,e){const{iScale:i,vScale:s}=e,n=\"x\"===i.axis?\"x\":\"y\",o=\"x\"===s.axis?\"x\":\"y\",a=Object.keys(t),r=new Array(a.length);let l,h,c;for(l=0,h=a.length;l\u003Ch;++l)c=a[l],r[l]={[n]:c,[o]:t[c]};return r}(e,t)}else if(i!==e){if(i){rt(i,this);const t=this._cachedMeta;Ws(t),t._parsed=[]}e&&Object.isExtensible(e)&&at(e,this),this._syncList=[],this._data=e}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const n=e._stacked;e._stacked=Is(e.vScale,e),e.stack!==i.stack&&(s=!0,Ws(e),e.stack=i.stack),this._resyncElements(t),(s||n!==e._stacked)&&(Vs(this,e._parsed),e._stacked=Is(e.vScale,e))}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:i,_data:s}=this,{iScale:a,_stacked:r}=i,l=a.axis;let h,c,d,u=0===t&&e===s.length||i._sorted,f=t>0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=s,i._sorted=!0,d=s;else{d=n(s[t])?this.parseArrayData(i,s,t,e):o(s[t])?this.parseObjectData(i,s,t,e):this.parsePrimitiveData(i,s,t,e);const a=()=>null===c[l]||f&&c[l]\u003Cf[l];for(h=0;h\u003Ce;++h)i._parsed[h+t]=c=d[h],u&&(a()&&(u=!1),f=c);i._sorted=u}r&&Vs(this,d)}parsePrimitiveData(t,e,i,s){const{iScale:n,vScale:o}=t,a=n.axis,r=o.axis,l=n.getLabels(),h=n===o,c=new Array(s);let d,u,f;for(d=0,u=s;d\u003Cu;++d)f=d+i,c[d]={[a]:h||n.parse(l[f],f),[r]:o.parse(e[f],f)};return c}parseArrayData(t,e,i,s){const{xScale:n,yScale:o}=t,a=new Array(s);let r,l,h,c;for(r=0,l=s;r\u003Cl;++r)h=r+i,c=e[h],a[r]={x:n.parse(c[0],h),y:o.parse(c[1],h)};return a}parseObjectData(t,e,i,s){const{xScale:n,yScale:o}=t,{xAxisKey:a=\"x\",yAxisKey:r=\"y\"}=this._parsing,l=new Array(s);let h,c,d,u;for(h=0,c=s;h\u003Cc;++h)d=h+i,u=e[d],l[h]={x:n.parse(M(u,a),d),y:o.parse(M(u,r),d)};return l}getParsed(t){return this._cachedMeta._parsed[t]}getDataElement(t){return this._cachedMeta.data[t]}applyStack(t,e,i){const s=this.chart,n=this._cachedMeta,o=e[t.axis];return Rs({keys:Es(s,!0),values:e._stacks[t.axis]._visualValues},o,n.index,{mode:i})}updateRangeFromParsed(t,e,i,s){const n=i[e.axis];let o=null===n?NaN:n;const a=s&&i._stacks[e.axis];s&&a&&(s.values=a,o=Rs(s,n,this._cachedMeta.index)),t.min=Math.min(t.min,o),t.max=Math.max(t.max,o)}getMinMax(t,e){const i=this._cachedMeta,s=i._parsed,n=i._sorted&&t===i.iScale,o=s.length,r=this._getOtherScale(t),l=((t,e,i)=>t&&!e.hidden&&e._stacked&&{keys:Es(i,!0),values:null})(e,i,this.chart),h={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:c,max:d}=function(t){const{min:e,max:i,minDefined:s,maxDefined:n}=t.getUserBounds();return{min:s?e:Number.NEGATIVE_INFINITY,max:n?i:Number.POSITIVE_INFINITY}}(r);let u,f;function g(){f=s[u];const e=f[r.axis];return!a(f[t.axis])||c>e||d\u003Ce}for(u=0;u\u003Co&&(g()||(this.updateRangeFromParsed(h,t,f,l),!n));++u);if(n)for(u=o-1;u>=0;--u)if(!g()){this.updateRangeFromParsed(h,t,f,l);break}return h}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,n,o;for(s=0,n=e.length;s\u003Cn;++s)o=e[s][t.axis],a(o)&&i.push(o);return i}getMaxOverflow(){return!1}getLabelAndValue(t){const e=this._cachedMeta,i=e.iScale,s=e.vScale,n=this.getParsed(t);return{label:i?\"\"+i.getLabelForValue(n[i.axis]):\"\",value:s?\"\"+s.getLabelForValue(n[s.axis]):\"\"}}_update(t){const e=this._cachedMeta;this.update(t||\"default\"),e._clip=function(t){let e,i,s,n;return o(t)?(e=t.top,i=t.right,s=t.bottom,n=t.left):e=i=s=n=t,{top:e,right:i,bottom:s,left:n,disabled:!1===t}}(l(this.options.clip,function(t,e,i){if(!1===i)return!1;const s=Ls(t,i),n=Ls(e,i);return{top:n.end,right:s.end,bottom:n.start,left:s.start}}(e.xScale,e.yScale,this.getMaxOverflow())))}update(t){}draw(){const t=this._ctx,e=this.chart,i=this._cachedMeta,s=i.data||[],n=e.chartArea,o=[],a=this._drawStart||0,r=this._drawCount||s.length-a,l=this.options.drawActiveElementsOnTop;let h;for(i.dataset&&i.dataset.draw(t,n,a,r),h=a;h\u003Ca+r;++h){const e=s[h];e.hidden||(e.active&&l?o.push(e):e.draw(t,n))}for(h=0;h\u003Co.length;++h)o[h].draw(t,n)}getStyle(t,e){const i=e?\"active\":\"default\";return void 0===t&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(i):this.resolveDataElementOptions(t||0,i)}getContext(t,e,i){const s=this.getDataset();let n;if(t>=0&&t\u003Cthis._cachedMeta.data.length){const e=this._cachedMeta.data[t];n=e.$context||(e.$context=function(t,e,i){return Ci(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:i,index:e,mode:\"default\",type:\"data\"})}(this.getContext(),t,e)),n.parsed=this.getParsed(t),n.raw=s.data[t],n.index=n.dataIndex=t}else n=this.$context||(this.$context=function(t,e){return Ci(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:\"default\",type:\"dataset\"})}(this.chart.getContext(),this.index)),n.dataset=s,n.index=n.datasetIndex=this.index;return n.active=!!e,n.mode=i,n}resolveDatasetElementOptions(t){return this._resolveElementOptions(this.datasetElementType.id,t)}resolveDataElementOptions(t,e){return this._resolveElementOptions(this.dataElementType.id,e,t)}_resolveElementOptions(t,e=\"default\",i){const s=\"active\"===e,n=this._cachedDataOpts,o=t+\"-\"+e,a=n[o],r=this.enableOptionSharing&&k(i);if(a)return Hs(a,r);const l=this.chart.config,h=l.datasetElementScopeKeys(this._type,t),c=s?[`${t}Hover`,\"hover\",t,\"\"]:[t,\"\"],d=l.getOptionScopes(this.getDataset(),h),u=Object.keys(ue.elements[t]),f=l.resolveNamedOptions(d,u,(()=>this.getContext(i,s,e)),c);return f.$shared&&(f.$shared=r,n[o]=Object.freeze(Hs(f,r))),f}_resolveAnimations(t,e,i){const s=this.chart,n=this._cachedDataOpts,o=`animation-${e}`,a=n[o];if(a)return a;let r;if(!1!==s.options.animation){const s=this.chart.config,n=s.datasetAnimationScopeKeys(this._type,e),o=s.getOptionScopes(this.getDataset(),n);r=s.createResolver(o,this.getContext(t,i,e))}const l=new Ts(s,r&&r.animations);return r&&r._cacheable&&(n[o]=Object.freeze(l)),l}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||Ns(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const i=this.resolveDataElementOptions(t,e),s=this._sharedOptions,n=this.getSharedOptions(i),o=this.includeOptions(e,n)||n!==s;return this.updateSharedOptions(n,e,i),{sharedOptions:n,includeOptions:o}}updateElement(t,e,i,s){Ns(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!Ns(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;const n=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(n)||n})}removeHoverStyle(t,e,i){this._setStyle(t,i,\"active\",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,\"active\",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,\"active\",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,\"active\",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[t,e,i]of this._syncList)this[t](e,i);this._syncList=[];const s=i.length,n=e.length,o=Math.min(n,s);o&&this.parse(0,o),n>s?this._insertElements(s,n-s,t):n\u003Cs&&this._removeElements(n,s-n)}_insertElements(t,e,i=!0){const s=this._cachedMeta,n=s.data,o=t+e;let a;const r=t=>{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;a\u003Co;++a)n[a]=new this.dataElementType;this._parsing&&r(s._parsed),this.parse(t,e),i&&this.updateElements(n,t,e,\"reset\")}updateElements(t,e,i,s){}_removeElements(t,e){const i=this._cachedMeta;if(this._parsing){const s=i._parsed.splice(t,e);i._stacked&&Ws(i,s)}i.data.splice(t,e)}_sync(t){if(this._parsing)this._syncList.push(t);else{const[e,i,s]=t;this[e](i,s)}this.chart._dataChanges.push([this.index,...t])}_onDataPush(){const t=arguments.length;this._sync([\"_insertElements\",this.getDataset().data.length-t,t])}_onDataPop(){this._sync([\"_removeElements\",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync([\"_removeElements\",0,1])}_onDataSplice(t,e){e&&this._sync([\"_removeElements\",t,e]);const i=arguments.length-2;i&&this._sync([\"_insertElements\",t,i])}_onDataUnshift(){this._sync([\"_insertElements\",0,arguments.length])}}class $s{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:i}=this.getProps([\"x\",\"y\"],t);return{x:e,y:i}}hasValue(){return N(this.x)&&N(this.y)}getProps(t,e){const i=this.$animations;if(!e||!i)return this;const s={};return t.forEach((t=>{s[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),s}}function Ys(t,e){const i=t.options.ticks,n=function(t){const e=t.options.offset,i=t._tickSize(),s=t._length\u002Fi+(e?0:1),n=t._maxLength\u002Fi;return Math.floor(Math.min(s,n))}(t),o=Math.min(i.maxTicksLimit||n,n),a=i.major.enabled?function(t){const e=[];let i,s;for(i=0,s=t.length;i\u003Cs;i++)t[i].major&&e.push(i);return e}(e):[],r=a.length,l=a[0],h=a[r-1],c=[];if(r>o)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;n\u003Ct.length;n++)n===a&&(e.push(t[n]),o++,a=i[o*s])}(e,c,a,r\u002Fo),c;const d=function(t,e,i){const s=function(t){const e=t.length;let i,s;if(e\u003C2)return!1;for(s=t[0],i=1;i\u003Ce;++i)if(t[i]-t[i-1]!==s)return!1;return s}(t),n=e.length\u002Fi;if(!s)return Math.max(n,1);const o=W(s);for(let t=0,e=o.length-1;t\u003Ce;t++){const e=o[t];if(e>n)return e}return Math.max(n,1)}(a,e,o);if(r>0){let t,i;const n=r>1?Math.round((h-l)\u002F(r-1)):null;for(Us(e,c,d,s(n)?0:l-n,l),t=0,i=r-1;t\u003Ci;t++)Us(e,c,d,a[t],a[t+1]);return Us(e,c,d,h,s(n)?e.length:h+n),c}return Us(e,c,d),c}function Us(t,e,i,s,n){const o=l(s,0),a=Math.min(l(n,t.length),t.length);let r,h,c,d=0;for(i=Math.ceil(i),n&&(r=n-s,i=r\u002FMath.floor(r\u002Fi)),c=o;c\u003C0;)d++,c=Math.round(o+d*i);for(h=Math.max(o,0);h\u003Ca;h++)h===c&&(e.push(t[h]),d++,c=Math.round(o+d*i))}const Xs=(t,e,i)=>\"top\"===e||\"left\"===e?t[e]+i:t[e]-i,qs=(t,e)=>Math.min(e||t,t);function Ks(t,e){const i=[],s=t.length\u002Fe,n=t.length;let o=0;for(;o\u003Cn;o+=s)i.push(t[Math.floor(o)]);return i}function Gs(t,e,i){const s=t.ticks.length,n=Math.min(e,s-1),o=t._startPixel,a=t._endPixel,r=1e-6;let l,h=t.getPixelForTick(n);if(!(i&&(l=1===s?Math.max(h-o,a-h):0===e?(t.getPixelForTick(1)-h)\u002F2:(h-t.getPixelForTick(n-1))\u002F2,h+=n\u003Ce?l:-l,h\u003Co-r||h>a+r)))return h}function Js(t){return t.drawTicks?t.tickLength:0}function Zs(t,e){if(!t.display)return 0;const i=Si(t.font,e),s=ki(t.padding);return(n(t.text)?t.text.length:1)*i.lineHeight+s.height}function Qs(t,e,i){let s=ut(t);return(i&&\"right\"!==e||!i&&\"right\"===e)&&(s=(t=>\"left\"===t?\"right\":\"right\"===t?\"left\":t)(s)),s}class tn extends $s{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=r(t,Number.POSITIVE_INFINITY),e=r(e,Number.NEGATIVE_INFINITY),i=r(i,Number.POSITIVE_INFINITY),s=r(s,Number.NEGATIVE_INFINITY),{min:r(t,i),max:r(e,s),minDefined:a(t),maxDefined:a(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:n,maxDefined:o}=this.getUserBounds();if(n&&o)return{min:i,max:s};const a=this.getMatchingVisibleMetas();for(let r=0,l=a.length;r\u003Cl;++r)e=a[r].controller.getMinMax(this,t),n||(i=Math.min(i,e.min)),o||(s=Math.max(s,e.max));return i=o&&i>s?s:i,s=n&&i>s?i:s,{min:r(i,r(s,i)),max:r(s,r(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){d(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:n,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Di(this,n,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const r=a\u003Cthis.ticks.length;this._convertTicksToLabels(r?Ks(this.ticks,a):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),o.display&&(o.autoSkip||\"auto\"===o.source)&&(this.ticks=Ys(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),r&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let t,e,i=this.options.reverse;this.isHorizontal()?(t=this.left,e=this.right):(t=this.top,e=this.bottom,i=!i),this._startPixel=t,this._endPixel=e,this._reversePixels=i,this._length=e-t,this._alignToPixels=this.options.alignToPixels}afterUpdate(){d(this.options.afterUpdate,[this])}beforeSetDimensions(){d(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){d(this.options.afterSetDimensions,[this])}_callHooks(t){this.chart.notifyPlugins(t,this.getContext()),d(this.options[t],[this])}beforeDataLimits(){this._callHooks(\"beforeDataLimits\")}determineDataLimits(){}afterDataLimits(){this._callHooks(\"afterDataLimits\")}beforeBuildTicks(){this._callHooks(\"beforeBuildTicks\")}buildTicks(){return[]}afterBuildTicks(){this._callHooks(\"afterBuildTicks\")}beforeTickToLabelConversion(){d(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(t){const e=this.options.ticks;let i,s,n;for(i=0,s=t.length;i\u003Cs;i++)n=t[i],n.label=d(e.callback,[n.value,i,t],this)}afterTickToLabelConversion(){d(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){d(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const t=this.options,e=t.ticks,i=qs(this.ticks.length,t.ticks.maxTicksLimit),s=e.minRotation||0,n=e.maxRotation;let o,a,r,l=s;if(!this._isVisible()||!e.display||s>=n||i\u003C=1||!this.isHorizontal())return void(this.labelRotation=s);const h=this._getLabelSizes(),c=h.widest.width,d=h.highest.height,u=Z(this.chart.width-c,0,this.maxWidth);o=t.offset?this.maxWidth\u002Fi:u\u002F(i-1),c+6>o&&(o=u\u002F(i-(t.offset?.5:1)),a=this.maxHeight-Js(t.grid)-e.padding-Zs(t.title,this.chart.options.font),r=Math.sqrt(c*c+d*d),l=Y(Math.min(Math.asin(Z((h.highest.height+6)\u002Fo,-1,1)),Math.asin(Z(a\u002Fr,-1,1))-Math.asin(Z(d\u002Fr,-1,1)))),l=Math.max(s,Math.min(n,l))),this.labelRotation=l}afterCalculateLabelRotation(){d(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){d(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:n}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const o=Zs(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=Js(n)+o):(t.height=this.maxHeight,t.width=Js(n)+o),i.display&&this.ticks.length){const{first:e,last:s,widest:n,highest:o}=this._getLabelSizes(),r=2*i.padding,l=$(this.labelRotation),h=Math.cos(l),c=Math.sin(l);if(a){const e=i.mirror?0:c*n.width+h*o.height;t.height=Math.min(this.maxHeight,t.height+e+r)}else{const e=i.mirror?0:h*n.width+c*o.height;t.width=Math.min(this.maxWidth,t.width+e+r)}this._calculatePadding(e,s,c,h)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){const{ticks:{align:n,padding:o},position:a}=this.options,r=0!==this.labelRotation,l=\"top\"!==a&&\"x\"===this.axis;if(this.isHorizontal()){const a=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;r?l?(c=s*t.width,d=i*e.height):(c=i*t.height,d=s*e.width):\"start\"===n?d=e.width:\"end\"===n?c=t.width:\"inner\"!==n&&(c=t.width\u002F2,d=e.width\u002F2),this.paddingLeft=Math.max((c-a+o)*this.width\u002F(this.width-a),0),this.paddingRight=Math.max((d-h+o)*this.width\u002F(this.width-h),0)}else{let i=e.height\u002F2,s=t.height\u002F2;\"start\"===n?(i=0,s=t.height):\"end\"===n&&(i=e.height,s=0),this.paddingTop=i+o,this.paddingBottom=s+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){d(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return\"top\"===e||\"bottom\"===e||\"x\"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e\u003Ci;e++)s(t[e].label)&&(t.splice(e,1),i--,e--);this.afterTickToLabelConversion()}_getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ticks.sampleSize;let i=this.ticks;e\u003Ci.length&&(i=Ks(i,e)),this._labelSizes=t=this._computeLabelSizes(i,i.length,this.options.ticks.maxTicksLimit)}return t}_computeLabelSizes(t,e,i){const{ctx:o,_longestTextCache:a}=this,r=[],l=[],h=Math.floor(e\u002Fqs(e,i));let c,d,f,g,p,m,x,b,_,y,v,M=0,w=0;for(c=0;c\u003Ce;c+=h){if(g=t[c].label,p=this._resolveTickFontOptions(c),o.font=m=p.string,x=a[m]=a[m]||{data:{},gc:[]},b=p.lineHeight,_=y=0,s(g)||n(g)){if(n(g))for(d=0,f=g.length;d\u003Cf;++d)v=g[d],s(v)||n(v)||(_=Ce(o,x.data,x.gc,_,v),y+=b)}else _=Ce(o,x.data,x.gc,_,g),y=b;r.push(_),l.push(y),M=Math.max(_,M),w=Math.max(y,w)}!function(t,e){u(t,(t=>{const i=t.gc,s=i.length\u002F2;let n;if(s>e){for(n=0;n\u003Cs;++n)delete t.data[i[n]];i.splice(0,s)}}))}(a,e);const k=r.indexOf(M),S=l.indexOf(w),P=t=>({width:r[t]||0,height:l[t]||0});return{first:P(0),last:P(e-1),widest:P(k),highest:P(S),widths:r,heights:l}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t\u003C0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return Q(this._alignToPixels?Ae(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)\u002Fthis._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t\u003C0&&e\u003C0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&t\u003Ce.length){const i=e[t];return i.$context||(i.$context=function(t,e,i){return Ci(t,{tick:i,index:e,type:\"tick\"})}(this.getContext(),t,i))}return this.$context||(this.$context=Ci(this.chart.getContext(),{scale:this,type:\"scale\"}))}_tickSize(){const t=this.options.ticks,e=$(this.labelRotation),i=Math.abs(Math.cos(e)),s=Math.abs(Math.sin(e)),n=this._getLabelSizes(),o=t.autoSkipPadding||0,a=n?n.widest.width+o:0,r=n?n.highest.height+o:0;return this.isHorizontal()?r*i>a*s?a\u002Fi:r\u002Fs:r*s\u003Ca*i?r\u002Fi:a\u002Fs}_isVisible(){const t=this.options.display;return\"auto\"!==t?!!t:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:n,position:a,border:r}=s,h=n.offset,c=this.isHorizontal(),d=this.ticks.length+(h?1:0),u=Js(n),f=[],g=r.setContext(this.getContext()),p=g.display?g.width:0,m=p\u002F2,x=function(t){return Ae(i,t,p)};let b,_,y,v,M,w,k,S,P,D,C,O;if(\"top\"===a)b=x(this.bottom),w=this.bottom-u,S=b-m,D=x(t.top)+m,O=t.bottom;else if(\"bottom\"===a)b=x(this.top),D=t.top,O=x(t.bottom)-m,w=b+m,S=this.top+u;else if(\"left\"===a)b=x(this.right),M=this.right-u,k=b-m,P=x(t.left)+m,C=t.right;else if(\"right\"===a)b=x(this.left),P=t.left,C=x(t.right)-m,M=b+m,k=this.left+u;else if(\"x\"===e){if(\"center\"===a)b=x((t.top+t.bottom)\u002F2+.5);else if(o(a)){const t=Object.keys(a)[0],e=a[t];b=x(this.chart.scales[t].getPixelForValue(e))}D=t.top,O=t.bottom,w=b+m,S=w+u}else if(\"y\"===e){if(\"center\"===a)b=x((t.left+t.right)\u002F2);else if(o(a)){const t=Object.keys(a)[0],e=a[t];b=x(this.chart.scales[t].getPixelForValue(e))}M=b-m,k=M-u,P=t.left,C=t.right}const A=l(s.ticks.maxTicksLimit,d),T=Math.max(1,Math.ceil(d\u002FA));for(_=0;_\u003Cd;_+=T){const t=this.getContext(_),e=n.setContext(t),s=r.setContext(t),o=e.lineWidth,a=e.color,l=s.dash||[],d=s.dashOffset,u=e.tickWidth,g=e.tickColor,p=e.tickBorderDash||[],m=e.tickBorderDashOffset;y=Gs(this,_,h),void 0!==y&&(v=Ae(i,y,o),c?M=k=P=C=v:w=S=D=O=v,f.push({tx1:M,ty1:w,tx2:k,ty2:S,x1:P,y1:D,x2:C,y2:O,width:o,color:a,borderDash:l,borderDashOffset:d,tickWidth:u,tickColor:g,tickBorderDash:p,tickBorderDashOffset:m}))}return this._ticksLength=d,this._borderValue=b,f}_computeLabelItems(t){const e=this.axis,i=this.options,{position:s,ticks:a}=i,r=this.isHorizontal(),l=this.ticks,{align:h,crossAlign:c,padding:d,mirror:u}=a,f=Js(i.grid),g=f+d,p=u?-d:g,m=-$(this.labelRotation),x=[];let b,_,y,v,M,w,k,S,P,D,C,O,A=\"middle\";if(\"top\"===s)w=this.bottom-p,k=this._getXAxisLabelAlignment();else if(\"bottom\"===s)w=this.top+p,k=this._getXAxisLabelAlignment();else if(\"left\"===s){const t=this._getYAxisLabelAlignment(f);k=t.textAlign,M=t.x}else if(\"right\"===s){const t=this._getYAxisLabelAlignment(f);k=t.textAlign,M=t.x}else if(\"x\"===e){if(\"center\"===s)w=(t.top+t.bottom)\u002F2+g;else if(o(s)){const t=Object.keys(s)[0],e=s[t];w=this.chart.scales[t].getPixelForValue(e)+g}k=this._getXAxisLabelAlignment()}else if(\"y\"===e){if(\"center\"===s)M=(t.left+t.right)\u002F2-g;else if(o(s)){const t=Object.keys(s)[0],e=s[t];M=this.chart.scales[t].getPixelForValue(e)}k=this._getYAxisLabelAlignment(f).textAlign}\"y\"===e&&(\"start\"===h?A=\"top\":\"end\"===h&&(A=\"bottom\"));const T=this._getLabelSizes();for(b=0,_=l.length;b\u003C_;++b){y=l[b],v=y.label;const t=a.setContext(this.getContext(b));S=this.getPixelForTick(b)+a.labelOffset,P=this._resolveTickFontOptions(b),D=P.lineHeight,C=n(v)?v.length:1;const e=C\u002F2,i=t.color,o=t.textStrokeColor,h=t.textStrokeWidth;let d,f=k;if(r?(M=S,\"inner\"===k&&(f=b===_-1?this.options.reverse?\"left\":\"right\":0===b?this.options.reverse?\"right\":\"left\":\"center\"),O=\"top\"===s?\"near\"===c||0!==m?-C*D+D\u002F2:\"center\"===c?-T.highest.height\u002F2-e*D+D:-T.highest.height+D\u002F2:\"near\"===c||0!==m?D\u002F2:\"center\"===c?T.highest.height\u002F2-e*D:T.highest.height-C*D,u&&(O*=-1),0===m||t.showLabelBackdrop||(M+=D\u002F2*Math.sin(m))):(w=S,O=(1-C)*D\u002F2),t.showLabelBackdrop){const e=ki(t.backdropPadding),i=T.heights[b],s=T.widths[b];let n=O-e.top,o=0-e.left;switch(A){case\"middle\":n-=i\u002F2;break;case\"bottom\":n-=i}switch(k){case\"center\":o-=s\u002F2;break;case\"right\":o-=s;break;case\"inner\":b===_-1?o-=s:b>0&&(o-=s\u002F2)}d={left:o,top:n,width:s+e.width,height:i+e.height,color:t.backdropColor}}x.push({label:v,font:P,textOffset:O,options:{rotation:m,color:i,strokeColor:o,strokeWidth:h,textAlign:f,textBaseline:A,translation:[M,w],backdrop:d}})}return x}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-$(this.labelRotation))return\"top\"===t?\"left\":\"right\";let i=\"center\";return\"start\"===e.align?i=\"left\":\"end\"===e.align?i=\"right\":\"inner\"===e.align&&(i=\"inner\"),i}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:i,mirror:s,padding:n}}=this.options,o=t+n,a=this._getLabelSizes().widest.width;let r,l;return\"left\"===e?s?(l=this.right+n,\"near\"===i?r=\"left\":\"center\"===i?(r=\"center\",l+=a\u002F2):(r=\"right\",l+=a)):(l=this.right-o,\"near\"===i?r=\"right\":\"center\"===i?(r=\"center\",l-=a\u002F2):(r=\"left\",l=this.left)):\"right\"===e?s?(l=this.left+n,\"near\"===i?r=\"right\":\"center\"===i?(r=\"center\",l-=a\u002F2):(r=\"left\",l-=a)):(l=this.left+o,\"near\"===i?r=\"left\":\"center\"===i?(r=\"center\",l+=a\u002F2):(r=\"right\",l=this.right)):r=\"right\",{textAlign:r,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;return\"left\"===e||\"right\"===e?{top:0,left:this.left,bottom:t.height,right:this.right}:\"top\"===e||\"bottom\"===e?{top:this.top,left:0,bottom:this.bottom,right:t.width}:void 0}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:i,top:s,width:n,height:o}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(i,s,n,o),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const i=this.ticks.findIndex((e=>e.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let n,o;const a=(t,e,s)=>{s.width&&s.color&&(i.save(),i.lineWidth=s.width,i.strokeStyle=s.color,i.setLineDash(s.borderDash||[]),i.lineDashOffset=s.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(n=0,o=s.length;n\u003Co;++n){const t=s[n];e.drawOnChartArea&&a({x:t.x1,y:t.y1},{x:t.x2,y:t.y2},t),e.drawTicks&&a({x:t.tx1,y:t.ty1},{x:t.tx2,y:t.ty2},{color:t.tickColor,width:t.tickWidth,borderDash:t.tickBorderDash,borderDashOffset:t.tickBorderDashOffset})}}drawBorder(){const{chart:t,ctx:e,options:{border:i,grid:s}}=this,n=i.setContext(this.getContext()),o=i.display?n.width:0;if(!o)return;const a=s.setContext(this.getContext(0)).lineWidth,r=this._borderValue;let l,h,c,d;this.isHorizontal()?(l=Ae(t,this.left,o)-o\u002F2,h=Ae(t,this.right,a)+a\u002F2,c=d=r):(c=Ae(t,this.top,o)-o\u002F2,d=Ae(t,this.bottom,a)+a\u002F2,l=h=r),e.save(),e.lineWidth=n.width,e.strokeStyle=n.color,e.beginPath(),e.moveTo(l,c),e.lineTo(h,d),e.stroke(),e.restore()}drawLabels(t){if(!this.options.ticks.display)return;const e=this.ctx,i=this._computeLabelArea();i&&Ie(e,i);const s=this.getLabelItems(t);for(const t of s){const i=t.options,s=t.font;Ne(e,t.label,0,t.textOffset,s,i)}i&&ze(e)}drawTitle(){const{ctx:t,options:{position:e,title:i,reverse:s}}=this;if(!i.display)return;const a=Si(i.font),r=ki(i.padding),l=i.align;let h=a.lineHeight\u002F2;\"bottom\"===e||\"center\"===e||o(e)?(h+=r.bottom,n(i.text)&&(h+=a.lineHeight*(i.text.length-1))):h+=r.top;const{titleX:c,titleY:d,maxWidth:u,rotation:f}=function(t,e,i,s){const{top:n,left:a,bottom:r,right:l,chart:h}=t,{chartArea:c,scales:d}=h;let u,f,g,p=0;const m=r-n,x=l-a;if(t.isHorizontal()){if(f=ft(s,a,l),o(i)){const t=Object.keys(i)[0],s=i[t];g=d[t].getPixelForValue(s)+m-e}else g=\"center\"===i?(c.bottom+c.top)\u002F2+m-e:Xs(t,i,e);u=l-a}else{if(o(i)){const t=Object.keys(i)[0],s=i[t];f=d[t].getPixelForValue(s)-x+e}else f=\"center\"===i?(c.left+c.right)\u002F2-x+e:Xs(t,i,e);g=ft(s,r,n),p=\"left\"===i?-E:E}return{titleX:f,titleY:g,maxWidth:u,rotation:p}}(this,h,e,l);Ne(t,i.text,0,0,a,{color:i.color,maxWidth:u,rotation:f,textAlign:Qs(l,e,s),textBaseline:\"middle\",translation:[c,d]})}draw(t){this._isVisible()&&(this.drawBackground(),this.drawGrid(t),this.drawBorder(),this.drawTitle(),this.drawLabels(t))}_layers(){const t=this.options,e=t.ticks&&t.ticks.z||0,i=l(t.grid&&t.grid.z,-1),s=l(t.border&&t.border.z,0);return this._isVisible()&&this.draw===tn.prototype.draw?[{z:i,draw:t=>{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+\"AxisID\",s=[];let n,o;for(n=0,o=e.length;n\u003Co;++n){const o=e[n];o[i]!==this.id||t&&o.type!==t||s.push(o)}return s}_resolveTickFontOptions(t){return Si(this.options.ticks.setContext(this.getContext(t)).font)}_maxDigits(){const t=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)\u002Ft}}class en{constructor(t,e,i){this.type=t,this.scope=e,this.override=i,this.items=Object.create(null)}isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prototype,t.prototype)}register(t){const e=Object.getPrototypeOf(t);let i;(function(t){return\"id\"in t&&\"defaults\"in t})(e)&&(i=this.register(e));const s=this.items,n=t.id,o=this.scope+\".\"+n;if(!n)throw new Error(\"class does not have id: \"+t);return n in s||(s[n]=t,function(t,e,i){const s=x(Object.create(null),[i?ue.get(i):{},ue.get(e),t.defaults]);ue.set(e,s),t.defaultRoutes&&function(t,e){Object.keys(e).forEach((i=>{const s=i.split(\".\"),n=s.pop(),o=[t].concat(s).join(\".\"),a=e[i].split(\".\"),r=a.pop(),l=a.join(\".\");ue.route(o,n,l,r)}))}(e,t.defaultRoutes);t.descriptors&&ue.describe(e,t.descriptors)}(t,o,i),this.override&&ue.override(t.id,t.overrides)),o}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in ue[s]&&(delete ue[s][i],this.override&&delete re[i])}}class sn{constructor(){this.controllers=new en(js,\"datasets\",!0),this.elements=new en($s,\"elements\"),this.plugins=new en(Object,\"plugins\"),this.scales=new en(tn,\"scales\"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each(\"register\",t)}remove(...t){this._each(\"unregister\",t)}addControllers(...t){this._each(\"register\",t,this.controllers)}addElements(...t){this._each(\"register\",t,this.elements)}addPlugins(...t){this._each(\"register\",t,this.plugins)}addScales(...t){this._each(\"register\",t,this.scales)}getController(t){return this._get(t,this.controllers,\"controller\")}getElement(t){return this._get(t,this.elements,\"element\")}getPlugin(t){return this._get(t,this.plugins,\"plugin\")}getScale(t){return this._get(t,this.scales,\"scale\")}removeControllers(...t){this._each(\"unregister\",t,this.controllers)}removeElements(...t){this._each(\"unregister\",t,this.elements)}removePlugins(...t){this._each(\"unregister\",t,this.plugins)}removeScales(...t){this._each(\"unregister\",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):u(e,(e=>{const s=i||this._getRegistryForType(e);this._exec(t,s,e)}))}))}_exec(t,e,i){const s=w(t);d(i[\"before\"+s],[],i),e[t](i),d(i[\"after\"+s],[],i)}_getRegistryForType(t){for(let e=0;e\u003Cthis._typedRegistries.length;e++){const i=this._typedRegistries[e];if(i.isForType(t))return i}return this.plugins}_get(t,e,i){const s=e.get(t);if(void 0===s)throw new Error('\"'+t+'\" is not a registered '+i+\".\");return s}}var nn=new sn;class on{constructor(){this._init=void 0}notify(t,e,i,s){if(\"beforeInit\"===e&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,\"install\")),void 0===this._init)return;const n=s?this._descriptors(t).filter(s):this._descriptors(t),o=this._notify(n,t,e,i);return\"afterDestroy\"===e&&(this._notify(n,t,\"stop\"),this._notify(this._init,t,\"uninstall\"),this._init=void 0),o}_notify(t,e,i,s){s=s||{};for(const n of t){const t=n.plugin;if(!1===d(t[i],[e,s,n.options],t)&&s.cancelable)return!1}return!0}invalidate(){s(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const e=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),e}_createDescriptors(t,e){const i=t&&t.config,s=l(i.options&&i.options.plugins,{}),n=function(t){const e={},i=[],s=Object.keys(nn.plugins.items);for(let t=0;t\u003Cs.length;t++)i.push(nn.getPlugin(s[t]));const n=t.plugins||[];for(let t=0;t\u003Cn.length;t++){const s=n[t];-1===i.indexOf(s)&&(i.push(s),e[s.id]=!0)}return{plugins:i,localIds:e}}(i);return!1!==s||e?function(t,{plugins:e,localIds:i},s,n){const o=[],a=t.getContext();for(const r of e){const e=r.id,l=an(s[e],n);null!==l&&o.push({plugin:r,options:rn(t.config,{plugin:r,local:i[e]},l,a)})}return o}(t,n,s,e):[]}_notifyStateChanges(t){const e=this._oldCache||[],i=this._cache,s=(t,e)=>t.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(s(e,i),t,\"stop\"),this._notify(s(i,e),t,\"start\")}}function an(t,e){return e||!1!==t?!0===t?{}:t:null}function rn(t,{plugin:e,local:i},s,n){const o=t.pluginScopeKeys(e),a=t.getOptionScopes(s,o);return i&&e.defaults&&a.push(e.defaults),t.createResolver(a,n,[\"\"],{scriptable:!1,indexable:!1,allKeys:!0})}function ln(t,e){const i=ue.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||\"x\"}function hn(t){if(\"x\"===t||\"y\"===t||\"r\"===t)return t}function cn(t,...e){if(hn(t))return t;for(const s of e){const e=s.axis||(\"top\"===(i=s.position)||\"bottom\"===i?\"x\":\"left\"===i||\"right\"===i?\"y\":void 0)||t.length>1&&hn(t[0].toLowerCase());if(e)return e}var i;throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function dn(t,e,i){if(i[e+\"AxisID\"]===t)return{axis:e}}function un(t,e){const i=re[t.type]||{scales:{}},s=e.scales||{},n=ln(t.type,e),a=Object.create(null);return Object.keys(s).forEach((e=>{const r=s[e];if(!o(r))return console.error(`Invalid scale configuration for scale: ${e}`);if(r._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${e}`);const l=cn(e,r,function(t,e){if(e.data&&e.data.datasets){const i=e.data.datasets.filter((e=>e.xAxisID===t||e.yAxisID===t));if(i.length)return dn(t,\"x\",i[0])||dn(t,\"y\",i[0])}return{}}(e,t),ue.scales[r.type]),h=function(t,e){return t===e?\"_index_\":\"_value_\"}(l,n),c=i.scales||{};a[e]=b(Object.create(null),[{axis:l},r,c[l],c[h]])})),t.data.datasets.forEach((i=>{const n=i.type||t.type,o=i.indexAxis||ln(n,e),r=(re[n]||{}).scales||{};Object.keys(r).forEach((t=>{const e=function(t,e){let i=t;return\"_index_\"===t?i=e:\"_value_\"===t&&(i=\"x\"===e?\"y\":\"x\"),i}(t,o),n=i[e+\"AxisID\"]||e;a[n]=a[n]||Object.create(null),b(a[n],[{axis:e},s[n],r[t]])}))})),Object.keys(a).forEach((t=>{const e=a[t];b(e,[ue.scales[e.type],ue.scale])})),a}function fn(t){const e=t.options||(t.options={});e.plugins=l(e.plugins,{}),e.scales=un(t,e)}function gn(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const pn=new Map,mn=new Set;function xn(t,e){let i=pn.get(t);return i||(i=e(),pn.set(t,i),mn.add(i)),i}const bn=(t,e,i)=>{const s=M(e,i);void 0!==s&&t.add(s)};class _n{constructor(t){this._config=function(t){return(t=t||{}).data=gn(t.data),fn(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=gn(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),fn(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return xn(t,(()=>[[`datasets.${t}`,\"\"]]))}datasetAnimationScopeKeys(t,e){return xn(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,\"\"]]))}datasetElementScopeKeys(t,e){return xn(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,\"\"]]))}pluginScopeKeys(t){const e=t.id;return xn(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!e||(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){const{options:s,type:n}=this,o=this._cachedScopes(t,i),a=o.get(e);if(a)return a;const r=new Set;e.forEach((e=>{t&&(r.add(t),e.forEach((e=>bn(r,t,e)))),e.forEach((t=>bn(r,s,t))),e.forEach((t=>bn(r,re[n]||{},t))),e.forEach((t=>bn(r,ue,t))),e.forEach((t=>bn(r,le,t)))}));const l=Array.from(r);return 0===l.length&&l.push(Object.create(null)),mn.has(e)&&o.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,re[e]||{},ue.datasets[e]||{},{type:e},ue,le]}resolveNamedOptions(t,e,i,s=[\"\"]){const o={$shared:!0},{resolver:a,subPrefixes:r}=yn(this._resolverCache,t,s);let l=a;if(function(t,e){const{isScriptable:i,isIndexable:s}=Ye(t);for(const o of e){const e=i(o),a=s(o),r=(a||e)&&t[o];if(e&&(S(r)||vn(r))||a&&n(r))return!0}return!1}(a,e)){o.$shared=!1;l=$e(a,i=S(i)?i():i,this.createResolver(t,i,r))}for(const t of e)o[t]=l[t];return o}createResolver(t,e,i=[\"\"],s){const{resolver:n}=yn(this._resolverCache,t,i);return o(e)?$e(n,e,void 0,s):n}}function yn(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const n=i.join();let o=s.get(n);if(!o){o={resolver:je(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes(\"hover\")))},s.set(n,o)}return o}const vn=t=>o(t)&&Object.getOwnPropertyNames(t).some((e=>S(t[e])));const Mn=[\"top\",\"bottom\",\"left\",\"right\",\"chartArea\"];function wn(t,e){return\"top\"===t||\"bottom\"===t||-1===Mn.indexOf(t)&&\"x\"===e}function kn(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-s[t]}}function Sn(t){const e=t.chart,i=e.options.animation;e.notifyPlugins(\"afterRender\"),d(i&&i.onComplete,[t],e)}function Pn(t){const e=t.chart,i=e.options.animation;d(i&&i.onProgress,[t],e)}function Dn(t){return fe()&&\"string\"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Cn={},On=t=>{const e=Dn(t);return Object.values(Cn).filter((t=>t.canvas===e)).pop()};function An(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;if(s>=e){const o=t[n];delete t[n],(i>0||s>e)&&(t[s+i]=o)}}}class Tn{static defaults=ue;static instances=Cn;static overrides=re;static registry=nn;static version=\"4.5.1\";static getChart=On;static register(...t){nn.add(...t),Ln()}static unregister(...t){nn.remove(...t),Ln()}constructor(t,e){const s=this.config=new _n(e),n=Dn(t),o=On(n);if(o)throw new Error(\"Canvas is already in use. Chart with ID '\"+o.id+\"' must be destroyed before the canvas with ID '\"+o.canvas.id+\"' can be reused.\");const a=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||Ps(n)),this.platform.updateConfig(s);const r=this.platform.acquireContext(n,a.aspectRatio),l=r&&r.canvas,h=l&&l.height,c=l&&l.width;this.id=i(),this.ctx=r,this.canvas=l,this.width=c,this.height=h,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new on,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=dt((t=>this.update(t)),a.resizeDelay||0),this._dataChanges=[],Cn[this.id]=this,r&&l?(bt.listen(this,\"complete\",Sn),bt.listen(this,\"progress\",Pn),this._initialize(),this.attached&&this.update()):console.error(\"Failed to create chart: can't acquire context from the given item\")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:n,_aspectRatio:o}=this;return s(t)?e&&o?o:n?i\u002Fn:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return nn}_initialize(){return this.notifyPlugins(\"beforeInit\"),this.options.responsive?this.resize():ke(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins(\"afterInit\"),this}clear(){return Te(this.canvas,this.ctx),this}stop(){return bt.stop(this),this}resize(t,e){bt.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,n=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,t,e,n),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),r=this.width?\"resize\":\"attach\";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,ke(this,a,!0)&&(this.notifyPlugins(\"resize\",{size:o}),d(i.onResize,[this,o],this),this.attached&&this._doResize(r)&&this.render())}ensureScalesHaveIDs(){u(this.options.scales||{},((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let n=[];e&&(n=n.concat(Object.keys(e).map((t=>{const i=e[t],s=cn(t,i),n=\"r\"===s,o=\"x\"===s;return{options:i,dposition:n?\"chartArea\":o?\"bottom\":\"left\",dtype:n?\"radialLinear\":o?\"category\":\"linear\"}})))),u(n,(e=>{const n=e.options,o=n.id,a=cn(o,n),r=l(n.type,e.dtype);void 0!==n.position&&wn(n.position,a)===wn(e.dposition)||(n.position=e.dposition),s[o]=!0;let h=null;if(o in i&&i[o].type===r)h=i[o];else{h=new(nn.getScale(r))({id:o,type:r,ctx:this.ctx,chart:this}),i[h.id]=h}h.init(n,t)})),u(s,((t,e)=>{t||delete i[e]})),u(i,(t=>{ls.configure(this,t,t.options),ls.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;t\u003Ci;++t)this._destroyDatasetMeta(t);t.splice(e,i-e)}this._sortedMetasets=t.slice(0).sort(kn(\"order\",\"index\"))}_removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:e}}=this;t.length>e.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i\u003Cs;i++){const s=e[i];let n=this.getDatasetMeta(i);const o=s.type||this.config.type;if(n.type&&n.type!==o&&(this._destroyDatasetMeta(i),n=this.getDatasetMeta(i)),n.type=o,n.indexAxis=s.indexAxis||ln(o,this.options),n.order=s.order||0,n.index=i,n.label=\"\"+s.label,n.visible=this.isDatasetVisible(i),n.controller)n.controller.updateIndex(i),n.controller.linkScales();else{const e=nn.getController(o),{datasetElementType:s,dataElementType:a}=ue.datasets[o];Object.assign(e,{dataElementType:nn.getElement(a),datasetElementType:s&&nn.getElement(s)}),n.controller=new e(this,i),t.push(n.controller)}}return this._updateMetasets(),t}_resetElements(){u(this.data.datasets,((t,e)=>{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins(\"reset\")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins(\"beforeUpdate\",{mode:t,cancelable:!0}))return;const n=this.buildOrUpdateControllers();this.notifyPlugins(\"beforeElementsUpdate\");let o=0;for(let t=0,e=this.data.datasets.length;t\u003Ce;t++){const{controller:e}=this.getDatasetMeta(t),i=!s&&-1===n.indexOf(e);e.buildOrUpdateElements(i),o=Math.max(+e.getMaxOverflow(),o)}o=this._minPadding=i.layout.autoPadding?o:0,this._updateLayout(o),s||u(n,(t=>{t.reset()})),this._updateDatasets(t),this.notifyPlugins(\"afterUpdate\",{mode:t}),this._layers.sort(kn(\"z\",\"_idx\"));const{_active:a,_lastEvent:r}=this;r?this._eventHandler(r,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){u(this.scales,(t=>{ls.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);P(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:n}of e){An(t,s,\"_removeElements\"===i?-n:n)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+\",\"+t.splice(1).join(\",\")))),s=i(0);for(let t=1;t\u003Ce;t++)if(!P(s,i(t)))return;return Array.from(s).map((t=>t.split(\",\"))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins(\"beforeLayout\",{cancelable:!0}))return;ls.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width\u003C=0||e.height\u003C=0;this._layers=[],u(this.boxes,(t=>{i&&\"chartArea\"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins(\"afterLayout\")}_updateDatasets(t){if(!1!==this.notifyPlugins(\"beforeDatasetsUpdate\",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t\u003Ce;++t)this.getDatasetMeta(t).controller.configure();for(let e=0,i=this.data.datasets.length;e\u003Ci;++e)this._updateDataset(e,S(t)?t({datasetIndex:e}):t);this.notifyPlugins(\"afterDatasetsUpdate\",{mode:t})}}_updateDataset(t,e){const i=this.getDatasetMeta(t),s={meta:i,index:t,mode:e,cancelable:!0};!1!==this.notifyPlugins(\"beforeDatasetUpdate\",s)&&(i.controller._update(e),s.cancelable=!1,this.notifyPlugins(\"afterDatasetUpdate\",s))}render(){!1!==this.notifyPlugins(\"beforeRender\",{cancelable:!0})&&(bt.has(this)?this.attached&&!bt.running(this)&&bt.start(this):(this.draw(),Sn({chart:this})))}draw(){let t;if(this._resizeBeforeDraw){const{width:t,height:e}=this._resizeBeforeDraw;this._resizeBeforeDraw=null,this._resize(t,e)}if(this.clear(),this.width\u003C=0||this.height\u003C=0)return;if(!1===this.notifyPlugins(\"beforeDraw\",{cancelable:!0}))return;const e=this._layers;for(t=0;t\u003Ce.length&&e[t].z\u003C=0;++t)e[t].draw(this.chartArea);for(this._drawDatasets();t\u003Ce.length;++t)e[t].draw(this.chartArea);this.notifyPlugins(\"afterDraw\")}_getSortedDatasetMetas(t){const e=this._sortedMetasets,i=[];let s,n;for(s=0,n=e.length;s\u003Cn;++s){const n=e[s];t&&!n.visible||i.push(n)}return i}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(!1===this.notifyPlugins(\"beforeDatasetsDraw\",{cancelable:!0}))return;const t=this.getSortedVisibleDatasetMetas();for(let e=t.length-1;e>=0;--e)this._drawDataset(t[e]);this.notifyPlugins(\"afterDatasetsDraw\")}_drawDataset(t){const e=this.ctx,i={meta:t,index:t.index,cancelable:!0},s=Ni(this,t);!1!==this.notifyPlugins(\"beforeDatasetDraw\",i)&&(s&&Ie(e,s),t.controller.draw(),s&&ze(e),i.cancelable=!1,this.notifyPlugins(\"afterDatasetDraw\",i))}isPointInArea(t){return Re(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,s){const n=Ki.modes[e];return\"function\"==typeof n?n(this,t,i,s):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s=i.filter((t=>t&&t._dataset===e)).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Ci(null,{chart:this,type:\"chart\"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return\"boolean\"==typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?\"show\":\"hide\",n=this.getDatasetMeta(t),o=n.controller._resolveAnimations(void 0,s);k(e)?(n.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),o.update(n,{visible:i}),this.update((e=>e.datasetIndex===t?s:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),bt.remove(this),t=0,e=this.data.datasets.length;t\u003Ce;++t)this._destroyDatasetMeta(t)}destroy(){this.notifyPlugins(\"beforeDestroy\");const{canvas:t,ctx:e}=this;this._stop(),this.config.clearCache(),t&&(this.unbindEvents(),Te(t,e),this.platform.releaseContext(e),this.canvas=null,this.ctx=null),delete Cn[this.id],this.notifyPlugins(\"afterDestroy\")}toBase64Image(...t){return this.canvas.toDataURL(...t)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const t=this._listeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};u(this.options.events,(t=>i(t,s)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(i,s)=>{t[i]&&(e.removeEventListener(this,i,s),delete t[i])},n=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const a=()=>{s(\"attach\",a),this.attached=!0,this.resize(),i(\"resize\",n),i(\"detach\",o)};o=()=>{this.attached=!1,s(\"resize\",n),this._stop(),this._resize(0,0),i(\"attach\",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){u(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},u(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const s=i?\"set\":\"remove\";let n,o,a,r;for(\"dataset\"===e&&(n=this.getDatasetMeta(t[0].datasetIndex),n.controller[\"_\"+s+\"DatasetHoverStyle\"]()),a=0,r=t.length;a\u003Cr;++a){o=t[a];const e=o&&this.getDatasetMeta(o.datasetIndex).controller;e&&e[s+\"HoverStyle\"](o.element,o.datasetIndex,o.index)}}getActiveElements(){return this._active||[]}setActiveElements(t){const e=this._active||[],i=t.map((({datasetIndex:t,index:e})=>{const i=this.getDatasetMeta(t);if(!i)throw new Error(\"No dataset found at index \"+t);return{datasetIndex:t,element:i.data[e],index:e}}));!f(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin.id===t)).length}_updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=n(e,t),a=i?t:n(t,e);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},s=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins(\"beforeEvent\",i,s))return;const n=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins(\"afterEvent\",i,s),(n||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:n}=this,o=e,a=this._getActiveElements(t,s,i,o),r=D(t),l=function(t,e,i,s){return i&&\"mouseout\"!==t.type?s?e:t:null}(t,this._lastEvent,i,r);i&&(this._lastEvent=null,d(n.onHover,[t,a,this],this),r&&d(n.onClick,[t,a,this],this));const h=!f(a,s);return(h||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,h}_getActiveElements(t,e,i,s){if(\"mouseout\"===t.type)return[];if(!i)return e;const n=this.options.hover;return this.getElementsAtEventForMode(t,n.mode,n,s)}}function Ln(){return u(Tn.instances,(t=>t._plugins.invalidate()))}function En(){throw new Error(\"This method is not implemented: Check that a complete date adapter is provided.\")}class Rn{static override(t){Object.assign(Rn.prototype,t)}options;constructor(t){this.options=t||{}}init(){}formats(){return En()}parse(){return En()}format(){return En()}add(){return En()}diff(){return En()}startOf(){return En()}endOf(){return En()}}var In={_date:Rn};function zn(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let s=[];for(let e=0,n=i.length;e\u003Cn;e++)s=s.concat(i[e].controller.getAllParsedValues(t));t._cache.$bar=lt(s.sort(((t,e)=>t-e)))}return t._cache.$bar}(e,t.type);let s,n,o,a,r=e._length;const l=()=>{32767!==o&&-32768!==o&&(k(a)&&(r=Math.min(r,Math.abs(o-a)||r)),a=o)};for(s=0,n=i.length;s\u003Cn;++s)o=e.getPixelForValue(i[s]),l();for(a=void 0,s=0,n=e.ticks.length;s\u003Cn;++s)o=e.getPixelForTick(s),l();return r}function Fn(t,e,i,s){return n(t)?function(t,e,i,s){const n=i.parse(t[0],s),o=i.parse(t[1],s),a=Math.min(n,o),r=Math.max(n,o);let l=a,h=r;Math.abs(a)>Math.abs(r)&&(l=r,h=a),e[i.axis]=h,e._custom={barStart:l,barEnd:h,start:n,end:o,min:a,max:r}}(t,e,i,s):e[i.axis]=i.parse(t,s),e}function Vn(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o,l=[];let h,c,d,u;for(h=i,c=i+s;h\u003Cc;++h)u=e[h],d={},d[n.axis]=r||n.parse(a[h],h),l.push(Fn(u,d,o,h));return l}function Bn(t){return t&&void 0!==t.barStart&&void 0!==t.barEnd}function Wn(t,e,i,s){let n=e.borderSkipped;const o={};if(!n)return void(t.borderSkipped=o);if(!0===n)return void(t.borderSkipped={top:!0,right:!0,bottom:!0,left:!0});const{start:a,end:r,reverse:l,top:h,bottom:c}=function(t){let e,i,s,n,o;return t.horizontal?(e=t.base>t.x,i=\"left\",s=\"right\"):(e=t.base\u003Ct.y,i=\"bottom\",s=\"top\"),e?(n=\"end\",o=\"start\"):(n=\"start\",o=\"end\"),{start:i,end:s,reverse:e,top:n,bottom:o}}(t);\"middle\"===n&&i&&(t.enableBorderRadius=!0,(i._top||0)===s?n=h:(i._bottom||0)===s?n=c:(o[Nn(c,a,r,l)]=!0,n=h)),o[Nn(n,a,r,l)]=!0,t.borderSkipped=o}function Nn(t,e,i,s){var n,o,a;return s?(a=i,t=Hn(t=(n=t)===(o=e)?a:n===a?o:n,i,e)):t=Hn(t,e,i),t}function Hn(t,e,i){return\"start\"===t?e:\"end\"===t?i:t}function jn(t,{inflateAmount:e},i){t.inflateAmount=\"auto\"===e?1===i?.33:0:e}class $n extends js{static id=\"doughnut\";static defaults={datasetElementType:!1,dataElementType:\"arc\",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:\"number\",properties:[\"circumference\",\"endAngle\",\"innerRadius\",\"outerRadius\",\"startAngle\",\"x\",\"y\",\"offset\",\"borderWidth\",\"spacing\"]}},cutout:\"50%\",rotation:0,circumference:360,radius:\"100%\",spacing:0,indexAxis:\"r\"};static descriptors={_scriptable:t=>\"spacing\"!==t,_indexable:t=>\"spacing\"!==t&&!t.startsWith(\"borderDash\")&&!t.startsWith(\"hoverBorderDash\")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data,{labels:{pointStyle:i,textAlign:s,color:n,useBorderRadius:o,borderRadius:a}}=t.legend.options;return e.labels.length&&e.datasets.length?e.labels.map(((e,r)=>{const l=t.getDatasetMeta(0).controller.getStyle(r);return{text:e,fillStyle:l.backgroundColor,fontColor:n,hidden:!t.getDataVisibility(r),lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:l.borderWidth,strokeStyle:l.borderColor,textAlign:s,pointStyle:i,borderRadius:o&&(a||l.borderRadius),index:r}})):[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}}};constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const i=this.getDataset().data,s=this._cachedMeta;if(!1===this._parsing)s._parsed=i;else{let n,a,r=t=>+i[t];if(o(i[t])){const{key:t=\"value\"}=this._parsing;r=e=>+M(i[e],t)}for(n=t,a=t+e;n\u003Ca;++n)s._parsed[n]=r(n)}}_getRotation(){return $(this.options.rotation-90)}_getCircumference(){return $(this.options.circumference)}_getRotationExtents(){let t=O,e=-O;for(let i=0;i\u003Cthis.chart.data.datasets.length;++i)if(this.chart.isDatasetVisible(i)&&this.chart.getDatasetMeta(i).type===this._type){const s=this.chart.getDatasetMeta(i).controller,n=s._getRotation(),o=s._getCircumference();t=Math.min(t,n),e=Math.max(e,n+o)}return{rotation:t,circumference:e-t}}update(t){const e=this.chart,{chartArea:i}=e,s=this._cachedMeta,n=s.data,o=this.getMaxBorderWidth()+this.getMaxOffset(n)+this.options.spacing,a=Math.max((Math.min(i.width,i.height)-o)\u002F2,0),r=Math.min(h(this.options.cutout,a),1),l=this._getRingWeight(this.index),{circumference:d,rotation:u}=this._getRotationExtents(),{ratioX:f,ratioY:g,offsetX:p,offsetY:m}=function(t,e,i){let s=1,n=1,o=0,a=0;if(e\u003CO){const r=t,l=r+e,h=Math.cos(r),c=Math.sin(r),d=Math.cos(l),u=Math.sin(l),f=(t,e,s)=>J(t,r,l,!0)?1:Math.max(e,e*i,s,s*i),g=(t,e,s)=>J(t,r,l,!0)?-1:Math.min(e,e*i,s,s*i),p=f(0,h,d),m=f(E,c,u),x=g(C,h,d),b=g(C+E,c,u);s=(p-x)\u002F2,n=(m-b)\u002F2,o=-(p+x)\u002F2,a=-(m+b)\u002F2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}(u,d,r),x=(i.width-o)\u002Ff,b=(i.height-o)\u002Fg,_=Math.max(Math.min(x,b)\u002F2,0),y=c(this.options.radius,_),v=(y-Math.max(y*r,0))\u002Fthis._getVisibleDatasetWeightTotal();this.offsetX=p*y,this.offsetY=m*y,s.total=this.calculateTotal(),this.outerRadius=y-v*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-v*l,0),this.updateElements(n,0,n.length,t)}_circumference(t,e){const i=this.options,s=this._cachedMeta,n=this._getCircumference();return e&&i.animation.animateRotate||!this.chart.getDataVisibility(t)||null===s._parsed[t]||s.data[t].hidden?0:this.calculateCircumference(s._parsed[t]*n\u002FO)}updateElements(t,e,i,s){const n=\"reset\"===s,o=this.chart,a=o.chartArea,r=o.options.animation,l=(a.left+a.right)\u002F2,h=(a.top+a.bottom)\u002F2,c=n&&r.animateScale,d=c?0:this.innerRadius,u=c?0:this.outerRadius,{sharedOptions:f,includeOptions:g}=this._getSharedOptions(e,s);let p,m=this._getRotation();for(p=0;p\u003Ce;++p)m+=this._circumference(p,n);for(p=e;p\u003Ce+i;++p){const e=this._circumference(p,n),i=t[p],o={x:l+this.offsetX,y:h+this.offsetY,startAngle:m,endAngle:m+e,circumference:e,outerRadius:u,innerRadius:d};g&&(o.options=f||this.resolveDataElementOptions(p,i.active?\"active\":s)),m+=e,this.updateElement(i,p,o,s)}}calculateTotal(){const t=this._cachedMeta,e=t.data;let i,s=0;for(i=0;i\u003Ce.length;i++){const n=t._parsed[i];null===n||isNaN(n)||!this.chart.getDataVisibility(i)||e[i].hidden||(s+=Math.abs(n))}return s}calculateCircumference(t){const e=this._cachedMeta.total;return e>0&&!isNaN(t)?O*(Math.abs(t)\u002Fe):0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t],i.options.locale);return{label:s[t]||\"\",value:n}}getMaxBorderWidth(t){let e=0;const i=this.chart;let s,n,o,a,r;if(!t)for(s=0,n=i.data.datasets.length;s\u003Cn;++s)if(i.isDatasetVisible(s)){o=i.getDatasetMeta(s),t=o.data,a=o.controller;break}if(!t)return 0;for(s=0,n=t.length;s\u003Cn;++s)r=a.resolveDataElementOptions(s),\"inner\"!==r.borderAlign&&(e=Math.max(e,r.borderWidth||0,r.hoverBorderWidth||0));return e}getMaxOffset(t){let e=0;for(let i=0,s=t.length;i\u003Cs;++i){const t=this.resolveDataElementOptions(i);e=Math.max(e,t.offset||0,t.hoverOffset||0)}return e}_getRingWeightOffset(t){let e=0;for(let i=0;i\u003Ct;++i)this.chart.isDatasetVisible(i)&&(e+=this._getRingWeight(i));return e}_getRingWeight(t){return Math.max(l(this.chart.data.datasets[t].weight,1),0)}_getVisibleDatasetWeightTotal(){return this._getRingWeightOffset(this.chart.data.datasets.length)||1}}class Yn extends js{static id=\"polarArea\";static defaults={dataElementType:\"arc\",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:\"number\",properties:[\"x\",\"y\",\"startAngle\",\"endAngle\",\"innerRadius\",\"outerRadius\"]}},indexAxis:\"r\",startAngle:0};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i,color:s}}=t.legend.options;return e.labels.map(((e,n)=>{const o=t.getDatasetMeta(0).controller.getStyle(n);return{text:e,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,fontColor:s,lineWidth:o.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(n),index:n}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}},scales:{r:{type:\"radialLinear\",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t].r,i.options.locale);return{label:s[t]||\"\",value:n}}parseObjectData(t,e,i,s){return ii.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach(((t,i)=>{const s=this.getParsed(i).r;!isNaN(s)&&this.chart.getDataVisibility(i)&&(s\u003Ce.min&&(e.min=s),s>e.max&&(e.max=s))})),e}_updateRadius(){const t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),n=Math.max(s\u002F2,0),o=(n-Math.max(i.cutoutPercentage?n\u002F100*i.cutoutPercentage:1,0))\u002Ft.getVisibleDatasetCount();this.outerRadius=n-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){const n=\"reset\"===s,o=this.chart,a=o.options.animation,r=this._cachedMeta.rScale,l=r.xCenter,h=r.yCenter,c=r.getIndexAngle(0)-.5*C;let d,u=c;const f=360\u002Fthis.countVisibleElements();for(d=0;d\u003Ce;++d)u+=this._computeAngle(d,s,f);for(d=e;d\u003Ce+i;d++){const e=t[d];let i=u,g=u+this._computeAngle(d,s,f),p=o.getDataVisibility(d)?r.getDistanceFromCenterForValue(this.getParsed(d).r):0;u=g,n&&(a.animateScale&&(p=0),a.animateRotate&&(i=g=c));const m={x:l,y:h,innerRadius:0,outerRadius:p,startAngle:i,endAngle:g,options:this.resolveDataElementOptions(d,e.active?\"active\":s)};this.updateElement(e,d,m,s)}}countVisibleElements(){const t=this._cachedMeta;let e=0;return t.data.forEach(((t,i)=>{!isNaN(this.getParsed(i).r)&&this.chart.getDataVisibility(i)&&e++})),e}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?$(this.resolveDataElementOptions(t,e).angle||i):0}}var Un=Object.freeze({__proto__:null,BarController:class extends js{static id=\"bar\";static defaults={datasetElementType:!1,dataElementType:\"bar\",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:\"number\",properties:[\"x\",\"y\",\"base\",\"width\",\"height\"]}}};static overrides={scales:{_index_:{type:\"category\",offset:!0,grid:{offset:!0}},_value_:{type:\"linear\",beginAtZero:!0}}};parsePrimitiveData(t,e,i,s){return Vn(t,e,i,s)}parseArrayData(t,e,i,s){return Vn(t,e,i,s)}parseObjectData(t,e,i,s){const{iScale:n,vScale:o}=t,{xAxisKey:a=\"x\",yAxisKey:r=\"y\"}=this._parsing,l=\"x\"===n.axis?a:r,h=\"x\"===o.axis?a:r,c=[];let d,u,f,g;for(d=i,u=i+s;d\u003Cu;++d)g=e[d],f={},f[n.axis]=n.parse(M(g,l),d),c.push(Fn(M(g,h),f,o,d));return c}updateRangeFromParsed(t,e,i,s){super.updateRangeFromParsed(t,e,i,s);const n=i._custom;n&&e===this._cachedMeta.vScale&&(t.min=Math.min(t.min,n.min),t.max=Math.max(t.max,n.max))}getMaxOverflow(){return 0}getLabelAndValue(t){const e=this._cachedMeta,{iScale:i,vScale:s}=e,n=this.getParsed(t),o=n._custom,a=Bn(o)?\"[\"+o.start+\", \"+o.end+\"]\":\"\"+s.getLabelForValue(n[s.axis]);return{label:\"\"+i.getLabelForValue(n[i.axis]),value:a}}initialize(){this.enableOptionSharing=!0,super.initialize();this._cachedMeta.stack=this.getDataset().stack}update(t){const e=this._cachedMeta;this.updateElements(e.data,0,e.data.length,t)}updateElements(t,e,i,n){const o=\"reset\"===n,{index:a,_cachedMeta:{vScale:r}}=this,l=r.getBasePixel(),h=r.isHorizontal(),c=this._getRuler(),{sharedOptions:d,includeOptions:u}=this._getSharedOptions(e,n);for(let f=e;f\u003Ce+i;f++){const e=this.getParsed(f),i=o||s(e[r.axis])?{base:l,head:l}:this._calculateBarValuePixels(f),g=this._calculateBarIndexPixels(f,c),p=(e._stacks||{})[r.axis],m={horizontal:h,base:i.base,enableBorderRadius:!p||Bn(e._custom)||a===p._top||a===p._bottom,x:h?i.head:g.center,y:h?g.center:i.head,height:h?g.size:Math.abs(i.size),width:h?Math.abs(i.size):g.size};u&&(m.options=d||this.resolveDataElementOptions(f,t[f].active?\"active\":n));const x=m.options||t[f].options;Wn(m,x,p,a),jn(m,x,c.ratio),this.updateElement(t[f],f,m,n)}}_getStacks(t,e){const{iScale:i}=this._cachedMeta,n=i.getMatchingVisibleMetas(this._type).filter((t=>t.controller.options.grouped)),o=i.options.stacked,a=[],r=this._cachedMeta.controller.getParsed(e),l=r&&r[i.axis],h=t=>{const e=t._parsed.find((t=>t[i.axis]===l)),n=e&&e[t.vScale.axis];if(s(n)||isNaN(n))return!0};for(const i of n)if((void 0===e||!h(i))&&((!1===o||-1===a.indexOf(i.stack)||void 0===o&&void 0===i.stack)&&a.push(i.stack),i.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getAxisCount(){return this._getAxis().length}getFirstScaleIdForIndexAxis(){const t=this.chart.scales,e=this.chart.options.indexAxis;return Object.keys(t).filter((i=>t[i].axis===e)).shift()}_getAxis(){const t={},e=this.getFirstScaleIdForIndexAxis();for(const i of this.chart.data.datasets)t[l(\"x\"===this.chart.options.indexAxis?i.xAxisID:i.yAxisID,e)]=!0;return Object.keys(t)}_getStackIndex(t,e,i){const s=this._getStacks(t,i),n=void 0!==e?s.indexOf(e):-1;return-1===n?s.length-1:n}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,s=[];let n,o;for(n=0,o=e.data.length;n\u003Co;++n)s.push(i.getPixelForValue(this.getParsed(n)[i.axis],n));const a=t.barThickness;return{min:a||zn(e),pixels:s,start:i._startPixel,end:i._endPixel,stackCount:this._getStackCount(),scale:i,grouped:t.grouped,ratio:a?1:t.categoryPercentage*t.barPercentage}}_calculateBarValuePixels(t){const{_cachedMeta:{vScale:e,_stacked:i,index:n},options:{base:o,minBarLength:a}}=this,r=o||0,l=this.getParsed(t),h=l._custom,c=Bn(h);let d,u,f=l[e.axis],g=0,p=i?this.applyStack(e,l,i):f;p!==f&&(g=p-f,p=f),c&&(f=h.barStart,p=h.barEnd-h.barStart,0!==f&&F(f)!==F(h.barEnd)&&(g=0),g+=f);const m=s(o)||c?g:o;let x=e.getPixelForValue(m);if(d=this.chart.getDataVisibility(t)?e.getPixelForValue(g+p):x,u=d-x,Math.abs(u)\u003Ca){u=function(t,e,i){return 0!==t?F(t):(e.isHorizontal()?1:-1)*(e.min>=i?1:-1)}(u,e,r)*a,f===r&&(x-=u\u002F2);const t=e.getPixelForDecimal(0),s=e.getPixelForDecimal(1),o=Math.min(t,s),h=Math.max(t,s);x=Math.max(Math.min(x,h),o),d=x+u,i&&!c&&(l._stacks[e.axis]._visualValues[n]=e.getValueForPixel(d)-e.getValueForPixel(x))}if(x===e.getPixelForValue(r)){const t=F(u)*e.getLineWidthForValue(r)\u002F2;x+=t,u-=t}return{size:u,base:x,head:d,center:d+u\u002F2}}_calculateBarIndexPixels(t,e){const i=e.scale,n=this.options,o=n.skipNull,a=l(n.maxBarThickness,1\u002F0);let r,h;const c=this._getAxisCount();if(e.grouped){const i=o?this._getStackCount(t):e.stackCount,d=\"flex\"===n.barThickness?function(t,e,i,s){const n=e.pixels,o=n[t];let a=t>0?n[t-1]:null,r=t\u003Cn.length-1?n[t+1]:null;const l=i.categoryPercentage;null===a&&(a=o-(null===r?e.end-e.start:r-o)),null===r&&(r=o+o-a);const h=o-(o-Math.min(a,r))\u002F2*l;return{chunk:Math.abs(r-a)\u002F2*l\u002Fs,ratio:i.barPercentage,start:h}}(t,e,n,i*c):function(t,e,i,n){const o=i.barThickness;let a,r;return s(o)?(a=e.min*i.categoryPercentage,r=i.barPercentage):(a=o*n,r=1),{chunk:a\u002Fn,ratio:r,start:e.pixels[t]-a\u002F2}}(t,e,n,i*c),u=\"x\"===this.chart.options.indexAxis?this.getDataset().xAxisID:this.getDataset().yAxisID,f=this._getAxis().indexOf(l(u,this.getFirstScaleIdForIndexAxis())),g=this._getStackIndex(this.index,this._cachedMeta.stack,o?t:void 0)+f;r=d.start+d.chunk*g+d.chunk\u002F2,h=Math.min(a,d.chunk*d.ratio)}else r=i.getPixelForValue(this.getParsed(t)[i.axis],t),h=Math.min(a,e.min*e.ratio);return{base:r-h\u002F2,head:r+h\u002F2,center:r,size:h}}draw(){const t=this._cachedMeta,e=t.vScale,i=t.data,s=i.length;let n=0;for(;n\u003Cs;++n)null===this.getParsed(n)[e.axis]||i[n].hidden||i[n].draw(this._ctx)}},BubbleController:class extends js{static id=\"bubble\";static defaults={datasetElementType:!1,dataElementType:\"point\",animations:{numbers:{type:\"number\",properties:[\"x\",\"y\",\"borderWidth\",\"radius\"]}}};static overrides={scales:{x:{type:\"linear\"},y:{type:\"linear\"}}};initialize(){this.enableOptionSharing=!0,super.initialize()}parsePrimitiveData(t,e,i,s){const n=super.parsePrimitiveData(t,e,i,s);for(let t=0;t\u003Cn.length;t++)n[t]._custom=this.resolveDataElementOptions(t+i).radius;return n}parseArrayData(t,e,i,s){const n=super.parseArrayData(t,e,i,s);for(let t=0;t\u003Cn.length;t++){const s=e[i+t];n[t]._custom=l(s[2],this.resolveDataElementOptions(t+i).radius)}return n}parseObjectData(t,e,i,s){const n=super.parseObjectData(t,e,i,s);for(let t=0;t\u003Cn.length;t++){const s=e[i+t];n[t]._custom=l(s&&s.r&&+s.r,this.resolveDataElementOptions(t+i).radius)}return n}getMaxOverflow(){const t=this._cachedMeta.data;let e=0;for(let i=t.length-1;i>=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))\u002F2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart.data.labels||[],{xScale:s,yScale:n}=e,o=this.getParsed(t),a=s.getLabelForValue(o.x),r=n.getLabelForValue(o.y),l=o._custom;return{label:i[t]||\"\",value:\"(\"+a+\", \"+r+(l?\", \"+l:\"\")+\")\"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){const n=\"reset\"===s,{iScale:o,vScale:a}=this._cachedMeta,{sharedOptions:r,includeOptions:l}=this._getSharedOptions(e,s),h=o.axis,c=a.axis;for(let d=e;d\u003Ce+i;d++){const e=t[d],i=!n&&this.getParsed(d),u={},f=u[h]=n?o.getPixelForDecimal(.5):o.getPixelForValue(i[h]),g=u[c]=n?a.getBasePixel():a.getPixelForValue(i[c]);u.skip=isNaN(f)||isNaN(g),l&&(u.options=r||this.resolveDataElementOptions(d,e.active?\"active\":s),n&&(u.options.radius=0)),this.updateElement(e,d,u,s)}}resolveDataElementOptions(t,e){const i=this.getParsed(t);let s=super.resolveDataElementOptions(t,e);s.$shared&&(s=Object.assign({},s,{$shared:!1}));const n=s.radius;return\"active\"!==e&&(s.radius=0),s.radius+=l(i&&i._custom,n),s}},DoughnutController:$n,LineController:class extends js{static id=\"line\";static defaults={datasetElementType:\"line\",dataElementType:\"point\",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:\"category\"},_value_:{type:\"linear\"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:i,data:s=[],_dataset:n}=e,o=this.chart._animationsDisabled;let{start:a,count:r}=pt(e,s,o);this._drawStart=a,this._drawCount=r,mt(e)&&(a=0,r=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!n._decimated,i.points=s;const l=this.resolveDatasetElementOptions(t);this.options.showLine||(l.borderWidth=0),l.segment=this.options.segment,this.updateElement(i,void 0,{animated:!o,options:l},t),this.updateElements(s,a,r,t)}updateElements(t,e,i,n){const o=\"reset\"===n,{iScale:a,vScale:r,_stacked:l,_dataset:h}=this._cachedMeta,{sharedOptions:c,includeOptions:d}=this._getSharedOptions(e,n),u=a.axis,f=r.axis,{spanGaps:g,segment:p}=this.options,m=N(g)?g:Number.POSITIVE_INFINITY,x=this.chart._animationsDisabled||o||\"none\"===n,b=e+i,_=t.length;let y=e>0&&this.getParsed(e-1);for(let i=0;i\u003C_;++i){const g=t[i],_=x?g:{};if(i\u003Ce||i>=b){_.skip=!0;continue}const v=this.getParsed(i),M=s(v[f]),w=_[u]=a.getPixelForValue(v[u],i),k=_[f]=o||M?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,v,l):v[f],i);_.skip=isNaN(w)||isNaN(k)||M,_.stop=i>0&&Math.abs(v[u]-y[u])>m,p&&(_.parsed=v,_.raw=h.data[i]),d&&(_.options=c||this.resolveDataElementOptions(i,g.active?\"active\":n)),x||this.updateElement(g,i,_,n),y=v}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const n=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,n,o)\u002F2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}},PieController:class extends $n{static id=\"pie\";static defaults={cutout:0,rotation:0,circumference:360,radius:\"100%\"}},PolarAreaController:Yn,RadarController:class extends js{static id=\"radar\";static defaults={datasetElementType:\"line\",dataElementType:\"point\",indexAxis:\"r\",showLine:!0,elements:{line:{fill:\"start\"}}};static overrides={aspectRatio:1,scales:{r:{type:\"radialLinear\"}}};getLabelAndValue(t){const e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:\"\"+e.getLabelForValue(i[e.axis])}}parseObjectData(t,e,i,s){return ii.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta,i=e.dataset,s=e.data||[],n=e.iScale.getLabels();if(i.points=s,\"resize\"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const o={_loop:!0,_fullLoop:n.length===s.length,options:e};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){const n=this._cachedMeta.rScale,o=\"reset\"===s;for(let a=e;a\u003Ce+i;a++){const e=t[a],i=this.resolveDataElementOptions(a,e.active?\"active\":s),r=n.getPointPositionForValue(a,this.getParsed(a).r),l=o?n.xCenter:r.x,h=o?n.yCenter:r.y,c={x:l,y:h,angle:r.angle,skip:isNaN(l)||isNaN(h),options:i};this.updateElement(e,a,c,s)}}},ScatterController:class extends js{static id=\"scatter\";static defaults={datasetElementType:!1,dataElementType:\"point\",showLine:!1,fill:!1};static overrides={interaction:{mode:\"point\"},scales:{x:{type:\"linear\"},y:{type:\"linear\"}}};getLabelAndValue(t){const e=this._cachedMeta,i=this.chart.data.labels||[],{xScale:s,yScale:n}=e,o=this.getParsed(t),a=s.getLabelForValue(o.x),r=n.getLabelForValue(o.y);return{label:i[t]||\"\",value:\"(\"+a+\", \"+r+\")\"}}update(t){const e=this._cachedMeta,{data:i=[]}=e,s=this.chart._animationsDisabled;let{start:n,count:o}=pt(e,i,s);if(this._drawStart=n,this._drawCount=o,mt(e)&&(n=0,o=i.length),this.options.showLine){this.datasetElementType||this.addElements();const{dataset:n,_dataset:o}=e;n._chart=this.chart,n._datasetIndex=this.index,n._decimated=!!o._decimated,n.points=i;const a=this.resolveDatasetElementOptions(t);a.segment=this.options.segment,this.updateElement(n,void 0,{animated:!s,options:a},t)}else this.datasetElementType&&(delete e.dataset,this.datasetElementType=!1);this.updateElements(i,n,o,t)}addElements(){const{showLine:t}=this.options;!this.datasetElementType&&t&&(this.datasetElementType=this.chart.registry.getElement(\"line\")),super.addElements()}updateElements(t,e,i,n){const o=\"reset\"===n,{iScale:a,vScale:r,_stacked:l,_dataset:h}=this._cachedMeta,c=this.resolveDataElementOptions(e,n),d=this.getSharedOptions(c),u=this.includeOptions(n,d),f=a.axis,g=r.axis,{spanGaps:p,segment:m}=this.options,x=N(p)?p:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||\"none\"===n;let _=e>0&&this.getParsed(e-1);for(let c=e;c\u003Ce+i;++c){const e=t[c],i=this.getParsed(c),p=b?e:{},y=s(i[g]),v=p[f]=a.getPixelForValue(i[f],c),M=p[g]=o||y?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,i,l):i[g],c);p.skip=isNaN(v)||isNaN(M)||y,p.stop=c>0&&Math.abs(i[f]-_[f])>x,m&&(p.parsed=i,p.raw=h.data[c]),u&&(p.options=d||this.resolveDataElementOptions(c,e.active?\"active\":n)),b||this.updateElement(e,c,p,n),_=i}this.updateSharedOptions(d,n,c)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let t=0;for(let i=e.length-1;i>=0;--i)t=Math.max(t,e[i].size(this.resolveDataElementOptions(i))\u002F2);return t>0&&t}const i=t.dataset,s=i.options&&i.options.borderWidth||0;if(!e.length)return s;const n=e[0].size(this.resolveDataElementOptions(0)),o=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(s,n,o)\u002F2}}});function Xn(t,e,i,s){const n=vi(t.options.borderRadius,[\"outerStart\",\"outerEnd\",\"innerStart\",\"innerEnd\"]);const o=(i-e)\u002F2,a=Math.min(o,s*e\u002F2),r=t=>{const e=(i-Math.min(o,t))*s\u002F2;return Z(t,0,Math.min(o,e))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:Z(n.innerStart,0,a),innerEnd:Z(n.innerEnd,0,a)}}function qn(t,e,i,s){return{x:i+t*Math.cos(e),y:s+t*Math.sin(e)}}function Kn(t,e,i,s,n,o){const{x:a,y:r,startAngle:l,pixelMargin:h,innerRadius:c}=e,d=Math.max(e.outerRadius+s+i-h,0),u=c>0?c+s+i+h:0;let f=0;const g=n-l;if(s){const t=((c>0?c-s:0)+(d>0?d-s:0))\u002F2;f=(g-(0!==t?g*t\u002F(t+s):g))\u002F2}const p=(g-Math.max(.001,g*d-i\u002FC)\u002Fd)\u002F2,m=l+p+f,x=n-p-f,{outerStart:b,outerEnd:_,innerStart:y,innerEnd:v}=Xn(e,u,d,x-m),M=d-b,w=d-_,k=m+b\u002FM,S=x-_\u002Fw,P=u+y,D=u+v,O=m+y\u002FP,A=x-v\u002FD;if(t.beginPath(),o){const e=(k+S)\u002F2;if(t.arc(a,r,d,k,e),t.arc(a,r,d,e,S),_>0){const e=qn(w,S,a,r);t.arc(e.x,e.y,_,S,x+E)}const i=qn(D,x,a,r);if(t.lineTo(i.x,i.y),v>0){const e=qn(D,A,a,r);t.arc(e.x,e.y,v,x+E,A+Math.PI)}const s=(x-v\u002Fu+(m+y\u002Fu))\u002F2;if(t.arc(a,r,u,x-v\u002Fu,s,!0),t.arc(a,r,u,s,m+y\u002Fu,!0),y>0){const e=qn(P,O,a,r);t.arc(e.x,e.y,y,O+Math.PI,m-E)}const n=qn(M,m,a,r);if(t.lineTo(n.x,n.y),b>0){const e=qn(M,k,a,r);t.arc(e.x,e.y,b,m-E,k)}}else{t.moveTo(a,r);const e=Math.cos(k)*d+a,i=Math.sin(k)*d+r;t.lineTo(e,i);const s=Math.cos(S)*d+a,n=Math.sin(S)*d+r;t.lineTo(s,n)}t.closePath()}function Gn(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r,options:l}=e,{borderWidth:h,borderJoinStyle:c,borderDash:d,borderDashOffset:u,borderRadius:f}=l,g=\"inner\"===l.borderAlign;if(!h)return;t.setLineDash(d||[]),t.lineDashOffset=u,g?(t.lineWidth=2*h,t.lineJoin=c||\"round\"):(t.lineWidth=h,t.lineJoin=c||\"bevel\");let p=e.endAngle;if(o){Kn(t,e,i,s,p,n);for(let e=0;e\u003Co;++e)t.stroke();isNaN(r)||(p=a+(r%O||O))}g&&function(t,e,i){const{startAngle:s,pixelMargin:n,x:o,y:a,outerRadius:r,innerRadius:l}=e;let h=n\u002Fr;t.beginPath(),t.arc(o,a,r,s-h,i+h),l>n?(h=n\u002Fl,t.arc(o,a,l,i+h,s-h,!0)):t.arc(o,a,n,i+E,s-E),t.closePath(),t.clip()}(t,e,p),l.selfJoin&&p-a>=C&&0===f&&\"miter\"!==c&&function(t,e,i){const{startAngle:s,x:n,y:o,outerRadius:a,innerRadius:r,options:l}=e,{borderWidth:h,borderJoinStyle:c}=l,d=Math.min(h\u002Fa,G(s-i));if(t.beginPath(),t.arc(n,o,a-h\u002F2,s+d\u002F2,i-d\u002F2),r>0){const e=Math.min(h\u002Fr,G(s-i));t.arc(n,o,r+h\u002F2,i-e\u002F2,s+e\u002F2,!0)}else{const e=Math.min(h\u002F2,a*G(s-i));if(\"round\"===c)t.arc(n,o,e,i-C\u002F2,s+C\u002F2,!0);else if(\"bevel\"===c){const a=2*e*e,r=-a*Math.cos(i+C\u002F2)+n,l=-a*Math.sin(i+C\u002F2)+o,h=a*Math.cos(s+C\u002F2)+n,c=a*Math.sin(s+C\u002F2)+o;t.lineTo(r,l),t.lineTo(h,c)}}t.closePath(),t.moveTo(0,0),t.rect(0,0,t.canvas.width,t.canvas.height),t.clip(\"evenodd\")}(t,e,p),o||(Kn(t,e,i,s,p,n),t.stroke())}function Jn(t,e,i=e){t.lineCap=l(i.borderCapStyle,e.borderCapStyle),t.setLineDash(l(i.borderDash,e.borderDash)),t.lineDashOffset=l(i.borderDashOffset,e.borderDashOffset),t.lineJoin=l(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=l(i.borderWidth,e.borderWidth),t.strokeStyle=l(i.borderColor,e.borderColor)}function Zn(t,e,i){t.lineTo(i.x,i.y)}function Qn(t,e,i={}){const s=t.length,{start:n=0,end:o=s-1}=i,{start:a,end:r}=e,l=Math.max(n,a),h=Math.min(o,r),c=n\u003Ca&&o\u003Ca||n>r&&o>r;return{count:s,start:l,loop:e.loop,ilen:h\u003Cl&&!c?s+h-l:h-l}}function to(t,e,i,s){const{points:n,options:o}=e,{count:a,start:r,loop:l,ilen:h}=Qn(n,i,s),c=function(t){return t.stepped?Fe:t.tension||\"monotone\"===t.cubicInterpolationMode?Ve:Zn}(o);let d,u,f,{move:g=!0,reverse:p}=s||{};for(d=0;d\u003C=h;++d)u=n[(r+(p?h-d:d))%a],u.skip||(g?(t.moveTo(u.x,u.y),g=!1):c(t,f,u,p,o.stepped),f=u);return l&&(u=n[(r+(p?h:0))%a],c(t,f,u,p,o.stepped)),!!l}function eo(t,e,i,s){const n=e.points,{count:o,start:a,ilen:r}=Qn(n,i,s),{move:l=!0,reverse:h}=s||{};let c,d,u,f,g,p,m=0,x=0;const b=t=>(a+(h?r-t:t))%o,_=()=>{f!==g&&(t.lineTo(m,g),t.lineTo(m,f),t.lineTo(m,p))};for(l&&(d=n[b(0)],t.moveTo(d.x,d.y)),c=0;c\u003C=r;++c){if(d=n[b(c)],d.skip)continue;const e=d.x,i=d.y,s=0|e;s===u?(i\u003Cf?f=i:i>g&&(g=i),m=(x*m+e)\u002F++x):(_(),t.lineTo(e,i),u=s,x=0,f=g=i),p=i}_()}function io(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||\"monotone\"===e.cubicInterpolationMode||e.stepped||i)?eo:to}const so=\"function\"==typeof Path2D;function no(t,e,i,s){so&&!e.options.segment?function(t,e,i,s){let n=e._path;n||(n=e._path=new Path2D,e.path(n,i,s)&&n.closePath()),Jn(t,e.options),t.stroke(n)}(t,e,i,s):function(t,e,i,s){const{segments:n,options:o}=e,a=io(e);for(const r of n)Jn(t,o,r.style),t.beginPath(),a(t,e,r,{start:i,end:i+s-1})&&t.closePath(),t.stroke()}(t,e,i,s)}class oo extends $s{static id=\"line\";static defaults={borderCapStyle:\"butt\",borderDash:[],borderDashOffset:0,borderJoinStyle:\"miter\",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:\"default\",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:\"backgroundColor\",borderColor:\"borderColor\"};static descriptors={_scriptable:!0,_indexable:t=>\"borderDash\"!==t&&\"fill\"!==t};constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||\"monotone\"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;hi(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=zi(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,s=t[e],n=this.points,o=Ii(this,{property:e,start:s,end:s});if(!o.length)return;const a=[],r=function(t){return t.stepped?pi:t.tension||\"monotone\"===t.cubicInterpolationMode?mi:gi}(i);let l,h;for(l=0,h=o.length;l\u003Ch;++l){const{start:h,end:c}=o[l],d=n[h],u=n[c];if(d===u){a.push(d);continue}const f=r(d,u,Math.abs((s-d[e])\u002F(u[e]-d[e])),i.stepped);f[e]=t[e],a.push(f)}return 1===a.length?a[0]:a}pathSegment(t,e,i){return io(this)(t,this,e,i)}path(t,e,i){const s=this.segments,n=io(this);let o=this._loop;e=e||0,i=i||this.points.length-e;for(const a of s)o&=n(t,this,a,{start:e,end:e+i-1});return!!o}draw(t,e,i,s){const n=this.options||{};(this.points||[]).length&&n.borderWidth&&(t.save(),no(t,this,i,s),t.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}function ao(t,e,i,s){const n=t.options,{[i]:o}=t.getProps([i],s);return Math.abs(e-o)\u003Cn.radius+n.hitRadius}function ro(t,e){const{x:i,y:s,base:n,width:o,height:a}=t.getProps([\"x\",\"y\",\"base\",\"width\",\"height\"],e);let r,l,h,c,d;return t.horizontal?(d=a\u002F2,r=Math.min(i,n),l=Math.max(i,n),h=s-d,c=s+d):(d=o\u002F2,r=i-d,l=i+d,h=Math.min(s,n),c=Math.max(s,n)),{left:r,top:h,right:l,bottom:c}}function lo(t,e,i,s){return t?0:Z(e,i,s)}function ho(t){const e=ro(t),i=e.right-e.left,s=e.bottom-e.top,n=function(t,e,i){const s=t.options.borderWidth,n=t.borderSkipped,o=Mi(s);return{t:lo(n.top,o.top,0,i),r:lo(n.right,o.right,0,e),b:lo(n.bottom,o.bottom,0,i),l:lo(n.left,o.left,0,e)}}(t,i\u002F2,s\u002F2),a=function(t,e,i){const{enableBorderRadius:s}=t.getProps([\"enableBorderRadius\"]),n=t.options.borderRadius,a=wi(n),r=Math.min(e,i),l=t.borderSkipped,h=s||o(n);return{topLeft:lo(!h||l.top||l.left,a.topLeft,0,r),topRight:lo(!h||l.top||l.right,a.topRight,0,r),bottomLeft:lo(!h||l.bottom||l.left,a.bottomLeft,0,r),bottomRight:lo(!h||l.bottom||l.right,a.bottomRight,0,r)}}(t,i\u002F2,s\u002F2);return{outer:{x:e.left,y:e.top,w:i,h:s,radius:a},inner:{x:e.left+n.l,y:e.top+n.t,w:i-n.l-n.r,h:s-n.t-n.b,radius:{topLeft:Math.max(0,a.topLeft-Math.max(n.t,n.l)),topRight:Math.max(0,a.topRight-Math.max(n.t,n.r)),bottomLeft:Math.max(0,a.bottomLeft-Math.max(n.b,n.l)),bottomRight:Math.max(0,a.bottomRight-Math.max(n.b,n.r))}}}}function co(t,e,i,s){const n=null===e,o=null===i,a=t&&!(n&&o)&&ro(t,s);return a&&(n||tt(e,a.left,a.right))&&(o||tt(i,a.top,a.bottom))}function uo(t,e){t.rect(e.x,e.y,e.w,e.h)}function fo(t,e,i={}){const s=t.x!==i.x?-e:0,n=t.y!==i.y?-e:0,o=(t.x+t.w!==i.x+i.w?e:0)-s,a=(t.y+t.h!==i.y+i.h?e:0)-n;return{x:t.x+s,y:t.y+n,w:t.w+o,h:t.h+a,radius:t.radius}}var go=Object.freeze({__proto__:null,ArcElement:class extends $s{static id=\"arc\";static defaults={borderAlign:\"center\",borderColor:\"#fff\",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:\"backgroundColor\"};static descriptors={_scriptable:!0,_indexable:t=>\"borderDash\"!==t};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(t){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.getProps([\"x\",\"y\"],i),{angle:n,distance:o}=X(s,{x:t,y:e}),{startAngle:a,endAngle:r,innerRadius:h,outerRadius:c,circumference:d}=this.getProps([\"startAngle\",\"endAngle\",\"innerRadius\",\"outerRadius\",\"circumference\"],i),u=(this.options.spacing+this.options.borderWidth)\u002F2,f=l(d,r-a),g=J(n,a,r)&&a!==r,p=f>=O||g,m=tt(o,h+u,c+u);return p&&m}getCenterPoint(t){const{x:e,y:i,startAngle:s,endAngle:n,innerRadius:o,outerRadius:a}=this.getProps([\"x\",\"y\",\"startAngle\",\"endAngle\",\"innerRadius\",\"outerRadius\"],t),{offset:r,spacing:l}=this.options,h=(s+n)\u002F2,c=(o+a+l+r)\u002F2;return{x:e+Math.cos(h)*c,y:i+Math.sin(h)*c}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:i}=this,s=(e.offset||0)\u002F4,n=(e.spacing||0)\u002F2,o=e.circular;if(this.pixelMargin=\"inner\"===e.borderAlign?.33:0,this.fullCircles=i>O?Math.floor(i\u002FO):0,0===i||this.innerRadius\u003C0||this.outerRadius\u003C0)return;t.save();const a=(this.startAngle+this.endAngle)\u002F2;t.translate(Math.cos(a)*s,Math.sin(a)*s);const r=s*(1-Math.sin(Math.min(C,i||0)));t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor,function(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r}=e;let l=e.endAngle;if(o){Kn(t,e,i,s,l,n);for(let e=0;e\u003Co;++e)t.fill();isNaN(r)||(l=a+(r%O||O))}Kn(t,e,i,s,l,n),t.fill()}(t,this,r,n,o),Gn(t,this,r,n,o),t.restore()}},BarElement:class extends $s{static id=\"bar\";static defaults={borderSkipped:\"start\",borderWidth:0,borderRadius:0,inflateAmount:\"auto\",pointStyle:void 0};static defaultRoutes={backgroundColor:\"backgroundColor\",borderColor:\"borderColor\"};constructor(t){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,t&&Object.assign(this,t)}draw(t){const{inflateAmount:e,options:{borderColor:i,backgroundColor:s}}=this,{inner:n,outer:o}=ho(this),a=(r=o.radius).topLeft||r.topRight||r.bottomLeft||r.bottomRight?He:uo;var r;t.save(),o.w===n.w&&o.h===n.h||(t.beginPath(),a(t,fo(o,e,n)),t.clip(),a(t,fo(n,-e,o)),t.fillStyle=i,t.fill(\"evenodd\")),t.beginPath(),a(t,fo(n,e)),t.fillStyle=s,t.fill(),t.restore()}inRange(t,e,i){return co(this,t,e,i)}inXRange(t,e){return co(this,t,null,e)}inYRange(t,e){return co(this,null,t,e)}getCenterPoint(t){const{x:e,y:i,base:s,horizontal:n}=this.getProps([\"x\",\"y\",\"base\",\"horizontal\"],t);return{x:n?(e+s)\u002F2:e,y:n?i:(i+s)\u002F2}}getRange(t){return\"x\"===t?this.width\u002F2:this.height\u002F2}},LineElement:oo,PointElement:class extends $s{static id=\"point\";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:\"circle\",radius:3,rotation:0};static defaultRoutes={backgroundColor:\"backgroundColor\",borderColor:\"borderColor\"};constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.options,{x:n,y:o}=this.getProps([\"x\",\"y\"],i);return Math.pow(t-n,2)+Math.pow(e-o,2)\u003CMath.pow(s.hitRadius+s.radius,2)}inXRange(t,e){return ao(this,t,\"x\",e)}inYRange(t,e){return ao(this,t,\"y\",e)}getCenterPoint(t){const{x:e,y:i}=this.getProps([\"x\",\"y\"],t);return{x:e,y:i}}size(t){let e=(t=t||this.options||{}).radius||0;e=Math.max(e,e&&t.hoverRadius||0);return 2*(e+(e&&t.borderWidth||0))}draw(t,e){const i=this.options;this.skip||i.radius\u003C.1||!Re(this,e,this.size(i)\u002F2)||(t.strokeStyle=i.borderColor,t.lineWidth=i.borderWidth,t.fillStyle=i.backgroundColor,Le(t,i,this.x,this.y))}getRange(){const t=this.options||{};return t.radius+t.hitRadius}}});function po(t,e,i,s){const n=t.indexOf(e);if(-1===n)return((t,e,i,s)=>(\"string\"==typeof e?(i=t.push(e)-1,s.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,s);return n!==t.lastIndexOf(e)?i:n}function mo(t){const e=this.getLabels();return t>=0&&t\u003Ce.length?e[t]:t}function xo(t,e,{horizontal:i,minRotation:s}){const n=$(s),o=(i?Math.sin(n):Math.cos(n))||.001,a=.75*e*(\"\"+t).length;return Math.min(e\u002Fo,a)}class bo extends tn{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,e){return s(t)||(\"number\"==typeof t||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:s,max:n}=this;const o=t=>s=e?s:t,a=t=>n=i?n:t;if(t){const t=F(s),e=F(n);t\u003C0&&e\u003C0?a(0):t>0&&e>0&&o(0)}if(s===n){let e=0===n?1:Math.abs(.05*n);a(n+e),t||o(s-e)}this.min=s,this.max=n}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:s}=t;return s?(e=Math.ceil(this.max\u002Fs)-Math.floor(this.min\u002Fs)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const n=function(t,e){const i=[],{bounds:n,step:o,min:a,max:r,precision:l,count:h,maxTicks:c,maxDigits:d,includeBounds:u}=t,f=o||1,g=c-1,{min:p,max:m}=e,x=!s(a),b=!s(r),_=!s(h),y=(m-p)\u002F(d+1);let v,M,w,k,S=B((m-p)\u002Fg\u002Ff)*f;if(S\u003C1e-14&&!x&&!b)return[{value:p},{value:m}];k=Math.ceil(m\u002FS)-Math.floor(p\u002FS),k>g&&(S=B(k*S\u002Fg\u002Ff)*f),s(l)||(v=Math.pow(10,l),S=Math.ceil(S*v)\u002Fv),\"ticks\"===n?(M=Math.floor(p\u002FS)*S,w=Math.ceil(m\u002FS)*S):(M=p,w=m),x&&b&&o&&H((r-a)\u002Fo,S\u002F1e3)?(k=Math.round(Math.min((r-a)\u002FS,c)),S=(r-a)\u002Fk,M=a,w=r):_?(M=x?a:M,w=b?r:w,k=h-1,S=(w-M)\u002Fk):(k=(w-M)\u002FS,k=V(k,Math.round(k),S\u002F1e3)?Math.round(k):Math.ceil(k));const P=Math.max(U(S),U(M));v=Math.pow(10,s(l)?P:l),M=Math.round(M*v)\u002Fv,w=Math.round(w*v)\u002Fv;let D=0;for(x&&(u&&M!==a?(i.push({value:a}),M\u003Ca&&D++,V(Math.round((M+D*S)*v)\u002Fv,a,xo(a,y,t))&&D++):M\u003Ca&&D++);D\u003Ck;++D){const t=Math.round((M+D*S)*v)\u002Fv;if(b&&t>r)break;i.push({value:t})}return b&&u&&w!==r?i.length&&V(i[i.length-1].value,r,xo(r,y,t))?i[i.length-1].value=r:i.push({value:r}):b&&w!==r||i.push({value:w}),i}({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return\"ticks\"===t.bounds&&j(n,this,\"value\"),t.reverse?(n.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),n}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-e)\u002FMath.max(t.length-1,1)\u002F2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return ne(t,this.chart.options.locale,this.options.ticks.format)}}class _o extends bo{static id=\"linear\";static defaults={ticks:{callback:ae.formatters.numeric}};determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?t:0,this.max=a(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=$(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,n=this._resolveTickFontOptions(0);return Math.ceil(e\u002FMath.min(40,n.lineHeight\u002Fs))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)\u002Fthis._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}const yo=t=>Math.floor(z(t)),vo=(t,e)=>Math.pow(10,yo(t)+e);function Mo(t){return 1===t\u002FMath.pow(10,yo(t))}function wo(t,e,i){const s=Math.pow(10,i),n=Math.floor(t\u002Fs);return Math.ceil(e\u002Fs)-n}function ko(t,{min:e,max:i}){e=r(t.min,e);const s=[],n=yo(e);let o=function(t,e){let i=yo(e-t);for(;wo(t,e,i)>10;)i++;for(;wo(t,e,i)\u003C10;)i--;return Math.min(i,yo(t))}(e,i),a=o\u003C0?Math.pow(10,Math.abs(o)):1;const l=Math.pow(10,o),h=n>o?Math.pow(10,n):0,c=Math.round((e-h)*a)\u002Fa,d=Math.floor((e-h)\u002Fl\u002F10)*l*10;let u=Math.floor((c-d)\u002FMath.pow(10,o)),f=r(t.min,Math.round((h+d+u*Math.pow(10,o))*a)\u002Fa);for(;f\u003Ci;)s.push({value:f,major:Mo(f),significand:u}),u>=10?u=u\u003C15?15:20:u++,u>=20&&(o++,u=2,a=o>=0?1:a),f=Math.round((h+d+u*Math.pow(10,o))*a)\u002Fa;const g=r(t.max,f);return s.push({value:g,major:Mo(g),significand:u}),s}class So extends tn{static id=\"logarithmic\";static defaults={ticks:{callback:ae.formatters.logarithmic,major:{enabled:!0}}};constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const i=bo.prototype.parse.apply(this,[t,e]);if(0!==i)return a(i)&&i>0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?Math.max(0,t):null,this.max=a(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!a(this._userMin)&&(this.min=t===vo(this.min,0)?vo(this.min,-1):vo(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,s=this.max;const n=e=>i=t?i:e,o=t=>s=e?s:t;i===s&&(i\u003C=0?(n(1),o(10)):(n(vo(i,-1)),o(vo(s,1)))),i\u003C=0&&n(vo(s,-1)),s\u003C=0&&o(vo(i,1)),this.min=i,this.max=s}buildTicks(){const t=this.options,e=ko({min:this._userMin,max:this._userMax},this);return\"ticks\"===t.bounds&&j(e,this,\"value\"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?\"0\":ne(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=z(t),this._valueRange=z(this.max)-z(t)}getPixelForValue(t){return void 0!==t&&0!==t||(t=this.min),null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(z(t)-this._startValue)\u002Fthis._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}function Po(t){const e=t.ticks;if(e.display&&t.display){const t=ki(e.backdropPadding);return l(e.font&&e.font.size,ue.font.size)+t.height}return 0}function Do(t,e,i,s,n){return t===s||t===n?{start:e-i\u002F2,end:e+i\u002F2}:t\u003Cs||t>n?{start:e-i,end:e}:{start:e,end:e+i}}function Co(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},i=Object.assign({},e),s=[],o=[],a=t._pointLabels.length,r=t.options.pointLabels,l=r.centerPointLabels?C\u002Fa:0;for(let u=0;u\u003Ca;u++){const a=r.setContext(t.getPointLabelContext(u));o[u]=a.padding;const f=t.getPointPosition(u,t.drawingArea+o[u],l),g=Si(a.font),p=(h=t.ctx,c=g,d=n(d=t._pointLabels[u])?d:[d],{w:Oe(h,c.string,d),h:d.length*c.lineHeight});s[u]=p;const m=G(t.getIndexAngle(u)+l),x=Math.round(Y(m));Oo(i,e,m,Do(x,f.x,p.w,0,180),Do(x,f.y,p.h,90,270))}var h,c,d;t.setCenterPoint(e.l-i.l,i.r-e.r,e.t-i.t,i.b-e.b),t._pointLabelItems=function(t,e,i){const s=[],n=t._pointLabels.length,o=t.options,{centerPointLabels:a,display:r}=o.pointLabels,l={extra:Po(o)\u002F2,additionalAngle:a?C\u002Fn:0};let h;for(let o=0;o\u003Cn;o++){l.padding=i[o],l.size=e[o];const n=Ao(t,o,l);s.push(n),\"auto\"===r&&(n.visible=To(n,h),n.visible&&(h=n))}return s}(t,s,o)}function Oo(t,e,i,s,n){const o=Math.abs(Math.sin(i)),a=Math.abs(Math.cos(i));let r=0,l=0;s.start\u003Ce.l?(r=(e.l-s.start)\u002Fo,t.l=Math.min(t.l,e.l-r)):s.end>e.r&&(r=(s.end-e.r)\u002Fo,t.r=Math.max(t.r,e.r+r)),n.start\u003Ce.t?(l=(e.t-n.start)\u002Fa,t.t=Math.min(t.t,e.t-l)):n.end>e.b&&(l=(n.end-e.b)\u002Fa,t.b=Math.max(t.b,e.b+l))}function Ao(t,e,i){const s=t.drawingArea,{extra:n,additionalAngle:o,padding:a,size:r}=i,l=t.getPointPosition(e,s+n+a,o),h=Math.round(Y(G(l.angle+E))),c=function(t,e,i){90===i||270===i?t-=e\u002F2:(i>270||i\u003C90)&&(t-=e);return t}(l.y,r.h,h),d=function(t){if(0===t||180===t)return\"center\";if(t\u003C180)return\"left\";return\"right\"}(h),u=function(t,e,i){\"right\"===i?t-=e:\"center\"===i&&(t-=e\u002F2);return t}(l.x,r.w,d);return{visible:!0,x:l.x,y:c,textAlign:d,left:u,top:c,right:u+r.w,bottom:c+r.h}}function To(t,e){if(!e)return!0;const{left:i,top:s,right:n,bottom:o}=t;return!(Re({x:i,y:s},e)||Re({x:i,y:o},e)||Re({x:n,y:s},e)||Re({x:n,y:o},e))}function Lo(t,e,i){const{left:n,top:o,right:a,bottom:r}=i,{backdropColor:l}=e;if(!s(l)){const i=wi(e.borderRadius),s=ki(e.backdropPadding);t.fillStyle=l;const h=n-s.left,c=o-s.top,d=a-n+s.width,u=r-o+s.height;Object.values(i).some((t=>0!==t))?(t.beginPath(),He(t,{x:h,y:c,w:d,h:u,radius:i}),t.fill()):t.fillRect(h,c,d,u)}}function Eo(t,e,i,s){const{ctx:n}=t;if(i)n.arc(t.xCenter,t.yCenter,e,0,O);else{let i=t.getPointPosition(0,e);n.moveTo(i.x,i.y);for(let o=1;o\u003Cs;o++)i=t.getPointPosition(o,e),n.lineTo(i.x,i.y)}}class Ro extends bo{static id=\"radialLinear\";static defaults={display:!0,animate:!0,position:\"chartArea\",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:ae.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:t=>t,padding:5,centerPointLabels:!1}};static defaultRoutes={\"angleLines.color\":\"borderColor\",\"pointLabels.color\":\"color\",\"ticks.color\":\"color\"};static descriptors={angleLines:{_fallback:\"grid\"}};constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=ki(Po(this.options)\u002F2),e=this.width=this.maxWidth-t.width,i=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+e\u002F2+t.left),this.yCenter=Math.floor(this.top+i\u002F2+t.top),this.drawingArea=Math.floor(Math.min(e,i)\u002F2)}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!1);this.min=a(t)&&!isNaN(t)?t:0,this.max=a(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea\u002FPo(this.options))}generateTickLabels(t){bo.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map(((t,e)=>{const i=d(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:\"\"})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?Co(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)\u002F2),this.yCenter+=Math.floor((i-s)\u002F2),this.drawingArea-=Math.min(this.drawingArea\u002F2,Math.max(t,e,i,s))}getIndexAngle(t){return G(t*(O\u002F(this._pointLabels.length||1))+$(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if(s(t))return NaN;const e=this.drawingArea\u002F(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(s(t))return NaN;const e=t\u002F(this.drawingArea\u002F(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t\u003Ce.length){const i=e[t];return function(t,e,i){return Ci(t,{label:i,index:e,type:\"pointLabel\"})}(this.getContext(),t,i)}}getPointPosition(t,e,i=0){const s=this.getIndexAngle(t)-E+i;return{x:Math.cos(s)*e+this.xCenter,y:Math.sin(s)*e+this.yCenter,angle:s}}getPointPositionForValue(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))}getBasePosition(t){return this.getPointPositionForValue(t||0,this.getBaseValue())}getPointLabelPosition(t){const{left:e,top:i,right:s,bottom:n}=this._pointLabelItems[t];return{left:e,top:i,right:s,bottom:n}}drawBackground(){const{backgroundColor:t,grid:{circular:e}}=this.options;if(t){const i=this.ctx;i.save(),i.beginPath(),Eo(this,this.getDistanceFromCenterForValue(this._endValue),e,this._pointLabels.length),i.closePath(),i.fillStyle=t,i.fill(),i.restore()}}drawGrid(){const t=this.ctx,e=this.options,{angleLines:i,grid:s,border:n}=e,o=this._pointLabels.length;let a,r,l;if(e.pointLabels.display&&function(t,e){const{ctx:i,options:{pointLabels:s}}=t;for(let n=e-1;n>=0;n--){const e=t._pointLabelItems[n];if(!e.visible)continue;const o=s.setContext(t.getPointLabelContext(n));Lo(i,o,e);const a=Si(o.font),{x:r,y:l,textAlign:h}=e;Ne(i,t._pointLabels[n],r,l+a.lineHeight\u002F2,a,{color:o.color,textAlign:h,textBaseline:\"middle\"})}}(this,o),s.display&&this.ticks.forEach(((t,e)=>{if(0!==e||0===e&&this.min\u003C0){r=this.getDistanceFromCenterForValue(t.value);const i=this.getContext(e),a=s.setContext(i),l=n.setContext(i);!function(t,e,i,s,n){const o=t.ctx,a=e.circular,{color:r,lineWidth:l}=e;!a&&!s||!r||!l||i\u003C0||(o.save(),o.strokeStyle=r,o.lineWidth=l,o.setLineDash(n.dash||[]),o.lineDashOffset=n.dashOffset,o.beginPath(),Eo(t,i,a,s),o.closePath(),o.stroke(),o.restore())}(this,a,r,o,l)}})),i.display){for(t.save(),a=o-1;a>=0;a--){const s=i.setContext(this.getPointLabelContext(a)),{color:n,lineWidth:o}=s;o&&n&&(t.lineWidth=o,t.strokeStyle=n,t.setLineDash(s.borderDash),t.lineDashOffset=s.borderDashOffset,r=this.getDistanceFromCenterForValue(e.reverse?this.min:this.max),l=this.getPointPosition(a,r),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let n,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign=\"center\",t.textBaseline=\"middle\",this.ticks.forEach(((s,a)=>{if(0===a&&this.min>=0&&!e.reverse)return;const r=i.setContext(this.getContext(a)),l=Si(r.font);if(n=this.getDistanceFromCenterForValue(this.ticks[a].value),r.showLabelBackdrop){t.font=l.string,o=t.measureText(s.label).width,t.fillStyle=r.backdropColor;const e=ki(r.backdropPadding);t.fillRect(-o\u002F2-e.left,-n-l.size\u002F2-e.top,o+e.width,l.size+e.height)}Ne(t,s.label,0,-n,l,{color:r.color,strokeColor:r.textStrokeColor,strokeWidth:r.textStrokeWidth})})),t.restore()}drawTitle(){}}const Io={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},zo=Object.keys(Io);function Fo(t,e){return t-e}function Vo(t,e){if(s(e))return null;const i=t._adapter,{parser:n,round:o,isoWeekday:r}=t._parseOpts;let l=e;return\"function\"==typeof n&&(l=n(l)),a(l)||(l=\"string\"==typeof n?i.parse(l,n):i.parse(l)),null===l?null:(o&&(l=\"week\"!==o||!N(r)&&!0!==r?i.startOf(l,o):i.startOf(l,\"isoWeek\",r)),+l)}function Bo(t,e,i,s){const n=zo.length;for(let o=zo.indexOf(t);o\u003Cn-1;++o){const t=Io[zo[o]],n=t.steps?t.steps:Number.MAX_SAFE_INTEGER;if(t.common&&Math.ceil((i-e)\u002F(n*t.size))\u003C=s)return zo[o]}return zo[n-1]}function Wo(t,e,i){if(i){if(i.length){const{lo:s,hi:n}=et(i,e);t[i[s]>=e?i[s]:i[n]]=!0}}else t[e]=!0}function No(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a\u003Co;++a)r=e[a],n[r]=a,s.push({value:r,major:!1});return 0!==o&&i?function(t,e,i,s){const n=t._adapter,o=+n.startOf(e[0].value,s),a=e[e.length-1].value;let r,l;for(r=o;r\u003C=a;r=+n.add(r,1,s))l=i[r],l>=0&&(e[l].major=!0);return e}(t,s,n,i):s}class Ho extends tn{static id=\"time\";static defaults={bounds:\"data\",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:\"millisecond\",displayFormats:{}},ticks:{source:\"auto\",callback:!1,major:{enabled:!1}}};constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit=\"day\",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e={}){const i=t.time||(t.time={}),s=this._adapter=new In._date(t.adapters.date);s.init(e),b(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:Vo(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||\"day\";let{min:s,max:n,minDefined:o,maxDefined:r}=this.getUserBounds();function l(t){o||isNaN(t.min)||(s=Math.min(s,t.min)),r||isNaN(t.max)||(n=Math.max(n,t.max))}o&&r||(l(this._getLabelBounds()),\"ticks\"===t.bounds&&\"labels\"===t.ticks.source||l(this.getMinMax(!1))),s=a(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),n=a(n)&&!isNaN(n)?n:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,n-1),this.max=Math.max(s+1,n)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s=\"labels\"===i.source?this.getLabelTimestamps():this._generate();\"ticks\"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const n=this.min,o=nt(s,n,this.max);return this._unit=e.unit||(i.autoSkip?Bo(e.minUnit,this.min,this.max,this._getLabelCapacity(n)):function(t,e,i,s,n){for(let o=zo.length-1;o>=zo.indexOf(i);o--){const i=zo[o];if(Io[i].common&&t._adapter.diff(n,s,i)>=e-1)return i}return zo[i?zo.indexOf(i):0]}(this,o.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&\"year\"!==this._unit?function(t){for(let e=zo.indexOf(t)+1,i=zo.length;e\u003Ci;++e)if(Io[zo[e]].common)return zo[e]}(this._unit):void 0,this.initOffsets(s),t.reverse&&o.reverse(),No(this,o,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map((t=>+t.value)))}initOffsets(t=[]){let e,i,s=0,n=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)\u002F2,i=this.getDecimalForValue(t[t.length-1]),n=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))\u002F2);const o=t.length\u003C3?.5:.25;s=Z(s,0,o),n=Z(n,0,o),this._offsets={start:s,end:n,factor:1\u002F(s+1+n)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,n=s.time,o=n.unit||Bo(n.minUnit,e,i,this._getLabelCapacity(e)),a=l(s.ticks.stepSize,1),r=\"week\"===o&&n.isoWeekday,h=N(r)||!0===r,c={};let d,u,f=e;if(h&&(f=+t.startOf(f,\"isoWeek\",r)),f=+t.startOf(f,h?\"day\":o),t.diff(i,e,o)>1e5*a)throw new Error(e+\" and \"+i+\" are too far apart with stepSize of \"+a+\" \"+o);const g=\"data\"===s.ticks.source&&this.getDataTimestamps();for(d=f,u=0;d\u003Ci;d=+t.add(d,a,o),u++)Wo(c,d,g);return d!==i&&\"ticks\"!==s.bounds&&1!==u||Wo(c,d,g),Object.keys(c).sort(Fo).map((t=>+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}format(t,e){const i=this.options.time.displayFormats,s=this._unit,n=e||i[s];return this._adapter.format(t,n)}_tickFormatFunction(t,e,i,s){const n=this.options,o=n.ticks.callback;if(o)return d(o,[t,e,i],this);const a=n.time.displayFormats,r=this._unit,l=this._majorUnit,h=r&&a[r],c=l&&a[l],u=i[e],f=l&&c&&u&&u.major;return this._adapter.format(t,s||(f?c:h))}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e\u003Ci;++e)s=t[e],s.label=this._tickFormatFunction(s.value,e,t)}getDecimalForValue(t){return null===t?NaN:(t-this.min)\u002F(this.max-this.min)}getPixelForValue(t){const e=this._offsets,i=this.getDecimalForValue(t);return this.getPixelForDecimal((e.start+i)*e.factor)}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)\u002Fe.factor-e.end;return this.min+i*(this.max-this.min)}_getLabelSize(t){const e=this.options.ticks,i=this.ctx.measureText(t).width,s=$(this.isHorizontal()?e.maxRotation:e.minRotation),n=Math.cos(s),o=Math.sin(s),a=this._resolveTickFontOptions(0).size;return{w:i*n+a*o,h:i*o+a*n}}_getLabelCapacity(t){const e=this.options.time,i=e.displayFormats,s=i[e.unit]||i.millisecond,n=this._tickFormatFunction(t,0,No(this,[t],this._majorUnit),s),o=this._getLabelSize(n),a=Math.floor(this.isHorizontal()?this.width\u002Fo.w:this.height\u002Fo.h)-1;return a>0?a:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,e=s.length;t\u003Ce;++t)i=i.concat(s[t].controller.getAllParsedValues(this));return this._cache.data=this.normalize(i)}getLabelTimestamps(){const t=this._cache.labels||[];let e,i;if(t.length)return t;const s=this.getLabels();for(e=0,i=s.length;e\u003Ci;++e)t.push(Vo(this,s[e]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return lt(t.sort(Fo))}}function jo(t,e,i){let s,n,o,a,r=0,l=t.length-1;i?(e>=t[r].pos&&e\u003C=t[l].pos&&({lo:r,hi:l}=it(t,\"pos\",e)),({pos:s,time:o}=t[r]),({pos:n,time:a}=t[l])):(e>=t[r].time&&e\u003C=t[l].time&&({lo:r,hi:l}=it(t,\"time\",e)),({time:s,pos:o}=t[r]),({time:n,pos:a}=t[l]));const h=n-s;return h?o+(a-o)*(e-s)\u002Fh:o}var $o=Object.freeze({__proto__:null,CategoryScale:class extends tn{static id=\"category\";static defaults={ticks:{callback:mo}};constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:s}of e)t[i]===s&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(s(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:Z(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:po(i,t,l(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);\"ticks\"===this.options.bounds&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let n=this.getLabels();n=0===t&&e===n.length-1?n:n.slice(t,e+1),this._valueRange=Math.max(n.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let i=t;i\u003C=e;i++)s.push({value:i});return s}getLabelForValue(t){return mo.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return\"number\"!=typeof t&&(t=this.parse(t)),null===t?NaN:this.getPixelForDecimal((t-this._startValue)\u002Fthis._valueRange)}getPixelForTick(t){const e=this.ticks;return t\u003C0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}},LinearScale:_o,LogarithmicScale:So,RadialLinearScale:Ro,TimeScale:Ho,TimeSeriesScale:class extends Ho{static id=\"timeseries\";static defaults=Ho.defaults;constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=jo(e,this.min),this._tableRange=jo(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:i}=this,s=[],n=[];let o,a,r,l,h;for(o=0,a=t.length;o\u003Ca;++o)l=t[o],l>=e&&l\u003C=i&&s.push(l);if(s.length\u003C2)return[{time:e,pos:0},{time:i,pos:1}];for(o=0,a=s.length;o\u003Ca;++o)h=s[o+1],r=s[o-1],l=s[o],Math.round((h+r)\u002F2)!==l&&n.push({time:l,pos:o\u002F(a-1)});return n}_generate(){const t=this.min,e=this.max;let i=super.getDataTimestamps();return i.includes(t)&&i.length||i.splice(0,0,t),i.includes(e)&&1!==i.length||i.push(e),i.sort(((t,e)=>t-e))}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const e=this.getDataTimestamps(),i=this.getLabelTimestamps();return t=e.length&&i.length?this.normalize(e.concat(i)):e.length?e:i,t=this._cache.all=t,t}getDecimalForValue(t){return(jo(this._table,t)-this._minPos)\u002Fthis._tableRange}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)\u002Fe.factor-e.end;return jo(this._table,i*this._tableRange+this._minPos,!0)}}});const Yo=[\"rgb(54, 162, 235)\",\"rgb(255, 99, 132)\",\"rgb(255, 159, 64)\",\"rgb(255, 205, 86)\",\"rgb(75, 192, 192)\",\"rgb(153, 102, 255)\",\"rgb(201, 203, 207)\"],Uo=Yo.map((t=>t.replace(\"rgb(\",\"rgba(\").replace(\")\",\", 0.5)\")));function Xo(t){return Yo[t%Yo.length]}function qo(t){return Uo[t%Uo.length]}function Ko(t){let e=0;return(i,s)=>{const n=t.getDatasetMeta(s).controller;n instanceof $n?e=function(t,e){return t.backgroundColor=t.data.map((()=>Xo(e++))),e}(i,e):n instanceof Yn?e=function(t,e){return t.backgroundColor=t.data.map((()=>qo(e++))),e}(i,e):n&&(e=function(t,e){return t.borderColor=Xo(e),t.backgroundColor=qo(e),++e}(i,e))}}function Go(t){let e;for(e in t)if(t[e].borderColor||t[e].backgroundColor)return!0;return!1}var Jo={id:\"colors\",defaults:{enabled:!0,forceOverride:!1},beforeLayout(t,e,i){if(!i.enabled)return;const{data:{datasets:s},options:n}=t.config,{elements:o}=n,a=Go(s)||(r=n)&&(r.borderColor||r.backgroundColor)||o&&Go(o)||\"rgba(0,0,0,0.1)\"!==ue.borderColor||\"rgba(0,0,0,0.1)\"!==ue.backgroundColor;var r;if(!i.forceOverride&&a)return;const l=Ko(t);s.forEach(l)}};function Zo(t){if(t._decimated){const e=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,\"data\",{configurable:!0,enumerable:!0,writable:!0,value:e})}}function Qo(t){t.data.datasets.forEach((t=>{Zo(t)}))}var ta={id:\"decimation\",defaults:{algorithm:\"min-max\",enabled:!1},beforeElementsUpdate:(t,e,i)=>{if(!i.enabled)return void Qo(t);const n=t.width;t.data.datasets.forEach(((e,o)=>{const{_data:a,indexAxis:r}=e,l=t.getDatasetMeta(o),h=a||e.data;if(\"y\"===Pi([r,t.options.indexAxis]))return;if(!l.controller.supportsDecimation)return;const c=t.scales[l.xAxisID];if(\"linear\"!==c.type&&\"time\"!==c.type)return;if(t.options.parsing)return;let{start:d,count:u}=function(t,e){const i=e.length;let s,n=0;const{iScale:o}=t,{min:a,max:r,minDefined:l,maxDefined:h}=o.getUserBounds();return l&&(n=Z(it(e,o.axis,a).lo,0,i-1)),s=h?Z(it(e,o.axis,r).hi+1,n,i)-n:i-n,{start:n,count:s}}(l,h);if(u\u003C=(i.threshold||4*n))return void Zo(e);let f;switch(s(a)&&(e._data=h,delete e.data,Object.defineProperty(e,\"data\",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),i.algorithm){case\"lttb\":f=function(t,e,i,s,n){const o=n.samples||s;if(o>=i)return t.slice(e,e+i);const a=[],r=(i-2)\u002F(o-2);let l=0;const h=e+i-1;let c,d,u,f,g,p=e;for(a[l++]=t[p],c=0;c\u003Co-2;c++){let s,n=0,o=0;const h=Math.floor((c+1)*r)+1+e,m=Math.min(Math.floor((c+2)*r)+1,i)+e,x=m-h;for(s=h;s\u003Cm;s++)n+=t[s].x,o+=t[s].y;n\u002F=x,o\u002F=x;const b=Math.floor(c*r)+1+e,_=Math.min(Math.floor((c+1)*r)+1,i)+e,{x:y,y:v}=t[p];for(u=f=-1,s=b;s\u003C_;s++)f=.5*Math.abs((y-n)*(t[s].y-v)-(y-t[s].x)*(o-v)),f>u&&(u=f,d=t[s],g=s);a[l++]=d,p=g}return a[l++]=t[h],a}(h,d,u,n,i);break;case\"min-max\":f=function(t,e,i,n){let o,a,r,l,h,c,d,u,f,g,p=0,m=0;const x=[],b=e+i-1,_=t[e].x,y=t[b].x-_;for(o=e;o\u003Ce+i;++o){a=t[o],r=(a.x-_)\u002Fy*n,l=a.y;const e=0|r;if(e===h)l\u003Cf?(f=l,c=o):l>g&&(g=l,d=o),p=(m*p+a.x)\u002F++m;else{const i=o-1;if(!s(c)&&!s(d)){const e=Math.min(c,d),s=Math.max(c,d);e!==u&&e!==i&&x.push({...t[e],x:p}),s!==u&&s!==i&&x.push({...t[s],x:p})}o>0&&i!==u&&x.push(t[i]),x.push(a),h=e,m=0,f=g=l,c=d=u=o}}return x}(h,d,u,n);break;default:throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`)}e._decimated=f}))},destroy(t){Qo(t)}};function ea(t,e,i,s){if(s)return;let n=e[t],o=i[t];return\"angle\"===t&&(n=G(n),o=G(o)),{property:t,start:n,end:o}}function ia(t,e,i){for(;e>t;e--){const t=i[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function sa(t,e,i,s){return t&&e?s(t[i],e[i]):t?t[i]:e?e[i]:0}function na(t,e){let i=[],s=!1;return n(t)?(s=!0,i=t):i=function(t,e){const{x:i=null,y:s=null}=t||{},n=e.points,o=[];return e.segments.forEach((({start:t,end:e})=>{e=ia(t,e,n);const a=n[t],r=n[e];null!==s?(o.push({x:a.x,y:s}),o.push({x:r.x,y:s})):null!==i&&(o.push({x:i,y:a.y}),o.push({x:i,y:r.y}))})),o}(t,e),i.length?new oo({points:i,options:{tension:0},_loop:s,_fullLoop:s}):null}function oa(t){return t&&!1!==t.fill}function aa(t,e,i){let s=t[e].fill;const n=[e];let o;if(!i)return s;for(;!1!==s&&-1===n.indexOf(s);){if(!a(s))return s;if(o=t[s],!o)return!1;if(o.visible)return s;n.push(s),s=o.fill}return!1}function ra(t,e,i){const s=function(t){const e=t.options,i=e.fill;let s=l(i&&i.target,i);void 0===s&&(s=!!e.backgroundColor);if(!1===s||null===s)return!1;if(!0===s)return\"origin\";return s}(t);if(o(s))return!isNaN(s.value)&&s;let n=parseFloat(s);return a(n)&&Math.floor(n)===n?function(t,e,i,s){\"-\"!==t&&\"+\"!==t||(i=e+i);if(i===e||i\u003C0||i>=s)return!1;return i}(s[0],e,n,i):[\"origin\",\"start\",\"end\",\"stack\",\"shape\"].indexOf(s)>=0&&s}function la(t,e,i){const s=[];for(let n=0;n\u003Ci.length;n++){const o=i[n],{first:a,last:r,point:l}=ha(o,e,\"x\");if(!(!l||a&&r))if(a)s.unshift(l);else if(t.push(l),!r)break}t.push(...s)}function ha(t,e,i){const s=t.interpolate(e,i);if(!s)return{};const n=s[i],o=t.segments,a=t.points;let r=!1,l=!1;for(let t=0;t\u003Co.length;t++){const e=o[t],s=a[e.start][i],h=a[e.end][i];if(tt(n,s,h)){r=n===s,l=n===h;break}}return{first:r,last:l,point:s}}class ca{constructor(t){this.x=t.x,this.y=t.y,this.radius=t.radius}pathSegment(t,e,i){const{x:s,y:n,radius:o}=this;return e=e||{start:0,end:O},t.arc(s,n,o,e.end,e.start,!0),!i.bounds}interpolate(t){const{x:e,y:i,radius:s}=this,n=t.angle;return{x:e+Math.cos(n)*s,y:i+Math.sin(n)*s,angle:n}}}function da(t){const{chart:e,fill:i,line:s}=t;if(a(i))return function(t,e){const i=t.getDatasetMeta(e),s=i&&t.isDatasetVisible(e);return s?i.dataset:null}(e,i);if(\"stack\"===i)return function(t){const{scale:e,index:i,line:s}=t,n=[],o=s.segments,a=s.points,r=function(t,e){const i=[],s=t.getMatchingVisibleMetas(\"line\");for(let t=0;t\u003Cs.length;t++){const n=s[t];if(n.index===e)break;n.hidden||i.unshift(n.dataset)}return i}(e,i);r.push(na({x:null,y:e.bottom},s));for(let t=0;t\u003Co.length;t++){const e=o[t];for(let t=e.start;t\u003C=e.end;t++)la(n,a[t],r)}return new oo({points:n,options:{}})}(t);if(\"shape\"===i)return!0;const n=function(t){const e=t.scale||{};if(e.getPointPositionForValue)return function(t){const{scale:e,fill:i}=t,s=e.options,n=e.getLabels().length,a=s.reverse?e.max:e.min,r=function(t,e,i){let s;return s=\"start\"===t?i:\"end\"===t?e.options.reverse?e.min:e.max:o(t)?t.value:e.getBaseValue(),s}(i,e,a),l=[];if(s.grid.circular){const t=e.getPointPositionForValue(0,a);return new ca({x:t.x,y:t.y,radius:e.getDistanceFromCenterForValue(r)})}for(let t=0;t\u003Cn;++t)l.push(e.getPointPositionForValue(t,r));return l}(t);return function(t){const{scale:e={},fill:i}=t,s=function(t,e){let i=null;return\"start\"===t?i=e.bottom:\"end\"===t?i=e.top:o(t)?i=e.getPixelForValue(t.value):e.getBasePixel&&(i=e.getBasePixel()),i}(i,e);if(a(s)){const t=e.isHorizontal();return{x:t?s:null,y:t?null:s}}return null}(t)}(t);return n instanceof ca?n:na(n,s)}function ua(t,e,i){const s=da(e),{chart:n,index:o,line:a,scale:r,axis:l}=e,h=a.options,c=h.fill,d=h.backgroundColor,{above:u=d,below:f=d}=c||{},g=n.getDatasetMeta(o),p=Ni(n,g);s&&a.points.length&&(Ie(t,i),function(t,e){const{line:i,target:s,above:n,below:o,area:a,scale:r,clip:l}=e,h=i._loop?\"angle\":e.axis;t.save();let c=o;o!==n&&(\"x\"===h?(fa(t,s,a.top),pa(t,{line:i,target:s,color:n,scale:r,property:h,clip:l}),t.restore(),t.save(),fa(t,s,a.bottom)):\"y\"===h&&(ga(t,s,a.left),pa(t,{line:i,target:s,color:o,scale:r,property:h,clip:l}),t.restore(),t.save(),ga(t,s,a.right),c=n));pa(t,{line:i,target:s,color:c,scale:r,property:h,clip:l}),t.restore()}(t,{line:a,target:s,above:u,below:f,area:i,scale:r,axis:l,clip:p}),ze(t))}function fa(t,e,i){const{segments:s,points:n}=e;let o=!0,a=!1;t.beginPath();for(const r of s){const{start:s,end:l}=r,h=n[s],c=n[ia(s,l,n)];o?(t.moveTo(h.x,h.y),o=!1):(t.lineTo(h.x,i),t.lineTo(h.x,h.y)),a=!!e.pathSegment(t,r,{move:a}),a?t.closePath():t.lineTo(c.x,i)}t.lineTo(e.first().x,i),t.closePath(),t.clip()}function ga(t,e,i){const{segments:s,points:n}=e;let o=!0,a=!1;t.beginPath();for(const r of s){const{start:s,end:l}=r,h=n[s],c=n[ia(s,l,n)];o?(t.moveTo(h.x,h.y),o=!1):(t.lineTo(i,h.y),t.lineTo(h.x,h.y)),a=!!e.pathSegment(t,r,{move:a}),a?t.closePath():t.lineTo(i,c.y)}t.lineTo(i,e.first().y),t.closePath(),t.clip()}function pa(t,e){const{line:i,target:s,property:n,color:o,scale:a,clip:r}=e,l=function(t,e,i){const s=t.segments,n=t.points,o=e.points,a=[];for(const t of s){let{start:s,end:r}=t;r=ia(s,r,n);const l=ea(i,n[s],n[r],t.loop);if(!e.segments){a.push({source:t,target:l,start:n[s],end:n[r]});continue}const h=Ii(e,l);for(const e of h){const s=ea(i,o[e.start],o[e.end],e.loop),r=Ri(t,n,s);for(const t of r)a.push({source:t,target:e,start:{[i]:sa(l,s,\"start\",Math.max)},end:{[i]:sa(l,s,\"end\",Math.min)}})}}return a}(i,s,n);for(const{source:e,target:h,start:c,end:d}of l){const{style:{backgroundColor:l=o}={}}=e,u=!0!==s;t.save(),t.fillStyle=l,ma(t,a,r,u&&ea(n,c,d)),t.beginPath();const f=!!i.pathSegment(t,e);let g;if(u){f?t.closePath():xa(t,s,d,n);const e=!!s.pathSegment(t,h,{move:f,reverse:!0});g=f&&e,g||xa(t,s,c,n)}t.closePath(),t.fill(g?\"evenodd\":\"nonzero\"),t.restore()}}function ma(t,e,i,s){const n=e.chart.chartArea,{property:o,start:a,end:r}=s||{};if(\"x\"===o||\"y\"===o){let e,s,l,h;\"x\"===o?(e=a,s=n.top,l=r,h=n.bottom):(e=n.left,s=a,l=n.right,h=r),t.beginPath(),i&&(e=Math.max(e,i.left),l=Math.min(l,i.right),s=Math.max(s,i.top),h=Math.min(h,i.bottom)),t.rect(e,s,l-e,h-s),t.clip()}}function xa(t,e,i,s){const n=e.interpolate(i,s);n&&t.lineTo(n.x,n.y)}var ba={id:\"filler\",afterDatasetsUpdate(t,e,i){const s=(t.data.datasets||[]).length,n=[];let o,a,r,l;for(a=0;a\u003Cs;++a)o=t.getDatasetMeta(a),r=o.dataset,l=null,r&&r.options&&r instanceof oo&&(l={visible:t.isDatasetVisible(a),index:a,fill:ra(r,a,s),chart:t,axis:o.controller.options.indexAxis,scale:o.vScale,line:r}),o.$filler=l,n.push(l);for(a=0;a\u003Cs;++a)l=n[a],l&&!1!==l.fill&&(l.fill=aa(n,a,i.propagate))},beforeDraw(t,e,i){const s=\"beforeDraw\"===i.drawTime,n=t.getSortedVisibleDatasetMetas(),o=t.chartArea;for(let e=n.length-1;e>=0;--e){const i=n[e].$filler;i&&(i.line.updateControlPoints(o,i.axis),s&&i.fill&&ua(t.ctx,i,o))}},beforeDatasetsDraw(t,e,i){if(\"beforeDatasetsDraw\"!==i.drawTime)return;const s=t.getSortedVisibleDatasetMetas();for(let e=s.length-1;e>=0;--e){const i=s[e].$filler;oa(i)&&ua(t.ctx,i,t.chartArea)}},beforeDatasetDraw(t,e,i){const s=e.meta.$filler;oa(s)&&\"beforeDatasetDraw\"===i.drawTime&&ua(t.ctx,s,t.chartArea)},defaults:{propagate:!0,drawTime:\"beforeDatasetDraw\"}};const _a=(t,e)=>{let{boxHeight:i=e,boxWidth:s=e}=t;return t.usePointStyle&&(i=Math.min(i,e),s=t.pointStyleWidth||Math.min(s,e)),{boxWidth:s,boxHeight:i,itemHeight:Math.max(e,i)}};class ya extends $s{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=d(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=Si(i.font),n=s.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:r}=_a(i,n);let l,h;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,h=this._fitRows(o,n,a,r)+10):(h=this.maxHeight,l=this._fitCols(o,s,a,r)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.lineWidths=[0],h=s+a;let c=t;n.textAlign=\"left\",n.textBaseline=\"middle\";let d=-1,u=-h;return this.legendItems.forEach(((t,f)=>{const g=i+e\u002F2+n.measureText(t.text).width;(0===f||l[l.length-1]+g+2*a>o)&&(c+=h,l[l.length-(f>0?0:1)]=0,u+=h,d++),r[f]={left:0,top:u,row:d,width:g,height:s},l[l.length-1]+=g+a})),c}_fitCols(t,e,i,s){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.columnSizes=[],h=o-t;let c=a,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const{itemWidth:p,itemHeight:m}=function(t,e,i,s,n){const o=function(t,e,i,s){let n=t.text;n&&\"string\"!=typeof n&&(n=n.reduce(((t,e)=>t.length>e.length?t:e)));return e+i.size\u002F2+s.measureText(n).width}(s,t,e,i),a=function(t,e,i){let s=t;\"string\"!=typeof e.text&&(s=va(e,i));return s}(n,s,e.lineHeight);return{itemWidth:o,itemHeight:a}}(i,e,n,t,s);o>0&&u+m+2*a>h&&(c+=d+a,l.push({width:d,height:u}),f+=d+a,g++,d=u=0),r[o]={left:f,top:u,col:g,width:p,height:m},d=Math.max(d,p),u+=m+a})),c+=d,l.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:n}}=this,o=Oi(n,this.left,this.width);if(this.isHorizontal()){let n=0,a=ft(i,this.left+s,this.right-this.lineWidths[n]);for(const r of e)n!==r.row&&(n=r.row,a=ft(i,this.left+s,this.right-this.lineWidths[n])),r.top+=this.top+t+s,r.left=o.leftForLtr(o.x(a),r.width),a+=r.width+s}else{let n=0,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height);for(const r of e)r.col!==n&&(n=r.col,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height)),r.top=a,r.left+=this.left+s,r.left=o.leftForLtr(o.x(r.left),r.width),a+=r.height+s}}isHorizontal(){return\"top\"===this.options.position||\"bottom\"===this.options.position}draw(){if(this.options.display){const t=this.ctx;Ie(t,this),this._draw(),ze(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:n,labels:o}=t,a=ue.color,r=Oi(t.rtl,this.left,this.width),h=Si(o.font),{padding:c}=o,d=h.size,u=d\u002F2;let f;this.drawTitle(),s.textAlign=r.textAlign(\"left\"),s.textBaseline=\"middle\",s.lineWidth=.5,s.font=h.string;const{boxWidth:g,boxHeight:p,itemHeight:m}=_a(o,d),x=this.isHorizontal(),b=this._computeTitleHeight();f=x?{x:ft(n,this.left+c,this.right-i[0]),y:this.top+c+b,line:0}:{x:this.left+c,y:ft(n,this.top+b+c,this.bottom-e[0].height),line:0},Ai(this.ctx,t.textDirection);const _=m+c;this.legendItems.forEach(((y,v)=>{s.strokeStyle=y.fontColor,s.fillStyle=y.fontColor;const M=s.measureText(y.text).width,w=r.textAlign(y.textAlign||(y.textAlign=o.textAlign)),k=g+u+M;let S=f.x,P=f.y;r.setWidth(this.width),x?v>0&&S+k+c>this.right&&(P=f.y+=_,f.line++,S=f.x=ft(n,this.left+c,this.right-i[f.line])):v>0&&P+_>this.bottom&&(S=f.x=S+e[f.line].width+c,f.line++,P=f.y=ft(n,this.top+b+c,this.bottom-e[f.line].height));if(function(t,e,i){if(isNaN(g)||g\u003C=0||isNaN(p)||p\u003C0)return;s.save();const n=l(i.lineWidth,1);if(s.fillStyle=l(i.fillStyle,a),s.lineCap=l(i.lineCap,\"butt\"),s.lineDashOffset=l(i.lineDashOffset,0),s.lineJoin=l(i.lineJoin,\"miter\"),s.lineWidth=n,s.strokeStyle=l(i.strokeStyle,a),s.setLineDash(l(i.lineDash,[])),o.usePointStyle){const a={radius:p*Math.SQRT2\u002F2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:n},l=r.xPlus(t,g\u002F2);Ee(s,a,l,e+u,o.pointStyleWidth&&g)}else{const o=e+Math.max((d-p)\u002F2,0),a=r.leftForLtr(t,g),l=wi(i.borderRadius);s.beginPath(),Object.values(l).some((t=>0!==t))?He(s,{x:a,y:o,w:g,h:p,radius:l}):s.rect(a,o,g,p),s.fill(),0!==n&&s.stroke()}s.restore()}(r.x(S),P,y),S=gt(w,S+g+u,x?S+k:this.right,t.rtl),function(t,e,i){Ne(s,i.text,t,e+m\u002F2,h,{strikethrough:i.hidden,textAlign:r.textAlign(i.textAlign)})}(r.x(S),P,y),x)f.x+=k+c;else if(\"string\"!=typeof y.text){const t=h.lineHeight;f.y+=va(y,t)+c}else f.y+=_})),Ti(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=Si(e.font),s=ki(e.padding);if(!e.display)return;const n=Oi(t.rtl,this.left,this.width),o=this.ctx,a=e.position,r=i.size\u002F2,l=s.top+r;let h,c=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),h=this.top+l,c=ft(t.align,c,this.right-d);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);h=l+ft(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const u=ft(a,c,c+d);o.textAlign=n.textAlign(ut(a)),o.textBaseline=\"middle\",o.strokeStyle=e.color,o.fillStyle=e.color,o.font=i.string,Ne(o,e.text,u,h,i)}_computeTitleHeight(){const t=this.options.title,e=Si(t.font),i=ki(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,n;if(tt(t,this.left,this.right)&&tt(e,this.top,this.bottom))for(n=this.legendHitBoxes,i=0;i\u003Cn.length;++i)if(s=n[i],tt(t,s.left,s.left+s.width)&&tt(e,s.top,s.top+s.height))return this.legendItems[i];return null}handleEvent(t){const e=this.options;if(!function(t,e){if((\"mousemove\"===t||\"mouseout\"===t)&&(e.onHover||e.onLeave))return!0;if(e.onClick&&(\"click\"===t||\"mouseup\"===t))return!0;return!1}(t.type,e))return;const i=this._getLegendItemAt(t.x,t.y);if(\"mousemove\"===t.type||\"mouseout\"===t.type){const o=this._hoveredItem,a=(n=i,null!==(s=o)&&null!==n&&s.datasetIndex===n.datasetIndex&&s.index===n.index);o&&!a&&d(e.onLeave,[t,o,this],this),this._hoveredItem=i,i&&!a&&d(e.onHover,[t,i,this],this)}else i&&d(e.onClick,[t,i,this],this);var s,n}}function va(t,e){return e*(t.text?t.text.length:0)}var Ma={id:\"legend\",_element:ya,start(t,e,i){const s=t.legend=new ya({ctx:t.ctx,options:i,chart:t});ls.configure(t,s,i),ls.addBox(t,s)},stop(t){ls.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,i){const s=t.legend;ls.configure(t,s,i),s.options=i},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:\"top\",align:\"center\",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,i){const s=e.datasetIndex,n=i.chart;n.isDatasetVisible(s)?(n.hide(s),e.hidden=!0):(n.show(s),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:n,color:o,useBorderRadius:a,borderRadius:r}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const l=t.controller.getStyle(i?0:void 0),h=ki(l.borderWidth);return{text:e[t.index].label,fillStyle:l.backgroundColor,fontColor:o,hidden:!t.visible,lineCap:l.borderCapStyle,lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:(h.width+h.height)\u002F4,strokeStyle:l.borderColor,pointStyle:s||l.pointStyle,rotation:l.rotation,textAlign:n||l.textAlign,borderRadius:a&&(r||l.borderRadius),datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:\"center\",text:\"\"}},descriptors:{_scriptable:t=>!t.startsWith(\"on\"),labels:{_scriptable:t=>![\"generateLabels\",\"filter\",\"sort\"].includes(t)}}};class wa extends $s{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const s=n(i.text)?i.text.length:1;this._padding=ki(i.padding);const o=s*Si(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return\"top\"===t||\"bottom\"===t}_drawArgs(t){const{top:e,left:i,bottom:s,right:n,options:o}=this,a=o.align;let r,l,h,c=0;return this.isHorizontal()?(l=ft(a,i,n),h=e+t,r=n-i):(\"left\"===o.position?(l=i+t,h=ft(a,s,e),c=-.5*C):(l=n-t,h=ft(a,e,s),c=.5*C),r=s-e),{titleX:l,titleY:h,maxWidth:r,rotation:c}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const i=Si(e.font),s=i.lineHeight\u002F2+this._padding.top,{titleX:n,titleY:o,maxWidth:a,rotation:r}=this._drawArgs(s);Ne(t,e.text,0,0,i,{color:e.color,maxWidth:a,rotation:r,textAlign:ut(e.align),textBaseline:\"middle\",translation:[n,o]})}}var ka={id:\"title\",_element:wa,start(t,e,i){!function(t,e){const i=new wa({ctx:t.ctx,options:e,chart:t});ls.configure(t,i,e),ls.addBox(t,i),t.titleBlock=i}(t,i)},stop(t){const e=t.titleBlock;ls.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,i){const s=t.titleBlock;ls.configure(t,s,i),s.options=i},defaults:{align:\"center\",display:!1,font:{weight:\"bold\"},fullSize:!0,padding:10,position:\"top\",text:\"\",weight:2e3},defaultRoutes:{color:\"color\"},descriptors:{_scriptable:!0,_indexable:!1}};const Sa=new WeakMap;var Pa={id:\"subtitle\",start(t,e,i){const s=new wa({ctx:t.ctx,options:i,chart:t});ls.configure(t,s,i),ls.addBox(t,s),Sa.set(t,s)},stop(t){ls.removeBox(t,Sa.get(t)),Sa.delete(t)},beforeUpdate(t,e,i){const s=Sa.get(t);ls.configure(t,s,i),s.options=i},defaults:{align:\"center\",display:!1,font:{weight:\"normal\"},fullSize:!0,padding:0,position:\"top\",text:\"\",weight:1500},defaultRoutes:{color:\"color\"},descriptors:{_scriptable:!0,_indexable:!1}};const Da={average(t){if(!t.length)return!1;let e,i,s=new Set,n=0,o=0;for(e=0,i=t.length;e\u003Ci;++e){const i=t[e].element;if(i&&i.hasValue()){const t=i.tooltipPosition();s.add(t.x),n+=t.y,++o}}if(0===o||0===s.size)return!1;return{x:[...s].reduce(((t,e)=>t+e))\u002Fs.size,y:n\u002Fo}},nearest(t,e){if(!t.length)return!1;let i,s,n,o=e.x,a=e.y,r=Number.POSITIVE_INFINITY;for(i=0,s=t.length;i\u003Cs;++i){const s=t[i].element;if(s&&s.hasValue()){const t=q(e,s.getCenterPoint());t\u003Cr&&(r=t,n=s)}}if(n){const t=n.tooltipPosition();o=t.x,a=t.y}return{x:o,y:a}}};function Ca(t,e){return e&&(n(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Oa(t){return(\"string\"==typeof t||t instanceof String)&&t.indexOf(\"\\n\")>-1?t.split(\"\\n\"):t}function Aa(t,e){const{element:i,datasetIndex:s,index:n}=e,o=t.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:t,label:a,parsed:o.getParsed(n),raw:t.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:i}}function Ta(t,e){const i=t.chart.ctx,{body:s,footer:n,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=Si(e.bodyFont),h=Si(e.titleFont),c=Si(e.footerFont),d=o.length,f=n.length,g=s.length,p=ki(e.padding);let m=p.height,x=0,b=s.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(b+=t.beforeBody.length+t.afterBody.length,d&&(m+=d*h.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),b){m+=g*(e.displayColors?Math.max(r,l.lineHeight):l.lineHeight)+(b-g)*l.lineHeight+(b-1)*e.bodySpacing}f&&(m+=e.footerMarginTop+f*c.lineHeight+(f-1)*e.footerSpacing);let _=0;const y=function(t){x=Math.max(x,i.measureText(t).width+_)};return i.save(),i.font=h.string,u(t.title,y),i.font=l.string,u(t.beforeBody.concat(t.afterBody),y),_=e.displayColors?a+2+e.boxPadding:0,u(s,(t=>{u(t.before,y),u(t.lines,y),u(t.after,y)})),_=0,i.font=c.string,u(t.footer,y),i.restore(),x+=p.width,{width:x,height:m}}function La(t,e,i,s){const{x:n,width:o}=i,{width:a,chartArea:{left:r,right:l}}=t;let h=\"center\";return\"center\"===s?h=n\u003C=(r+l)\u002F2?\"left\":\"right\":n\u003C=o\u002F2?h=\"left\":n>=a-o\u002F2&&(h=\"right\"),function(t,e,i,s){const{x:n,width:o}=s,a=i.caretSize+i.caretPadding;return\"left\"===t&&n+o+a>e.width||\"right\"===t&&n-o-a\u003C0||void 0}(h,t,e,i)&&(h=\"center\"),h}function Ea(t,e,i){const s=i.yAlign||e.yAlign||function(t,e){const{y:i,height:s}=e;return i\u003Cs\u002F2?\"top\":i>t.height-s\u002F2?\"bottom\":\"center\"}(t,i);return{xAlign:i.xAlign||e.xAlign||La(t,e,i,s),yAlign:s}}function Ra(t,e,i,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=i,h=n+o,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=wi(a);let g=function(t,e){let{x:i,width:s}=t;return\"right\"===e?i-=s:\"center\"===e&&(i-=s\u002F2),i}(e,r);const p=function(t,e,i){let{y:s,height:n}=t;return\"top\"===e?s+=i:s-=\"bottom\"===e?n+i:n\u002F2,s}(e,l,h);return\"center\"===l?\"left\"===r?g+=h:\"right\"===r&&(g-=h):\"left\"===r?g-=Math.max(c,u)+n:\"right\"===r&&(g+=Math.max(d,f)+n),{x:Z(g,0,s.width-e.width),y:Z(p,0,s.height-e.height)}}function Ia(t,e,i){const s=ki(i.padding);return\"center\"===e?t.x+t.width\u002F2:\"right\"===e?t.x+t.width-s.right:t.x+s.left}function za(t){return Ca([],Oa(t))}function Fa(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}const Va={beforeTitle:e,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&\"dataset\"===this.options.mode)return e.dataset.label||\"\";if(e.label)return e.label;if(s>0&&e.dataIndex\u003Cs)return i[e.dataIndex]}return\"\"},afterTitle:e,beforeBody:e,beforeLabel:e,label(t){if(this&&this.options&&\"dataset\"===this.options.mode)return t.label+\": \"+t.formattedValue||t.formattedValue;let e=t.dataset.label||\"\";e&&(e+=\": \");const i=t.formattedValue;return s(i)||(e+=i),e},labelColor(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:e,afterBody:e,beforeFooter:e,footer:e,afterFooter:e};function Ba(t,e,i,s){const n=t[e].call(i,s);return void 0===n?Va[e].call(i,s):n}class Wa extends $s{static positioners=Da;constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const e=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&e.options.animation&&i.animations,n=new Ts(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(n)),n}getContext(){return this.$context||(this.$context=(t=this.chart.getContext(),e=this,i=this._tooltipItems,Ci(t,{tooltip:e,tooltipItems:i,type:\"tooltip\"})));var t,e,i}getTitle(t,e){const{callbacks:i}=e,s=Ba(i,\"beforeTitle\",this,t),n=Ba(i,\"title\",this,t),o=Ba(i,\"afterTitle\",this,t);let a=[];return a=Ca(a,Oa(s)),a=Ca(a,Oa(n)),a=Ca(a,Oa(o)),a}getBeforeBody(t,e){return za(Ba(e.callbacks,\"beforeBody\",this,t))}getBody(t,e){const{callbacks:i}=e,s=[];return u(t,(t=>{const e={before:[],lines:[],after:[]},n=Fa(i,t);Ca(e.before,Oa(Ba(n,\"beforeLabel\",this,t))),Ca(e.lines,Ba(n,\"label\",this,t)),Ca(e.after,Oa(Ba(n,\"afterLabel\",this,t))),s.push(e)})),s}getAfterBody(t,e){return za(Ba(e.callbacks,\"afterBody\",this,t))}getFooter(t,e){const{callbacks:i}=e,s=Ba(i,\"beforeFooter\",this,t),n=Ba(i,\"footer\",this,t),o=Ba(i,\"afterFooter\",this,t);let a=[];return a=Ca(a,Oa(s)),a=Ca(a,Oa(n)),a=Ca(a,Oa(o)),a}_createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];let a,r,l=[];for(a=0,r=e.length;a\u003Cr;++a)l.push(Aa(this.chart,e[a]));return t.filter&&(l=l.filter(((e,s,n)=>t.filter(e,s,n,i)))),t.itemSort&&(l=l.sort(((e,s)=>t.itemSort(e,s,i)))),u(l,(e=>{const i=Fa(t.callbacks,e);s.push(Ba(i,\"labelColor\",this,e)),n.push(Ba(i,\"labelPointStyle\",this,e)),o.push(Ba(i,\"labelTextColor\",this,e))})),this.labelColors=s,this.labelPointStyles=n,this.labelTextColors=o,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),s=this._active;let n,o=[];if(s.length){const t=Da[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Ta(this,i),a=Object.assign({},t,e),r=Ea(this.chart,i,a),l=Ra(i,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:l.x,y:l.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.lineTo(n.x3,n.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:n}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:r,topRight:l,bottomLeft:h,bottomRight:c}=wi(a),{x:d,y:u}=t,{width:f,height:g}=e;let p,m,x,b,_,y;return\"center\"===n?(_=u+g\u002F2,\"left\"===s?(p=d,m=p-o,b=_+o,y=_-o):(p=d+f,m=p+o,b=_-o,y=_+o),x=p):(m=\"left\"===s?d+Math.max(r,h)+o:\"right\"===s?d+f-Math.max(l,c)-o:this.caretX,\"top\"===n?(b=u,_=b-o,p=m-o,x=m+o):(b=u+g,_=b+o,p=m+o,x=m-o),y=b),{x1:p,x2:m,x3:x,y1:b,y2:_,y3:y}}drawTitle(t,e,i){const s=this.title,n=s.length;let o,a,r;if(n){const l=Oi(i.rtl,this.x,this.width);for(t.x=Ia(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline=\"middle\",o=Si(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=o.string,r=0;r\u003Cn;++r)e.fillText(s[r],l.x(t.x),t.y+o.lineHeight\u002F2),t.y+=o.lineHeight+a,r+1===n&&(t.y+=i.titleMarginBottom-a)}}_drawColorBox(t,e,i,s,n){const a=this.labelColors[i],r=this.labelPointStyles[i],{boxHeight:l,boxWidth:h}=n,c=Si(n.bodyFont),d=Ia(this,\"left\",n),u=s.x(d),f=l\u003Cc.lineHeight?(c.lineHeight-l)\u002F2:0,g=e.y+f;if(n.usePointStyle){const e={radius:Math.min(h,l)\u002F2,pointStyle:r.pointStyle,rotation:r.rotation,borderWidth:1},i=s.leftForLtr(u,h)+h\u002F2,o=g+l\u002F2;t.strokeStyle=n.multiKeyBackground,t.fillStyle=n.multiKeyBackground,Le(t,e,i,o),t.strokeStyle=a.borderColor,t.fillStyle=a.backgroundColor,Le(t,e,i,o)}else{t.lineWidth=o(a.borderWidth)?Math.max(...Object.values(a.borderWidth)):a.borderWidth||1,t.strokeStyle=a.borderColor,t.setLineDash(a.borderDash||[]),t.lineDashOffset=a.borderDashOffset||0;const e=s.leftForLtr(u,h),i=s.leftForLtr(s.xPlus(u,1),h-2),r=wi(a.borderRadius);Object.values(r).some((t=>0!==t))?(t.beginPath(),t.fillStyle=n.multiKeyBackground,He(t,{x:e,y:g,w:h,h:l,radius:r}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),He(t,{x:i,y:g+1,w:h-2,h:l-2,radius:r}),t.fill()):(t.fillStyle=n.multiKeyBackground,t.fillRect(e,g,h,l),t.strokeRect(e,g,h,l),t.fillStyle=a.backgroundColor,t.fillRect(i,g+1,h-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:n,bodyAlign:o,displayColors:a,boxHeight:r,boxWidth:l,boxPadding:h}=i,c=Si(i.bodyFont);let d=c.lineHeight,f=0;const g=Oi(i.rtl,this.x,this.width),p=function(i){e.fillText(i,g.x(t.x+f),t.y+d\u002F2),t.y+=d+n},m=g.textAlign(o);let x,b,_,y,v,M,w;for(e.textAlign=o,e.textBaseline=\"middle\",e.font=c.string,t.x=Ia(this,m,i),e.fillStyle=i.bodyColor,u(this.beforeBody,p),f=a&&\"right\"!==m?\"center\"===o?l\u002F2+h:l+2+h:0,y=0,M=s.length;y\u003CM;++y){for(x=s[y],b=this.labelTextColors[y],e.fillStyle=b,u(x.before,p),_=x.lines,a&&_.length&&(this._drawColorBox(e,t,y,g,i),d=Math.max(c.lineHeight,r)),v=0,w=_.length;v\u003Cw;++v)p(_[v]),d=c.lineHeight;u(x.after,p)}f=0,d=c.lineHeight,u(this.afterBody,p),t.y-=n}drawFooter(t,e,i){const s=this.footer,n=s.length;let o,a;if(n){const r=Oi(i.rtl,this.x,this.width);for(t.x=Ia(this,i.footerAlign,i),t.y+=i.footerMarginTop,e.textAlign=r.textAlign(i.footerAlign),e.textBaseline=\"middle\",o=Si(i.footerFont),e.fillStyle=i.footerColor,e.font=o.string,a=0;a\u003Cn;++a)e.fillText(s[a],r.x(t.x),t.y+o.lineHeight\u002F2),t.y+=o.lineHeight+i.footerSpacing}}drawBackground(t,e,i,s){const{xAlign:n,yAlign:o}=this,{x:a,y:r}=t,{width:l,height:h}=i,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=wi(s.cornerRadius);e.fillStyle=s.backgroundColor,e.strokeStyle=s.borderColor,e.lineWidth=s.borderWidth,e.beginPath(),e.moveTo(a+c,r),\"top\"===o&&this.drawCaret(t,e,i,s),e.lineTo(a+l-d,r),e.quadraticCurveTo(a+l,r,a+l,r+d),\"center\"===o&&\"right\"===n&&this.drawCaret(t,e,i,s),e.lineTo(a+l,r+h-f),e.quadraticCurveTo(a+l,r+h,a+l-f,r+h),\"bottom\"===o&&this.drawCaret(t,e,i,s),e.lineTo(a+u,r+h),e.quadraticCurveTo(a,r+h,a,r+h-u),\"center\"===o&&\"left\"===n&&this.drawCaret(t,e,i,s),e.lineTo(a,r+c),e.quadraticCurveTo(a,r,a+c,r),e.closePath(),e.fill(),s.borderWidth>0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i.x,n=i&&i.y;if(s||n){const i=Da[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Ta(this,t),a=Object.assign({},i,this._size),r=Ea(e,t,a),l=Ra(t,a,r,e);s._to===l.x&&n._to===l.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},n={x:this.x,y:this.y};i=Math.abs(i)\u003C.001?0:i;const o=ki(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(n,t,s,e),Ai(t,e.textDirection),n.y+=o.top,this.drawTitle(n,t,e),this.drawBody(n,t,e),this.drawFooter(n,t,e),Ti(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error(\"Cannot find a dataset at index \"+t);return{datasetIndex:t,element:i.data[e],index:e}})),n=!f(i,s),o=this._positionChanged(s,e);(n||o)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,n=this._active||[],o=this._getActiveElements(t,n,e,i),a=this._positionChanged(o,t),r=e||!f(o,n)||a;return r&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),r}_getActiveElements(t,e,i,s){const n=this.options;if(\"mouseout\"===t.type)return[];if(!s)return e.filter((t=>this.chart.data.datasets[t.datasetIndex]&&void 0!==this.chart.getDatasetMeta(t.datasetIndex).controller.getParsed(t.index)));const o=this.chart.getElementsAtEventForMode(t,n.mode,n,i);return n.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=Da[n.position].call(this,t,e);return!1!==o&&(i!==o.x||s!==o.y)}}var Na={id:\"tooltip\",_element:Wa,positioners:Da,afterInit(t,e,i){i&&(t.tooltip=new Wa({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(!1===t.notifyPlugins(\"beforeTooltipDraw\",{...i,cancelable:!0}))return;e.draw(t.ctx),t.notifyPlugins(\"afterTooltipDraw\",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:\"average\",backgroundColor:\"rgba(0,0,0,0.8)\",titleColor:\"#fff\",titleFont:{weight:\"bold\"},titleSpacing:2,titleMarginBottom:6,titleAlign:\"left\",bodyColor:\"#fff\",bodySpacing:2,bodyFont:{},bodyAlign:\"left\",footerColor:\"#fff\",footerSpacing:2,footerMarginTop:6,footerFont:{weight:\"bold\"},footerAlign:\"left\",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:\"#fff\",displayColors:!0,boxPadding:0,borderColor:\"rgba(0,0,0,0)\",borderWidth:0,animation:{duration:400,easing:\"easeOutQuart\"},animations:{numbers:{type:\"number\",properties:[\"x\",\"y\",\"width\",\"height\",\"caretX\",\"caretY\"]},opacity:{easing:\"linear\",duration:200}},callbacks:Va},defaultRoutes:{bodyFont:\"font\",footerFont:\"font\",titleFont:\"font\"},descriptors:{_scriptable:t=>\"filter\"!==t&&\"itemSort\"!==t&&\"external\"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:\"animation\"}},additionalOptionScopes:[\"interaction\"]};return Tn.register(Un,$o,go,t),Tn.helpers={...Hi},Tn._adapters=In,Tn.Animation=As,Tn.Animations=Ts,Tn.animator=bt,Tn.controllers=nn.controllers.items,Tn.DatasetController=js,Tn.Element=$s,Tn.elements=go,Tn.Interaction=Ki,Tn.layouts=ls,Tn.platforms=Ds,Tn.Scale=tn,Tn.Ticks=ae,Object.assign(Tn,Un,$o,go,t,Ds),Tn.Chart=Tn,\"undefined\"!=typeof window&&(window.Chart=Tn),Tn}));\n+\u002F*!\r\n+ * Chart.js v4.5.1\r\n+ * https:\u002F\u002Fwww.chartjs.org\r\n+ * (c) 2025 Chart.js Contributors\r\n+ * Released under the MIT License\r\n+ *\u002F\r\n+!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){\"use strict\";var t=Object.freeze({__proto__:null,get Colors(){return Jo},get Decimation(){return ta},get Filler(){return ba},get Legend(){return Ma},get SubTitle(){return Pa},get Title(){return ka},get Tooltip(){return Na}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return\"[object\"===e.slice(0,7)&&\"Array]\"===e.slice(-6)}function o(t){return null!==t&&\"[object Object]\"===Object.prototype.toString.call(t)}function a(t){return(\"number\"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>\"string\"==typeof t&&t.endsWith(\"%\")?parseFloat(t)\u002F100:+t\u002Fe,c=(t,e)=>\"string\"==typeof t&&t.endsWith(\"%\")?parseFloat(t)\u002F100*e:+t;function d(t,e,i){if(t&&\"function\"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a\u003Cr;a++)e.call(i,t[a],a);else if(o(t))for(l=Object.keys(t),r=l.length,a=0;a\u003Cr;a++)e.call(i,t[l[a]],l[a])}function f(t,e){let i,s,n,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,s=t.length;i\u003Cs;++i)if(n=t[i],o=e[i],n.datasetIndex!==o.datasetIndex||n.index!==o.index)return!1;return!0}function g(t){if(n(t))return t.map(g);if(o(t)){const e=Object.create(null),i=Object.keys(t),s=i.length;let n=0;for(;n\u003Cs;++n)e[i[n]]=g(t[i[n]]);return e}return t}function p(t){return-1===[\"__proto__\",\"prototype\",\"constructor\"].indexOf(t)}function m(t,e,i,s){if(!p(t))return;const n=e[t],a=i[t];o(n)&&o(a)?x(n,a,s):e[t]=g(a)}function x(t,e,i){const s=n(e)?e:[e],a=s.length;if(!o(t))return t;const r=(i=i||{}).merger||m;let l;for(let e=0;e\u003Ca;++e){if(l=s[e],!o(l))continue;const n=Object.keys(l);for(let e=0,s=n.length;e\u003Cs;++e)r(n[e],t,l,i)}return t}function b(t,e){return x(t,e,{merger:_})}function _(t,e,i){if(!p(t))return;const s=e[t],n=i[t];o(s)&&o(n)?b(s,n):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=g(n))}const y={\"\":t=>t,x:t=>t.x,y:t=>t.y};function v(t){const e=t.split(\".\"),i=[];let s=\"\";for(const t of e)s+=t,s.endsWith(\"\\\\\")?s=s.slice(0,-1)+\".\":(i.push(s),s=\"\");return i}function M(t,e){const i=y[e]||(y[e]=function(t){const e=v(t);return t=>{for(const i of e){if(\"\"===i)break;t=t&&t[i]}return t}}(e));return i(t)}function w(t){return t.charAt(0).toUpperCase()+t.slice(1)}const k=t=>void 0!==t,S=t=>\"function\"==typeof t,P=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function D(t){return\"mouseup\"===t.type||\"click\"===t.type||\"contextmenu\"===t.type}const C=Math.PI,O=2*C,A=O+C,T=Number.POSITIVE_INFINITY,L=C\u002F180,E=C\u002F2,R=C\u002F4,I=2*C\u002F3,z=Math.log10,F=Math.sign;function V(t,e,i){return Math.abs(t-e)\u003Ci}function B(t){const e=Math.round(t);t=V(t,e,t\u002F1e3)?e:t;const i=Math.pow(10,Math.floor(z(t))),s=t\u002Fi;return(s\u003C=1?1:s\u003C=2?2:s\u003C=5?5:10)*i}function W(t){const e=[],i=Math.sqrt(t);let s;for(s=1;s\u003Ci;s++)t%s==0&&(e.push(s),e.push(t\u002Fs));return i===(0|i)&&e.push(i),e.sort(((t,e)=>t-e)).pop(),e}function N(t){return!function(t){return\"symbol\"==typeof t||\"object\"==typeof t&&null!==t&&!(Symbol.toPrimitive in t||\"toString\"in t||\"valueOf\"in t)}(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function H(t,e){const i=Math.round(t);return i-e\u003C=t&&i+e>=t}function j(t,e,i){let s,n,o;for(s=0,n=t.length;s\u003Cn;s++)o=t[s][i],isNaN(o)||(e.min=Math.min(e.min,o),e.max=Math.max(e.max,o))}function $(t){return t*(C\u002F180)}function Y(t){return t*(180\u002FC)}function U(t){if(!a(t))return;let e=1,i=0;for(;Math.round(t*e)\u002Fe!==t;)e*=10,i++;return i}function X(t,e){const i=e.x-t.x,s=e.y-t.y,n=Math.sqrt(i*i+s*s);let o=Math.atan2(s,i);return o\u003C-.5*C&&(o+=O),{angle:o,distance:n}}function q(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function K(t,e){return(t-e+A)%O-C}function G(t){return(t%O+O)%O}function J(t,e,i,s){const n=G(t),o=G(e),a=G(i),r=G(o-n),l=G(a-n),h=G(n-o),c=G(n-a);return n===o||n===a||s&&o===a||r>l&&h\u003Cc}function Z(t,e,i){return Math.max(e,Math.min(i,t))}function Q(t){return Z(t,-32768,32767)}function tt(t,e,i,s=1e-6){return t>=Math.min(e,i)-s&&t\u003C=Math.max(e,i)+s}function et(t,e,i){i=i||(i=>t[i]\u003Ce);let s,n=t.length-1,o=0;for(;n-o>1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const it=(t,e,i,s)=>et(t,i,s?s=>{const n=t[s][e];return n\u003Ci||n===i&&t[s+1][e]===i}:s=>t[s][e]\u003Ci),st=(t,e,i)=>et(t,i,(s=>t[s][e]>=i));function nt(t,e,i){let s=0,n=t.length;for(;s\u003Cn&&t[s]\u003Ce;)s++;for(;n>s&&t[n-1]>i;)n--;return s>0||n\u003Ct.length?t.slice(s,n):t}const ot=[\"push\",\"pop\",\"shift\",\"splice\",\"unshift\"];function at(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,\"_chartjs\",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),ot.forEach((e=>{const i=\"_onData\"+w(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{\"function\"==typeof t[i]&&t[i](...e)})),n}})})))}function rt(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s.indexOf(e);-1!==n&&s.splice(n,1),s.length>0||(ot.forEach((e=>{delete t[e]})),delete t._chartjs)}function lt(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const ht=\"undefined\"==typeof window?function(t){return t()}:window.requestAnimationFrame;function ct(t,e){let i=[],s=!1;return function(...n){i=n,s||(s=!0,ht.call(window,(()=>{s=!1,t.apply(e,i)})))}}function dt(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}const ut=t=>\"start\"===t?\"left\":\"end\"===t?\"right\":\"center\",ft=(t,e,i)=>\"start\"===t?e:\"end\"===t?i:(e+i)\u002F2,gt=(t,e,i,s)=>t===(s?\"left\":\"right\")?i:\"center\"===t?(e+i)\u002F2:e;function pt(t,e,i){const n=e.length;let o=0,a=n;if(t._sorted){const{iScale:r,vScale:l,_parsed:h}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,d=r.axis,{min:u,max:f,minDefined:g,maxDefined:p}=r.getUserBounds();if(g){if(o=Math.min(it(h,d,u).lo,i?n:it(e,d,r.getPixelForValue(u)).lo),c){const t=h.slice(0,o+1).reverse().findIndex((t=>!s(t[l.axis])));o-=Math.max(0,t)}o=Z(o,0,n-1)}if(p){let t=Math.max(it(h,r.axis,f,!0).hi+1,i?0:it(e,d,r.getPixelForValue(f),!0).hi+1);if(c){const e=h.slice(t-1).findIndex((t=>!s(t[l.axis])));t+=Math.max(0,e)}a=Z(t,o,n)-o}else a=n-o}return{start:o,count:a}}function mt(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}class xt{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=ht.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,\"progress\")),n.length||(i.running=!1,this._notify(s,i,t,\"complete\"),i.initial=!1),e+=n.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),\"complete\")}remove(t){return this._charts.delete(t)}}var bt=new xt;\r\n+\u002F*!\r\n+ * @kurkle\u002Fcolor v0.3.2\r\n+ * https:\u002F\u002Fgithub.com\u002Fkurkle\u002Fcolor#readme\r\n+ * (c) 2023 Jukka Kurkela\r\n+ * Released under the MIT License\r\n+ *\u002Ffunction _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t\u002F2.55)\u002F100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[...\"0123456789ABCDEF\"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?\"#\"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t\u003C255?e(t):\"\")(t.a,e):void 0}const Tt=\u002F^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$\u002F;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t\u002F30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t\u002F60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1\u002F(e+i),e*=n,i*=n),n=0;n\u003C3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r\u002F255,i=t.g\u002F255,s=t.b\u002F255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)\u002F2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h\u002F(2-n-o):h\u002F(n+o),r=function(t,e,i,s,n){return t===n?(e-i)\u002Fs+(e\u003Ci?6:0):e===n?(i-t)\u002Fs+2:(t-e)\u002Fs+4}(e,i,s,h,n),r=60*r+.5),[0|r,l||0,a]}function zt(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s)).map(Mt)}function Ft(t,e,i){return zt(Lt,t,e,i)}function Vt(t){return(t%360+360)%360}function Bt(t){const e=Tt.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=e[6]?vt(+e[5]):Mt(+e[5]));const n=Vt(+e[2]),o=+e[3]\u002F100,a=+e[4]\u002F100;return i=\"hwb\"===e[1]?function(t,e,i){return zt(Rt,t,e,i)}(n,o,a):\"hsv\"===e[1]?function(t,e,i){return zt(Et,t,e,i)}(n,o,a):Ft(n,o,a),{r:i[0],g:i[1],b:i[2],a:s}}const Wt={x:\"dark\",Z:\"light\",Y:\"re\",X:\"blu\",W:\"gr\",V:\"medium\",U:\"slate\",A:\"ee\",T:\"ol\",S:\"or\",B:\"ra\",C:\"lateg\",D:\"ights\",R:\"in\",Q:\"turquois\",E:\"hi\",P:\"ro\",O:\"al\",N:\"le\",M:\"de\",L:\"yello\",F:\"en\",K:\"ch\",G:\"arks\",H:\"ea\",I:\"ightg\",J:\"wh\"},Nt={OiceXe:\"f0f8ff\",antiquewEte:\"faebd7\",aqua:\"ffff\",aquamarRe:\"7fffd4\",azuY:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"0\",blanKedOmond:\"ffebcd\",Xe:\"ff\",XeviTet:\"8a2be2\",bPwn:\"a52a2a\",burlywood:\"deb887\",caMtXe:\"5f9ea0\",KartYuse:\"7fff00\",KocTate:\"d2691e\",cSO:\"ff7f50\",cSnflowerXe:\"6495ed\",cSnsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"ffff\",xXe:\"8b\",xcyan:\"8b8b\",xgTMnPd:\"b8860b\",xWay:\"a9a9a9\",xgYF:\"6400\",xgYy:\"a9a9a9\",xkhaki:\"bdb76b\",xmagFta:\"8b008b\",xTivegYF:\"556b2f\",xSange:\"ff8c00\",xScEd:\"9932cc\",xYd:\"8b0000\",xsOmon:\"e9967a\",xsHgYF:\"8fbc8f\",xUXe:\"483d8b\",xUWay:\"2f4f4f\",xUgYy:\"2f4f4f\",xQe:\"ced1\",xviTet:\"9400d3\",dAppRk:\"ff1493\",dApskyXe:\"bfff\",dimWay:\"696969\",dimgYy:\"696969\",dodgerXe:\"1e90ff\",fiYbrick:\"b22222\",flSOwEte:\"fffaf0\",foYstWAn:\"228b22\",fuKsia:\"ff00ff\",gaRsbSo:\"dcdcdc\",ghostwEte:\"f8f8ff\",gTd:\"ffd700\",gTMnPd:\"daa520\",Way:\"808080\",gYF:\"8000\",gYFLw:\"adff2f\",gYy:\"808080\",honeyMw:\"f0fff0\",hotpRk:\"ff69b4\",RdianYd:\"cd5c5c\",Rdigo:\"4b0082\",ivSy:\"fffff0\",khaki:\"f0e68c\",lavFMr:\"e6e6fa\",lavFMrXsh:\"fff0f5\",lawngYF:\"7cfc00\",NmoncEffon:\"fffacd\",ZXe:\"add8e6\",ZcSO:\"f08080\",Zcyan:\"e0ffff\",ZgTMnPdLw:\"fafad2\",ZWay:\"d3d3d3\",ZgYF:\"90ee90\",ZgYy:\"d3d3d3\",ZpRk:\"ffb6c1\",ZsOmon:\"ffa07a\",ZsHgYF:\"20b2aa\",ZskyXe:\"87cefa\",ZUWay:\"778899\",ZUgYy:\"778899\",ZstAlXe:\"b0c4de\",ZLw:\"ffffe0\",lime:\"ff00\",limegYF:\"32cd32\",lRF:\"faf0e6\",magFta:\"ff00ff\",maPon:\"800000\",VaquamarRe:\"66cdaa\",VXe:\"cd\",VScEd:\"ba55d3\",VpurpN:\"9370db\",VsHgYF:\"3cb371\",VUXe:\"7b68ee\",VsprRggYF:\"fa9a\",VQe:\"48d1cc\",VviTetYd:\"c71585\",midnightXe:\"191970\",mRtcYam:\"f5fffa\",mistyPse:\"ffe4e1\",moccasR:\"ffe4b5\",navajowEte:\"ffdead\",navy:\"80\",Tdlace:\"fdf5e6\",Tive:\"808000\",TivedBb:\"6b8e23\",Sange:\"ffa500\",SangeYd:\"ff4500\",ScEd:\"da70d6\",pOegTMnPd:\"eee8aa\",pOegYF:\"98fb98\",pOeQe:\"afeeee\",pOeviTetYd:\"db7093\",papayawEp:\"ffefd5\",pHKpuff:\"ffdab9\",peru:\"cd853f\",pRk:\"ffc0cb\",plum:\"dda0dd\",powMrXe:\"b0e0e6\",purpN:\"800080\",YbeccapurpN:\"663399\",Yd:\"ff0000\",Psybrown:\"bc8f8f\",PyOXe:\"4169e1\",saddNbPwn:\"8b4513\",sOmon:\"fa8072\",sandybPwn:\"f4a460\",sHgYF:\"2e8b57\",sHshell:\"fff5ee\",siFna:\"a0522d\",silver:\"c0c0c0\",skyXe:\"87ceeb\",UXe:\"6a5acd\",UWay:\"708090\",UgYy:\"708090\",snow:\"fffafa\",sprRggYF:\"ff7f\",stAlXe:\"4682b4\",tan:\"d2b48c\",teO:\"8080\",tEstN:\"d8bfd8\",tomato:\"ff6347\",Qe:\"40e0d0\",viTet:\"ee82ee\",JHt:\"f5deb3\",wEte:\"ffffff\",wEtesmoke:\"f5f5f5\",Lw:\"ffff00\",LwgYF:\"9acd32\"};let Ht;function jt(t){Ht||(Ht=function(){const t={},e=Object.keys(Nt),i=Object.keys(Wt);let s,n,o,a,r;for(s=0;s\u003Ce.length;s++){for(a=r=e[s],n=0;n\u003Ci.length;n++)o=i[n],r=r.replace(o,Wt[o]);o=parseInt(Nt[a],16),t[r]=[o>>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=\u002F^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,\u002F]+([-+.e\\d]+)(%)?)?\\s*\\)$\u002F;const Yt=t=>t\u003C=.0031308?12.92*t:1.055*Math.pow(t,1\u002F2.4)-.055,Ut=t=>t\u003C=.04045?t\u002F12.92:Math.pow((t+.055)\u002F1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=Ft(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function qt(t,e){return t?Object.assign(e||{},t):t}function Kt(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Mt(t[3]))):(e=qt(t,{r:0,g:0,b:0,a:1})).a=Mt(e.a),e}function Gt(t){return\"r\"===t.charAt(0)?function(t){const e=$t.exec(t);let i,s,n,o=255;if(e){if(e[7]!==i){const t=+e[7];o=e[8]?vt(t):yt(255*t,0,255)}return i=+e[1],s=+e[3],n=+e[5],i=255&(e[2]?vt(i):yt(i,0,255)),s=255&(e[4]?vt(s):yt(s,0,255)),n=255&(e[6]?vt(n):yt(n,0,255)),{r:i,g:s,b:n,a:o}}}(t):Bt(t)}class Jt{constructor(t){if(t instanceof Jt)return t;const e=typeof t;let i;var s,n,o;\"object\"===e?i=Kt(t):\"string\"===e&&(o=(s=t).length,\"#\"===s[0]&&(4===o||5===o?n={r:255&17*St[s[1]],g:255&17*St[s[2]],b:255&17*St[s[3]],a:5===o?17*St[s[4]]:255}:7!==o&&9!==o||(n={r:St[s[1]]\u003C\u003C4|St[s[2]],g:St[s[3]]\u003C\u003C4|St[s[4]],b:St[s[5]]\u003C\u003C4|St[s[6]],a:9===o?St[s[7]]\u003C\u003C4|St[s[8]]:255})),i=n||jt(t)||Gt(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=qt(this._rgb);return t&&(t.a=wt(t.a)),t}set rgb(t){this._rgb=Kt(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a\u003C255?`rgba(${t.r}, ${t.g}, ${t.b}, ${wt(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?At(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=It(t),i=e[0],s=kt(e[1]),n=kt(e[2]);return t.a\u003C255?`hsla(${i}, ${s}%, ${n}%, ${wt(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,s=t.rgb;let n;const o=e===n?.5:e,a=2*o-1,r=i.a-s.a,l=((a*r==-1?a:(a+r)\u002F(1+a*r))+1)\u002F2;n=1-l,i.r=255&l*i.r+n*s.r+.5,i.g=255&l*i.g+n*s.g+.5,i.b=255&l*i.b+n*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const s=Ut(wt(t.r)),n=Ut(wt(t.g)),o=Ut(wt(t.b));return{r:Mt(Yt(s+i*(Ut(wt(e.r))-s))),g:Mt(Yt(n+i*(Ut(wt(e.g))-n))),b:Mt(Yt(o+i*(Ut(wt(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new Jt(this.rgb)}alpha(t){return this._rgb.a=Mt(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=_t(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Xt(this._rgb,2,t),this}darken(t){return Xt(this._rgb,2,-t),this}saturate(t){return Xt(this._rgb,1,t),this}desaturate(t){return Xt(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=It(t);i[0]=Vt(i[0]+e),i=Ft(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function Zt(t){if(t&&\"object\"==typeof t){const e=t.toString();return\"[object CanvasPattern]\"===e||\"[object CanvasGradient]\"===e}return!1}function Qt(t){return Zt(t)?t:new Jt(t)}function te(t){return Zt(t)?t:new Jt(t).saturate(.5).darken(.1).hexString()}const ee=[\"x\",\"y\",\"borderWidth\",\"radius\",\"tension\"],ie=[\"color\",\"borderColor\",\"backgroundColor\"];const se=new Map;function ne(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=se.get(i);return s||(s=new Intl.NumberFormat(t,e),se.set(i,s)),s}(e,i).format(t)}const oe={values:t=>n(t)?t:\"\"+t,numeric(t,e,i){if(0===t)return\"0\";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e\u003C1e-4||e>1e15)&&(n=\"scientific\"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=z(Math.abs(o)),r=isNaN(a)?1:Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),ne(t,s,l)},logarithmic(t,e,i){if(0===t)return\"0\";const s=i[e].significand||t\u002FMath.pow(10,Math.floor(z(t)));return[1,2,3,5,10,15].includes(s)||e>.8*i.length?oe.numeric.call(this,t,e,i):\"\"}};var ae={formatters:oe};const re=Object.create(null),le=Object.create(null);function he(t,e){if(!e)return t;const i=e.split(\".\");for(let e=0,s=i.length;e\u003Cs;++e){const s=i[e];t=t[s]||(t[s]=Object.create(null))}return t}function ce(t,e,i){return\"string\"==typeof e?x(he(t,e),i):x(he(t,\"\"),e)}class de{constructor(t,e){this.animation=void 0,this.backgroundColor=\"rgba(0,0,0,0.1)\",this.borderColor=\"rgba(0,0,0,0.1)\",this.color=\"#666\",this.datasets={},this.devicePixelRatio=t=>t.chart.platform.getDevicePixelRatio(),this.elements={},this.events=[\"mousemove\",\"mouseout\",\"click\",\"touchstart\",\"touchmove\"],this.font={family:\"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",size:12,style:\"normal\",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>te(e.backgroundColor),this.hoverBorderColor=(t,e)=>te(e.borderColor),this.hoverColor=(t,e)=>te(e.color),this.indexAxis=\"x\",this.interaction={mode:\"nearest\",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return ce(this,t,e)}get(t){return he(this,t)}describe(t,e){return ce(le,t,e)}override(t,e){return ce(re,t,e)}route(t,e,i,s){const n=he(this,t),a=he(this,i),r=\"_\"+e;Object.defineProperties(n,{[r]:{value:n[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[r],e=a[s];return o(t)?Object.assign({},e,t):l(t,e)},set(t){this[r]=t}}})}apply(t){t.forEach((t=>t(this)))}}var ue=new de({_scriptable:t=>!t.startsWith(\"on\"),_indexable:t=>\"events\"!==t,hover:{_fallback:\"interaction\"},interaction:{_scriptable:!1,_indexable:!1}},[function(t){t.set(\"animation\",{delay:void 0,duration:1e3,easing:\"easeOutQuart\",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe(\"animation\",{_fallback:!1,_indexable:!1,_scriptable:t=>\"onProgress\"!==t&&\"onComplete\"!==t&&\"fn\"!==t}),t.set(\"animations\",{colors:{type:\"color\",properties:ie},numbers:{type:\"number\",properties:ee}}),t.describe(\"animations\",{_fallback:\"animation\"}),t.set(\"transitions\",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:\"transparent\"},visible:{type:\"boolean\",duration:0}}},hide:{animations:{colors:{to:\"transparent\"},visible:{type:\"boolean\",easing:\"linear\",fn:t=>0|t}}}})},function(t){t.set(\"layout\",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(t){t.set(\"scale\",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:\"ticks\",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:\"\",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:\"\",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ae.formatters.values,minor:{},major:{},align:\"center\",crossAlign:\"near\",showLabelBackdrop:!1,backdropColor:\"rgba(255, 255, 255, 0.75)\",backdropPadding:2}}),t.route(\"scale.ticks\",\"color\",\"\",\"color\"),t.route(\"scale.grid\",\"color\",\"\",\"borderColor\"),t.route(\"scale.border\",\"color\",\"\",\"borderColor\"),t.route(\"scale.title\",\"color\",\"\",\"color\"),t.describe(\"scale\",{_fallback:!1,_scriptable:t=>!t.startsWith(\"before\")&&!t.startsWith(\"after\")&&\"callback\"!==t&&\"parser\"!==t,_indexable:t=>\"borderDash\"!==t&&\"tickBorderDash\"!==t&&\"dash\"!==t}),t.describe(\"scales\",{_fallback:\"scale\"}),t.describe(\"scale.ticks\",{_scriptable:t=>\"backdropPadding\"!==t&&\"callback\"!==t,_indexable:t=>\"backdropPadding\"!==t})}]);function fe(){return\"undefined\"!=typeof window&&\"undefined\"!=typeof document}function ge(t){let e=t.parentNode;return e&&\"[object ShadowRoot]\"===e.toString()&&(e=e.host),e}function pe(t,e,i){let s;return\"string\"==typeof t?(s=parseInt(t,10),-1!==t.indexOf(\"%\")&&(s=s\u002F100*e.parentNode[i])):s=t,s}const me=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);function xe(t,e){return me(t).getPropertyValue(e)}const be=[\"top\",\"right\",\"bottom\",\"left\"];function _e(t,e,i){const s={};i=i?\"-\"+i:\"\";for(let n=0;n\u003C4;n++){const o=be[n];s[o]=parseFloat(t[e+\"-\"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}const ye=(t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot);function ve(t,e){if(\"native\"in t)return t;const{canvas:i,currentDevicePixelRatio:s}=e,n=me(i),o=\"border-box\"===n.boxSizing,a=_e(n,\"padding\"),r=_e(n,\"border\",\"width\"),{x:l,y:h,box:c}=function(t,e){const i=t.touches,s=i&&i.length?i[0]:t,{offsetX:n,offsetY:o}=s;let a,r,l=!1;if(ye(n,o,t.target))a=n,r=o;else{const t=e.getBoundingClientRect();a=s.clientX-t.left,r=s.clientY-t.top,l=!0}return{x:a,y:r,box:l}}(t,i),d=a.left+(c&&r.left),u=a.top+(c&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)\u002Ff*i.width\u002Fs),y:Math.round((h-u)\u002Fg*i.height\u002Fs)}}const Me=t=>Math.round(10*t)\u002F10;function we(t,e,i,s){const n=me(t),o=_e(n,\"margin\"),a=pe(n.maxWidth,t,\"clientWidth\")||T,r=pe(n.maxHeight,t,\"clientHeight\")||T,l=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=t&&ge(t);if(o){const t=o.getBoundingClientRect(),a=me(o),r=_e(a,\"border\",\"width\"),l=_e(a,\"padding\");e=t.width-l.width-r.width,i=t.height-l.height-r.height,s=pe(a.maxWidth,o,\"clientWidth\"),n=pe(a.maxHeight,o,\"clientHeight\")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||T,maxHeight:n||T}}(t,e,i);let{width:h,height:c}=l;if(\"content-box\"===n.boxSizing){const t=_e(n,\"border\",\"width\"),e=_e(n,\"padding\");h-=e.width+t.width,c-=e.height+t.height}h=Math.max(0,h-o.width),c=Math.max(0,s?h\u002Fs:c-o.height),h=Me(Math.min(h,a,l.maxWidth)),c=Me(Math.min(c,r,l.maxHeight)),h&&!c&&(c=Me(h\u002F2));return(void 0!==e||void 0!==i)&&s&&l.height&&c>l.height&&(c=l.height,h=Me(Math.floor(c*s))),{width:h,height:c}}function ke(t,e,i){const s=e||1,n=Me(t.height*s),o=Me(t.width*s);t.height=Me(t.height),t.width=Me(t.width);const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const Se=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};fe()&&(window.addEventListener(\"test\",null,e),window.removeEventListener(\"test\",null,e))}catch(t){}return t}();function Pe(t,e){const i=xe(t,e),s=i&&i.match(\u002F^(\\d+)(\\.\\d+)?px$\u002F);return s?+s[1]:void 0}function De(t){return!t||s(t.size)||s(t.family)?null:(t.style?t.style+\" \":\"\")+(t.weight?t.weight+\" \":\"\")+t.size+\"px \"+t.family}function Ce(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function Oe(t,e,i,s){let o=(s=s||{}).data=s.data||{},a=s.garbageCollect=s.garbageCollect||[];s.font!==e&&(o=s.data={},a=s.garbageCollect=[],s.font=e),t.save(),t.font=e;let r=0;const l=i.length;let h,c,d,u,f;for(h=0;h\u003Cl;h++)if(u=i[h],null==u||n(u)){if(n(u))for(c=0,d=u.length;c\u003Cd;c++)f=u[c],null==f||n(f)||(r=Ce(t,o,a,r,f))}else r=Ce(t,o,a,r,u);t.restore();const g=a.length\u002F2;if(g>i.length){for(h=0;h\u003Cg;h++)delete o[a[h]];a.splice(0,g)}return r}function Ae(t,e,i){const s=t.currentDevicePixelRatio,n=0!==i?Math.max(i\u002F2,.5):0;return Math.round((e-n)*s)\u002Fs+n}function Te(t,e){(e||t)&&((e=e||t.getContext(\"2d\")).save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function Le(t,e,i,s){Ee(t,e,i,s,null)}function Ee(t,e,i,s,n){let o,a,r,l,h,c,d,u;const f=e.pointStyle,g=e.rotation,p=e.radius;let m=(g||0)*L;if(f&&\"object\"==typeof f&&(o=f.toString(),\"[object HTMLImageElement]\"===o||\"[object HTMLCanvasElement]\"===o))return t.save(),t.translate(i,s),t.rotate(m),t.drawImage(f,-f.width\u002F2,-f.height\u002F2,f.width,f.height),void t.restore();if(!(isNaN(p)||p\u003C=0)){switch(t.beginPath(),f){default:n?t.ellipse(i,s,n\u002F2,p,0,0,O):t.arc(i,s,p,0,O),t.closePath();break;case\"triangle\":c=n?n\u002F2:p,t.moveTo(i+Math.sin(m)*c,s-Math.cos(m)*p),m+=I,t.lineTo(i+Math.sin(m)*c,s-Math.cos(m)*p),m+=I,t.lineTo(i+Math.sin(m)*c,s-Math.cos(m)*p),t.closePath();break;case\"rectRounded\":h=.516*p,l=p-h,a=Math.cos(m+R)*l,d=Math.cos(m+R)*(n?n\u002F2-h:l),r=Math.sin(m+R)*l,u=Math.sin(m+R)*(n?n\u002F2-h:l),t.arc(i-d,s-r,h,m-C,m-E),t.arc(i+u,s-a,h,m-E,m),t.arc(i+d,s+r,h,m,m+E),t.arc(i-u,s+a,h,m+E,m+C),t.closePath();break;case\"rect\":if(!g){l=Math.SQRT1_2*p,c=n?n\u002F2:l,t.rect(i-c,s-l,2*c,2*l);break}m+=R;case\"rectRot\":d=Math.cos(m)*(n?n\u002F2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n\u002F2:p),t.moveTo(i-d,s-r),t.lineTo(i+u,s-a),t.lineTo(i+d,s+r),t.lineTo(i-u,s+a),t.closePath();break;case\"crossRot\":m+=R;case\"cross\":d=Math.cos(m)*(n?n\u002F2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n\u002F2:p),t.moveTo(i-d,s-r),t.lineTo(i+d,s+r),t.moveTo(i+u,s-a),t.lineTo(i-u,s+a);break;case\"star\":d=Math.cos(m)*(n?n\u002F2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n\u002F2:p),t.moveTo(i-d,s-r),t.lineTo(i+d,s+r),t.moveTo(i+u,s-a),t.lineTo(i-u,s+a),m+=R,d=Math.cos(m)*(n?n\u002F2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n\u002F2:p),t.moveTo(i-d,s-r),t.lineTo(i+d,s+r),t.moveTo(i+u,s-a),t.lineTo(i-u,s+a);break;case\"line\":a=n?n\u002F2:Math.cos(m)*p,r=Math.sin(m)*p,t.moveTo(i-a,s-r),t.lineTo(i+a,s+r);break;case\"dash\":t.moveTo(i,s),t.lineTo(i+Math.cos(m)*(n?n\u002F2:p),s+Math.sin(m)*p);break;case!1:t.closePath()}t.fill(),e.borderWidth>0&&t.stroke()}}function Re(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.x\u003Ce.right+i&&t.y>e.top-i&&t.y\u003Ce.bottom+i}function Ie(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()}function ze(t){t.restore()}function Fe(t,e,i,s,n){if(!e)return t.lineTo(i.x,i.y);if(\"middle\"===n){const s=(e.x+i.x)\u002F2;t.lineTo(s,e.y),t.lineTo(s,i.y)}else\"after\"===n!=!!s?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}function Ve(t,e,i,s){if(!e)return t.lineTo(i.x,i.y);t.bezierCurveTo(s?e.cp1x:e.cp2x,s?e.cp1y:e.cp2y,s?i.cp2x:i.cp1x,s?i.cp2y:i.cp1y,i.x,i.y)}function Be(t,e,i,s,n){if(n.strikethrough||n.underline){const o=t.measureText(s),a=e-o.actualBoundingBoxLeft,r=e+o.actualBoundingBoxRight,l=i-o.actualBoundingBoxAscent,h=i+o.actualBoundingBoxDescent,c=n.strikethrough?(l+h)\u002F2:h;t.strokeStyle=t.fillStyle,t.beginPath(),t.lineWidth=n.decorationWidth||2,t.moveTo(a,c),t.lineTo(r,c),t.stroke()}}function We(t,e){const i=t.fillStyle;t.fillStyle=e.color,t.fillRect(e.left,e.top,e.width,e.height),t.fillStyle=i}function Ne(t,e,i,o,a,r={}){const l=n(e)?e:[e],h=r.strokeWidth>0&&\"\"!==r.strokeColor;let c,d;for(t.save(),t.font=a.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]),s(e.rotation)||t.rotate(e.rotation),e.color&&(t.fillStyle=e.color),e.textAlign&&(t.textAlign=e.textAlign),e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,r),c=0;c\u003Cl.length;++c)d=l[c],r.backdrop&&We(t,r.backdrop),h&&(r.strokeColor&&(t.strokeStyle=r.strokeColor),s(r.strokeWidth)||(t.lineWidth=r.strokeWidth),t.strokeText(d,i,o,r.maxWidth)),t.fillText(d,i,o,r.maxWidth),Be(t,i,o,d,r),o+=Number(a.lineHeight);t.restore()}function He(t,e){const{x:i,y:s,w:n,h:o,radius:a}=e;t.arc(i+a.topLeft,s+a.topLeft,a.topLeft,1.5*C,C,!0),t.lineTo(i,s+o-a.bottomLeft),t.arc(i+a.bottomLeft,s+o-a.bottomLeft,a.bottomLeft,C,E,!0),t.lineTo(i+n-a.bottomRight,s+o),t.arc(i+n-a.bottomRight,s+o-a.bottomRight,a.bottomRight,E,0,!0),t.lineTo(i+n,s+a.topRight),t.arc(i+n-a.topRight,s+a.topRight,a.topRight,0,-E,!0),t.lineTo(i+a.topLeft,s)}function je(t,e=[\"\"],i,s,n=(()=>t[0])){const o=i||t;void 0===s&&(s=ti(\"_fallback\",t));const a={[Symbol.toStringTag]:\"Object\",_cacheable:!0,_scopes:t,_rootScopes:o,_fallback:s,_getTarget:n,override:i=>je([i,...t],e,o,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete e._keys,delete t[0][i],!0),get:(i,s)=>qe(i,s,(()=>function(t,e,i,s){let n;for(const o of e)if(n=ti(Ue(o,t),i),void 0!==n)return Xe(t,n)?Ze(i,s,t,n):n}(s,e,t,i))),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>ei(t).includes(e),ownKeys:t=>ei(t),set(t,e,i){const s=t._storage||(t._storage=n());return t[e]=s[e]=i,delete t._keys,!0}})}function $e(t,e,i,s){const a={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:Ye(t,s),setContext:e=>$e(t,e,i,s),override:n=>$e(t.override(n),e,i,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete t[i],!0),get:(t,e,i)=>qe(t,e,(()=>function(t,e,i){const{_proxy:s,_context:a,_subProxy:r,_descriptors:l}=t;let h=s[e];S(h)&&l.isScriptable(e)&&(h=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=i;if(r.has(t))throw new Error(\"Recursion detected: \"+Array.from(r).join(\"->\")+\"->\"+t);r.add(t);let l=e(o,a||s);r.delete(t),Xe(t,l)&&(l=Ze(n._scopes,n,t,l));return l}(e,h,t,i));n(h)&&h.length&&(h=function(t,e,i,s){const{_proxy:n,_context:a,_subProxy:r,_descriptors:l}=i;if(void 0!==a.index&&s(t))return e[a.index%e.length];if(o(e[0])){const i=e,s=n._scopes.filter((t=>t!==i));e=[];for(const o of i){const i=Ze(s,n,t,o);e.push($e(i,a,r&&r[t],l))}}return e}(e,h,t,l.isIndexable));Xe(e,h)&&(h=$e(h,a,r&&r[e],l));return h}(t,e,i))),getOwnPropertyDescriptor:(e,i)=>e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,i)=>Reflect.has(t,i),ownKeys:()=>Reflect.ownKeys(t),set:(e,i,s)=>(t[i]=s,delete e[i],!0)})}function Ye(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:s=e.indexable,_allKeys:n=e.allKeys}=t;return{allKeys:n,scriptable:i,indexable:s,isScriptable:S(i)?i:()=>i,isIndexable:S(s)?s:()=>s}}const Ue=(t,e)=>t?t+w(e):e,Xe=(t,e)=>o(e)&&\"adapters\"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function qe(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e)||\"constructor\"===e)return t[e];const s=i();return t[e]=s,s}function Ke(t,e,i){return S(t)?t(e,i):t}const Ge=(t,e)=>!0===t?e:\"string\"==typeof t?M(e,t):void 0;function Je(t,e,i,s,n){for(const o of e){const e=Ge(i,o);if(e){t.add(e);const o=Ke(e._fallback,i,n);if(void 0!==o&&o!==i&&o!==s)return o}else if(!1===e&&void 0!==s&&i!==s)return null}return!1}function Ze(t,e,i,s){const a=e._rootScopes,r=Ke(e._fallback,i,s),l=[...t,...a],h=new Set;h.add(s);let c=Qe(h,l,i,r||i,s);return null!==c&&((void 0===r||r===i||(c=Qe(h,l,r,c,s),null!==c))&&je(Array.from(h),[\"\"],a,r,(()=>function(t,e,i){const s=t._getTarget();e in s||(s[e]={});const a=s[e];if(n(a)&&o(i))return i;return a||{}}(e,i,s))))}function Qe(t,e,i,s,n){for(;i;)i=Je(t,e,i,s,n);return i}function ti(t,e){for(const i of e){if(!i)continue;const e=i[t];if(void 0!==e)return e}}function ei(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith(\"_\"))))e.add(t);return Array.from(e)}(t._scopes)),e}function ii(t,e,i,s){const{iScale:n}=t,{key:o=\"r\"}=this._parsing,a=new Array(s);let r,l,h,c;for(r=0,l=s;r\u003Cl;++r)h=r+i,c=e[h],a[r]={r:n.parse(M(c,o),h)};return a}const si=Number.EPSILON||1e-14,ni=(t,e)=>e\u003Ct.length&&!t[e].skip&&t[e],oi=t=>\"x\"===t?\"y\":\"x\";function ai(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=q(o,n),l=q(a,o);let h=r\u002F(r+l),c=l\u002F(r+l);h=isNaN(h)?0:h,c=isNaN(c)?0:c;const d=s*h,u=s*c;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function ri(t,e=\"x\"){const i=oi(e),s=t.length,n=Array(s).fill(0),o=Array(s);let a,r,l,h=ni(t,0);for(a=0;a\u003Cs;++a)if(r=l,l=h,h=ni(t,a+1),l){if(h){const t=h[e]-l[e];n[a]=0!==t?(h[i]-l[i])\u002Ft:0}o[a]=r?h?F(n[a-1])!==F(n[a])?0:(n[a-1]+n[a])\u002F2:n[a-1]:n[a]}!function(t,e,i){const s=t.length;let n,o,a,r,l,h=ni(t,0);for(let c=0;c\u003Cs-1;++c)l=h,h=ni(t,c+1),l&&h&&(V(e[c],0,si)?i[c]=i[c+1]=0:(n=i[c]\u002Fe[c],o=i[c+1]\u002Fe[c],r=Math.pow(n,2)+Math.pow(o,2),r\u003C=9||(a=3\u002FMath.sqrt(r),i[c]=n*a*e[c],i[c+1]=o*a*e[c])))}(t,n,o),function(t,e,i=\"x\"){const s=oi(i),n=t.length;let o,a,r,l=ni(t,0);for(let h=0;h\u003Cn;++h){if(a=r,r=l,l=ni(t,h+1),!r)continue;const n=r[i],c=r[s];a&&(o=(n-a[i])\u002F3,r[`cp1${i}`]=n-o,r[`cp1${s}`]=c-o*e[h]),l&&(o=(l[i]-n)\u002F3,r[`cp2${i}`]=n+o,r[`cp2${s}`]=c+o*e[h])}}(t,o,e)}function li(t,e,i){return Math.max(Math.min(t,i),e)}function hi(t,e,i,s,n){let o,a,r,l;if(e.spanGaps&&(t=t.filter((t=>!t.skip))),\"monotone\"===e.cubicInterpolationMode)ri(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;o\u003Ca;++o)r=t[o],l=ai(i,r,t[Math.min(o+1,a-(s?0:1))%a],e.tension),r.cp1x=l.previous.x,r.cp1y=l.previous.y,r.cp2x=l.next.x,r.cp2y=l.next.y,i=r}e.capBezierPoints&&function(t,e){let i,s,n,o,a,r=Re(t[0],e);for(i=0,s=t.length;i\u003Cs;++i)a=o,o=r,r=i\u003Cs-1&&Re(t[i+1],e),o&&(n=t[i],a&&(n.cp1x=li(n.cp1x,e.left,e.right),n.cp1y=li(n.cp1y,e.top,e.bottom)),r&&(n.cp2x=li(n.cp2x,e.left,e.right),n.cp2y=li(n.cp2y,e.top,e.bottom)))}(t,i)}const ci=t=>0===t||1===t,di=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*O\u002Fi),ui=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*O\u002Fi)+1,fi={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t\u002F=.5)\u003C1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t\u002F=.5)\u003C1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t\u002F=.5)\u003C1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t\u002F=.5)\u003C1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*E),easeOutSine:t=>Math.sin(t*E),easeInOutSine:t=>-.5*(Math.cos(C*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>ci(t)?t:t\u003C.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t\u002F=.5)\u003C1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>ci(t)?t:di(t,.075,.3),easeOutElastic:t=>ci(t)?t:ui(t,.075,.3),easeInOutElastic(t){const e=.1125;return ci(t)?t:t\u003C.5?.5*di(2*t,e,.45):.5+.5*ui(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t\u002F=.5)\u003C1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-fi.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t\u003C1\u002Fi?e*t*t:t\u003C2\u002Fi?e*(t-=1.5\u002Fi)*t+.75:t\u003C2.5\u002Fi?e*(t-=2.25\u002Fi)*t+.9375:e*(t-=2.625\u002Fi)*t+.984375},easeInOutBounce:t=>t\u003C.5?.5*fi.easeInBounce(2*t):.5*fi.easeOutBounce(2*t-1)+.5};function gi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function pi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:\"middle\"===s?i\u003C.5?t.y:e.y:\"after\"===s?i\u003C1?t.y:e.y:i>0?e.y:t.y}}function mi(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=gi(t,n,i),r=gi(n,o,i),l=gi(o,e,i),h=gi(a,r,i),c=gi(r,l,i);return gi(h,c,i)}const xi=\u002F^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$\u002F,bi=\u002F^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$\u002F;function _i(t,e){const i=(\"\"+t).match(xi);if(!i||\"normal\"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case\"px\":return t;case\"%\":t\u002F=100}return e*t}const yi=t=>+t||0;function vi(t,e){const i={},s=o(e),n=s?Object.keys(e):e,a=o(t)?s?i=>l(t[i],t[e[i]]):e=>t[e]:()=>t;for(const t of n)i[t]=yi(a(t));return i}function Mi(t){return vi(t,{top:\"y\",right:\"x\",bottom:\"y\",left:\"x\"})}function wi(t){return vi(t,[\"topLeft\",\"topRight\",\"bottomLeft\",\"bottomRight\"])}function ki(t){const e=Mi(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function Si(t,e){t=t||{},e=e||ue.font;let i=l(t.size,e.size);\"string\"==typeof i&&(i=parseInt(i,10));let s=l(t.style,e.style);s&&!(\"\"+s).match(bi)&&(console.warn('Invalid font style specified: \"'+s+'\"'),s=void 0);const n={family:l(t.family,e.family),lineHeight:_i(l(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:l(t.weight,e.weight),string:\"\"};return n.string=De(n),n}function Pi(t,e,i,s){let o,a,r,l=!0;for(o=0,a=t.length;o\u003Ca;++o)if(r=t[o],void 0!==r&&(void 0!==e&&\"function\"==typeof r&&(r=r(e),l=!1),void 0!==i&&n(r)&&(r=r[i%r.length],l=!1),void 0!==r))return s&&!l&&(s.cacheable=!1),r}function Di(t,e,i){const{min:s,max:n}=t,o=c(e,(n-s)\u002F2),a=(t,e)=>i&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function Ci(t,e){return Object.assign(Object.create(t),e)}function Oi(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>\"center\"===t?t:\"right\"===t?\"left\":\"right\",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,i):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function Ai(t,e){let i,s;\"ltr\"!==e&&\"rtl\"!==e||(i=t.canvas.style,s=[i.getPropertyValue(\"direction\"),i.getPropertyPriority(\"direction\")],i.setProperty(\"direction\",e,\"important\"),t.prevTextDirection=s)}function Ti(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty(\"direction\",e[0],e[1]))}function Li(t){return\"angle\"===t?{between:J,compare:K,normalize:G}:{between:tt,compare:(t,e)=>t-e,normalize:t=>t}}function Ei({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i==0,style:n}}function Ri(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:l,normalize:h}=Li(s),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=Li(s),l=e.length;let h,c,{start:d,end:u,loop:f}=t;if(f){for(d+=l,u+=l,h=0,c=l;h\u003Cc&&a(r(e[d%l][s]),n,o);++h)d--,u--;d%=l,u%=l}return u\u003Cd&&(u+=l),{start:d,end:u,loop:f,style:t.style}}(t,e,i),g=[];let p,m,x,b=!1,_=null;const y=()=>b||l(n,x,p)&&0!==r(n,x),v=()=>!b||0===r(o,p)||l(o,x,p);for(let t=c,i=c;t\u003C=d;++t)m=e[t%a],m.skip||(p=h(m[s]),p!==x&&(b=l(p,n,o),null===_&&y()&&(_=0===r(p,n)?t:i),null!==_&&v()&&(g.push(Ei({start:_,end:t,loop:u,count:a,style:f})),_=null),i=t,x=p));return null!==_&&g.push(Ei({start:_,end:d,loop:u,count:a,style:f})),g}function Ii(t,e){const i=[],s=t.segments;for(let n=0;n\u003Cs.length;n++){const o=Ri(s[n],t.points,e);o.length&&i.push(...o)}return i}function zi(t,e){const i=t.points,s=t.options.spanGaps,n=i.length;if(!n)return[];const o=!!t._loop,{start:a,end:r}=function(t,e,i,s){let n=0,o=e-1;if(i&&!s)for(;n\u003Ce&&!t[n].skip;)n++;for(;n\u003Ce&&t[n].skip;)n++;for(n%=e,i&&(o+=n);o>n&&t[o%e].skip;)o--;return o%=e,{start:n,end:o}}(i,n,o,s);if(!0===s)return Fi(t,[{start:a,end:r,loop:o}],i,e);return Fi(t,function(t,e,i,s){const n=t.length,o=[];let a,r=e,l=t[e];for(a=e+1;a\u003C=i;++a){const i=t[a%n];i.skip||i.stop?l.skip||(s=!1,o.push({start:e%n,end:(a-1)%n,loop:s}),e=r=i.stop?a:null):(r=a,l.skip&&(e=a)),l=i}return null!==r&&o.push({start:e%n,end:r%n,loop:s}),o}(i,a,r\u003Ca?r+n:r,!!t._fullLoop&&0===a&&r===n-1),i,e)}function Fi(t,e,i,s){return s&&s.setContext&&i?function(t,e,i,s){const n=t._chart.getContext(),o=Vi(t.options),{_datasetIndex:a,options:{spanGaps:r}}=t,l=i.length,h=[];let c=o,d=e[0].start,u=d;function f(t,e,s,n){const o=r?-1:1;if(t!==e){for(t+=l;i[t%l].skip;)t-=o;for(;i[e%l].skip;)e+=o;t%l!=e%l&&(h.push({start:t%l,end:e%l,loop:s,style:n}),c=n,d=e%l)}}for(const t of e){d=r?d:t.start;let e,o=i[d%l];for(u=d+1;u\u003C=t.end;u++){const r=i[u%l];e=Vi(s.setContext(Ci(n,{type:\"segment\",p0:o,p1:r,p0DataIndex:(u-1)%l,p1DataIndex:u%l,datasetIndex:a}))),Bi(e,c)&&f(d,u-1,t.loop,c),o=r,c=e}d\u003Cu-1&&f(d,u-1,t.loop,c)}return h}(t,e,i,s):e}function Vi(t){return{backgroundColor:t.backgroundColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,borderWidth:t.borderWidth,borderColor:t.borderColor}}function Bi(t,e){if(!e)return!1;const i=[],s=function(t,e){return Zt(e)?(i.includes(e)||i.push(e),i.indexOf(e)):e};return JSON.stringify(t,s)!==JSON.stringify(e,s)}function Wi(t,e,i){return t.options.clip?t[i]:e[i]}function Ni(t,e){const i=e._clip;if(i.disabled)return!1;const s=function(t,e){const{xScale:i,yScale:s}=t;return i&&s?{left:Wi(i,e,\"left\"),right:Wi(i,e,\"right\"),top:Wi(s,e,\"top\"),bottom:Wi(s,e,\"bottom\")}:e}(e,t.chartArea);return{left:!1===i.left?0:s.left-(!0===i.left?0:i.left),right:!1===i.right?t.width:s.right+(!0===i.right?0:i.right),top:!1===i.top?0:s.top-(!0===i.top?0:i.top),bottom:!1===i.bottom?t.height:s.bottom+(!0===i.bottom?0:i.bottom)}}var Hi=Object.freeze({__proto__:null,HALF_PI:E,INFINITY:T,PI:C,PITAU:A,QUARTER_PI:R,RAD_PER_DEG:L,TAU:O,TWO_THIRDS_PI:I,_addGrace:Di,_alignPixel:Ae,_alignStartEnd:ft,_angleBetween:J,_angleDiff:K,_arrayUnique:lt,_attachContext:$e,_bezierCurveTo:Ve,_bezierInterpolation:mi,_boundSegment:Ri,_boundSegments:Ii,_capitalize:w,_computeSegments:zi,_createResolver:je,_decimalPlaces:U,_deprecated:function(t,e,i,s){void 0!==e&&console.warn(t+': \"'+i+'\" is deprecated. Please use \"'+s+'\" instead')},_descriptors:Ye,_elementsEqual:f,_factorize:W,_filterBetween:nt,_getParentNode:ge,_getStartAndCountOfVisiblePoints:pt,_int16Range:Q,_isBetween:tt,_isClickEvent:D,_isDomSupported:fe,_isPointInArea:Re,_limitValue:Z,_longestText:Oe,_lookup:et,_lookupByKey:it,_measureText:Ce,_merger:m,_mergerIf:_,_normalizeAngle:G,_parseObjectDataRadialScale:ii,_pointInLine:gi,_readValueToProps:vi,_rlookupByKey:st,_scaleRangesChanged:mt,_setMinAndMaxByKey:j,_splitKey:v,_steppedInterpolation:pi,_steppedLineTo:Fe,_textX:gt,_toLeftRightCenter:ut,_updateBezierControlPoints:hi,addRoundedRectPath:He,almostEquals:V,almostWhole:H,callback:d,clearCanvas:Te,clipArea:Ie,clone:g,color:Qt,createContext:Ci,debounce:dt,defined:k,distanceBetweenPoints:q,drawPoint:Le,drawPointLegend:Ee,each:u,easingEffects:fi,finiteOrDefault:r,fontString:function(t,e,i){return e+\" \"+t+\"px \"+i},formatNumber:ne,getAngleFromPoint:X,getDatasetClipArea:Ni,getHoverColor:te,getMaximumSize:we,getRelativePosition:ve,getRtlAdapter:Oi,getStyle:xe,isArray:n,isFinite:a,isFunction:S,isNullOrUndef:s,isNumber:N,isObject:o,isPatternOrGradient:Zt,listenArrayEvents:at,log10:z,merge:x,mergeIf:b,niceNum:B,noop:e,overrideTextDirection:Ai,readUsedSize:Pe,renderText:Ne,requestAnimFrame:ht,resolve:Pi,resolveObjectKey:M,restoreTextDirection:Ti,retinaScale:ke,setsEqual:P,sign:F,splineCurve:ai,splineCurveMonotone:ri,supportsEventListenerOptions:Se,throttled:ct,toDegrees:Y,toDimension:c,toFont:Si,toFontString:De,toLineHeight:_i,toPadding:ki,toPercentage:h,toRadians:$,toTRBL:Mi,toTRBLCorners:wi,uid:i,unclipArea:ze,unlistenArrayEvents:rt,valueOrDefault:l});function ji(t,e,i,n){const{controller:o,data:a,_sorted:r}=t,l=o._cachedMeta.iScale,h=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(l&&e===l.axis&&\"r\"!==e&&r&&a.length){const r=l._reversePixels?st:it;if(!n){const n=r(a,e,i);if(h){const{vScale:e}=o._cachedMeta,{_parsed:i}=t,a=i.slice(0,n.lo+1).reverse().findIndex((t=>!s(t[e.axis])));n.lo-=Math.max(0,a);const r=i.slice(n.hi).findIndex((t=>!s(t[e.axis])));n.hi+=Math.max(0,r)}return n}if(o._sharedOptions){const t=a[0],s=\"function\"==typeof t.getRange&&t.getRange(e);if(s){const t=r(a,e,i-s),n=r(a,e,i+s);return{lo:t.lo,hi:n.hi}}}}return{lo:0,hi:a.length-1}}function $i(t,e,i,s,n){const o=t.getSortedVisibleDatasetMetas(),a=i[e];for(let t=0,i=o.length;t\u003Ci;++t){const{index:i,data:r}=o[t],{lo:l,hi:h}=ji(o[t],e,a,n);for(let t=l;t\u003C=h;++t){const e=r[t];e.skip||s(e,i,t)}}}function Yi(t,e,i,s,n){const o=[];if(!n&&!t.isPointInArea(e))return o;return $i(t,i,e,(function(i,a,r){(n||Re(i,t.chartArea,0))&&i.inRange(e.x,e.y,s)&&o.push({element:i,datasetIndex:a,index:r})}),!0),o}function Ui(t,e,i,s,n,o){let a=[];const r=function(t){const e=-1!==t.indexOf(\"x\"),i=-1!==t.indexOf(\"y\");return function(t,s){const n=e?Math.abs(t.x-s.x):0,o=i?Math.abs(t.y-s.y):0;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))}}(i);let l=Number.POSITIVE_INFINITY;return $i(t,i,e,(function(i,h,c){const d=i.inRange(e.x,e.y,n);if(s&&!d)return;const u=i.getCenterPoint(n);if(!(!!o||t.isPointInArea(u))&&!d)return;const f=r(e,u);f\u003Cl?(a=[{element:i,datasetIndex:h,index:c}],l=f):f===l&&a.push({element:i,datasetIndex:h,index:c})})),a}function Xi(t,e,i,s,n,o){return o||t.isPointInArea(e)?\"r\"!==i||s?Ui(t,e,i,s,n,o):function(t,e,i,s){let n=[];return $i(t,i,e,(function(t,i,o){const{startAngle:a,endAngle:r}=t.getProps([\"startAngle\",\"endAngle\"],s),{angle:l}=X(t,{x:e.x,y:e.y});J(l,a,r)&&n.push({element:t,datasetIndex:i,index:o})})),n}(t,e,i,n):[]}function qi(t,e,i,s,n){const o=[],a=\"x\"===i?\"inXRange\":\"inYRange\";let r=!1;return $i(t,i,e,((t,s,l)=>{t[a]&&t[a](e[i],n)&&(o.push({element:t,datasetIndex:s,index:l}),r=r||t.inRange(e.x,e.y,n))})),s&&!r?[]:o}var Ki={evaluateInteractionItems:$i,modes:{index(t,e,i,s){const n=ve(e,t),o=i.axis||\"x\",a=i.includeInvisible||!1,r=i.intersect?Yi(t,n,o,s,a):Xi(t,n,o,!1,s,a),l=[];return r.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=r[0].index,i=t.data[e];i&&!i.skip&&l.push({element:i,datasetIndex:t.index,index:e})})),l):[]},dataset(t,e,i,s){const n=ve(e,t),o=i.axis||\"xy\",a=i.includeInvisible||!1;let r=i.intersect?Yi(t,n,o,s,a):Xi(t,n,o,!1,s,a);if(r.length>0){const e=r[0].datasetIndex,i=t.getDatasetMeta(e).data;r=[];for(let t=0;t\u003Ci.length;++t)r.push({element:i[t],datasetIndex:e,index:t})}return r},point:(t,e,i,s)=>Yi(t,ve(e,t),i.axis||\"xy\",s,i.includeInvisible||!1),nearest(t,e,i,s){const n=ve(e,t),o=i.axis||\"xy\",a=i.includeInvisible||!1;return Xi(t,n,o,i.intersect,s,a)},x:(t,e,i,s)=>qi(t,ve(e,t),\"x\",i.intersect,s),y:(t,e,i,s)=>qi(t,ve(e,t),\"y\",i.intersect,s)}};const Gi=[\"left\",\"top\",\"right\",\"bottom\"];function Ji(t,e){return t.filter((t=>t.pos===e))}function Zi(t,e){return t.filter((t=>-1===Gi.indexOf(t.pos)&&t.box.axis===e))}function Qi(t,e){return t.sort(((t,i)=>{const s=e?i:t,n=e?t:i;return s.weight===n.weight?s.index-n.index:s.weight-n.weight}))}function ts(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:s,stackWeight:n}=i;if(!t||!Gi.includes(s))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=n}return e}(t),{vBoxMaxWidth:s,hBoxMaxHeight:n}=e;let o,a,r;for(o=0,a=t.length;o\u003Ca;++o){r=t[o];const{fullSize:a}=r.box,l=i[r.stack],h=l&&r.stackWeight\u002Fl.weight;r.horizontal?(r.width=h?h*s:a&&e.availableWidth,r.height=n):(r.width=s,r.height=h?h*n:a&&e.availableHeight)}return i}function es(t,e,i,s){return Math.max(t[i],e[i])+Math.max(t[s],e[s])}function is(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function ss(t,e,i,s){const{pos:n,box:a}=i,r=t.maxPadding;if(!o(n)){i.size&&(t[n]-=i.size);const e=s[i.stack]||{size:0,count:1};e.size=Math.max(e.size,i.horizontal?a.height:a.width),i.size=e.size\u002Fe.count,t[n]+=i.size}a.getPadding&&is(r,a.getPadding());const l=Math.max(0,e.outerWidth-es(r,t,\"left\",\"right\")),h=Math.max(0,e.outerHeight-es(r,t,\"top\",\"bottom\")),c=l!==t.w,d=h!==t.h;return t.w=l,t.h=h,i.horizontal?{same:c,other:d}:{same:d,other:c}}function ns(t,e){const i=e.maxPadding;function s(t){const s={left:0,top:0,right:0,bottom:0};return t.forEach((t=>{s[t]=Math.max(e[t],i[t])})),s}return s(t?[\"left\",\"right\"]:[\"top\",\"bottom\"])}function os(t,e,i,s){const n=[];let o,a,r,l,h,c;for(o=0,a=t.length,h=0;o\u003Ca;++o){r=t[o],l=r.box,l.update(r.width||e.w,r.height||e.h,ns(r.horizontal,e));const{same:a,other:d}=ss(e,i,r,s);h|=a&&n.length,c=c||d,l.fullSize||n.push(r)}return h&&os(n,e,i,s)||c}function as(t,e,i,s,n){t.top=i,t.left=e,t.right=e+s,t.bottom=i+n,t.width=s,t.height=n}function rs(t,e,i,s){const n=i.padding;let{x:o,y:a}=e;for(const r of t){const t=r.box,l=s[r.stack]||{count:1,placed:0,weight:1},h=r.stackWeight\u002Fl.weight||1;if(r.horizontal){const s=e.w*h,o=l.size||t.height;k(l.start)&&(a=l.start),t.fullSize?as(t,n.left,a,i.outerWidth-n.right-n.left,o):as(t,e.left+l.placed,a,s,o),l.start=a,l.placed+=s,a=t.bottom}else{const s=e.h*h,a=l.size||t.width;k(l.start)&&(o=l.start),t.fullSize?as(t,o,n.top,a,i.outerHeight-n.bottom-n.top):as(t,o,e.top+l.placed,a,s),l.start=o,l.placed+=s,o=t.right}}e.x=o,e.y=a}var ls={addBox(t,e){t.boxes||(t.boxes=[]),e.fullSize=e.fullSize||!1,e.position=e.position||\"top\",e.weight=e.weight||0,e._layers=e._layers||function(){return[{z:0,draw(t){e.draw(t)}}]},t.boxes.push(e)},removeBox(t,e){const i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure(t,e,i){e.fullSize=i.fullSize,e.position=i.position,e.weight=i.weight},update(t,e,i,s){if(!t)return;const n=ki(t.options.layout.padding),o=Math.max(e-n.width,0),a=Math.max(i-n.height,0),r=function(t){const e=function(t){const e=[];let i,s,n,o,a,r;for(i=0,s=(t||[]).length;i\u003Cs;++i)n=t[i],({position:o,options:{stack:a,stackWeight:r=1}}=n),e.push({index:i,box:n,pos:o,horizontal:n.isHorizontal(),weight:n.weight,stack:a&&o+a,stackWeight:r});return e}(t),i=Qi(e.filter((t=>t.box.fullSize)),!0),s=Qi(Ji(e,\"left\"),!0),n=Qi(Ji(e,\"right\")),o=Qi(Ji(e,\"top\"),!0),a=Qi(Ji(e,\"bottom\")),r=Zi(e,\"x\"),l=Zi(e,\"y\");return{fullSize:i,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Ji(e,\"chartArea\"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}(t.boxes),l=r.vertical,h=r.horizontal;u(t.boxes,(t=>{\"function\"==typeof t.beforeLayout&&t.beforeLayout()}));const c=l.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,d=Object.freeze({outerWidth:e,outerHeight:i,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o\u002F2\u002Fc,hBoxMaxHeight:a\u002F2}),f=Object.assign({},n);is(f,ki(s));const g=Object.assign({maxPadding:f,w:o,h:a,x:n.left,y:n.top},n),p=ts(l.concat(h),d);os(r.fullSize,g,d,p),os(l,g,d,p),os(h,g,d,p)&&os(l,g,d,p),function(t){const e=t.maxPadding;function i(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=i(\"top\"),t.x+=i(\"left\"),i(\"right\"),i(\"bottom\")}(g),rs(r.leftAndTop,g,d,p),g.x+=g.w,g.y+=g.h,rs(r.rightAndBottom,g,d,p),t.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},u(r.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})}))}};class hs{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e\u002Fs):i)}}isAttached(t){return!0}updateConfig(t){}}class cs extends hs{acquireContext(t){return t&&t.getContext&&t.getContext(\"2d\")||null}updateConfig(t){t.options.animation=!1}}const ds=\"$chartjs\",us={touchstart:\"mousedown\",touchmove:\"mousemove\",touchend:\"mouseup\",pointerenter:\"mouseenter\",pointerdown:\"mousedown\",pointermove:\"mousemove\",pointerup:\"mouseup\",pointerleave:\"mouseout\",pointerout:\"mouseout\"},fs=t=>null===t||\"\"===t;const gs=!!Se&&{passive:!0};function ps(t,e,i){t&&t.canvas&&t.canvas.removeEventListener(e,i,gs)}function ms(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function xs(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ms(i.addedNodes,s),e=e&&!ms(i.removedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}function bs(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ms(i.removedNodes,s),e=e&&!ms(i.addedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}const _s=new Map;let ys=0;function vs(){const t=window.devicePixelRatio;t!==ys&&(ys=t,_s.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function Ms(t,e,i){const s=t.canvas,n=s&&ge(s);if(!n)return;const o=ct(((t,e)=>{const s=n.clientWidth;i(t,e),s\u003Cn.clientWidth&&i()}),window),a=new ResizeObserver((t=>{const e=t[0],i=e.contentRect.width,s=e.contentRect.height;0===i&&0===s||o(i,s)}));return a.observe(n),function(t,e){_s.size||window.addEventListener(\"resize\",vs),_s.set(t,e)}(t,o),a}function ws(t,e,i){i&&i.disconnect(),\"resize\"===e&&function(t){_s.delete(t),_s.size||window.removeEventListener(\"resize\",vs)}(t)}function ks(t,e,i){const s=t.canvas,n=ct((e=>{null!==t.ctx&&i(function(t,e){const i=us[t.type]||t.type,{x:s,y:n}=ve(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==n?n:null}}(e,t))}),t);return function(t,e,i){t&&t.addEventListener(e,i,gs)}(s,e,n),n}class Ss extends hs{acquireContext(t,e){const i=t&&t.getContext&&t.getContext(\"2d\");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute(\"height\"),n=t.getAttribute(\"width\");if(t[ds]={initial:{height:s,width:n,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||\"block\",i.boxSizing=i.boxSizing||\"border-box\",fs(n)){const e=Pe(t,\"width\");void 0!==e&&(t.width=e)}if(fs(s))if(\"\"===t.style.height)t.height=t.width\u002F(e||2);else{const e=Pe(t,\"height\");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e[ds])return!1;const i=e[ds].initial;[\"height\",\"width\"].forEach((t=>{const n=i[t];s(n)?e.removeAttribute(t):e.setAttribute(t,n)}));const n=i.style||{};return Object.keys(n).forEach((t=>{e.style[t]=n[t]})),e.width=e.width,delete e[ds],!0}addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxies||(t.$proxies={}),n={attach:xs,detach:bs,resize:Ms}[e]||ks;s[e]=n(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:ws,detach:ws,resize:ws}[e]||ps)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return we(t,e,i,s)}isAttached(t){const e=t&&ge(t);return!(!e||!e.isConnected)}}function Ps(t){return!fe()||\"undefined\"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?cs:Ss}var Ds=Object.freeze({__proto__:null,BasePlatform:hs,BasicPlatform:cs,DomPlatform:Ss,_detectPlatform:Ps});const Cs=\"transparent\",Os={boolean:(t,e,i)=>i>.5?e:t,color(t,e,i){const s=Qt(t||Cs),n=s.valid&&Qt(e||Cs);return n&&n.valid?n.mix(s,i).hexString():e},number:(t,e,i)=>t+(e-t)*i};class As{constructor(t,e,i,s){const n=e[i];s=Pi([t.to,s,n,t.from]);const o=Pi([t.from,n,s]);this._active=!0,this._fn=t.fn||Os[t.type||typeof o],this._easing=fi[t.easing]||fi.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],n=i-this._start,o=this._duration-n;this._start=i,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=n,this._loop=!!t.loop,this._to=Pi([t.to,e,s,t.from]),this._from=Pi([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._from,o=this._loop,a=this._to;let r;if(this._active=n!==a&&(o||e\u003Ci),!this._active)return this._target[s]=a,void this._notify(!0);e\u003C0?this._target[s]=n:(r=e\u002Fi%2,r=o&&r>1?2-r:r,r=this._easing(Math.min(1,Math.max(0,r))),this._target[s]=this._fn(n,a,r))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?\"res\":\"rej\",i=this._promises||[];for(let t=0;t\u003Ci.length;t++)i[t][e]()}}class Ts{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!o(t))return;const e=Object.keys(ue.animation),i=this._properties;Object.getOwnPropertyNames(t).forEach((s=>{const a=t[s];if(!o(a))return;const r={};for(const t of e)r[t]=a[t];(n(a.properties)&&a.properties||[s]).forEach((t=>{t!==s&&i.has(t)||i.set(t,r)}))}))}_animateOptions(t,e){const i=e.options,s=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!s)return[];const n=this._createAnimations(s,i);return i.$shared&&function(t,e){const i=[],s=Object.keys(e);for(let e=0;e\u003Cs.length;e++){const n=t[s[e]];n&&n.active()&&i.push(n.wait())}return Promise.all(i)}(t.options.$animations,i).then((()=>{t.options=i}),(()=>{})),n}_createAnimations(t,e){const i=this._properties,s=[],n=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now();let r;for(r=o.length-1;r>=0;--r){const l=o[r];if(\"$\"===l.charAt(0))continue;if(\"options\"===l){s.push(...this._animateOptions(t,e));continue}const h=e[l];let c=n[l];const d=i.get(l);if(c){if(d&&c.active()){c.update(d,h,a);continue}c.cancel()}d&&d.duration?(n[l]=c=new As(d,t,l,h),s.push(c)):t[l]=h}return s}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(bt.add(this._chart,i),!0):void 0}}function Ls(t,e){const i=t&&t.options||{},s=i.reverse,n=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:s?o:n,end:s?n:o}}function Es(t,e){const i=[],s=t._getSortedDatasetMetas(e);let n,o;for(n=0,o=s.length;n\u003Co;++n)i.push(s[n].index);return i}function Rs(t,e,i,s={}){const n=t.keys,o=\"single\"===s.mode;let r,l,h,c;if(null===e)return;let d=!1;for(r=0,l=n.length;r\u003Cl;++r){if(h=+n[r],h===i){if(d=!0,s.all)continue;break}c=t.values[h],a(c)&&(o||0===e||F(e)===F(c))&&(e+=c)}return d||s.all?e:0}function Is(t,e){const i=t&&t.options.stacked;return i||void 0===i&&void 0!==e.stack}function zs(t,e,i){const s=t[e]||(t[e]={});return s[i]||(s[i]={})}function Fs(t,e,i,s){for(const n of e.getMatchingVisibleMetas(s).reverse()){const e=t[n.index];if(i&&e>0||!i&&e\u003C0)return n.index}return null}function Vs(t,e){const{chart:i,_cachedMeta:s}=t,n=i._stacks||(i._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,h=a.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,a,s),d=e.length;let u;for(let t=0;t\u003Cd;++t){const i=e[t],{[l]:o,[h]:d}=i;u=(i._stacks||(i._stacks={}))[h]=zs(n,c,o),u[r]=d,u._top=Fs(u,a,!0,s.type),u._bottom=Fs(u,a,!1,s.type);(u._visualValues||(u._visualValues={}))[r]=d}}function Bs(t,e){const i=t.scales;return Object.keys(i).filter((t=>i[t].axis===e)).shift()}function Ws(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if(s){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[s]||void 0===e[s][i])return;delete e[s][i],void 0!==e[s]._visualValues&&void 0!==e[s]._visualValues[i]&&delete e[s]._visualValues[i]}}}const Ns=t=>\"reset\"===t||\"none\"===t,Hs=(t,e)=>e?t:Object.assign({},t);class js{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=Is(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled(\"filler\")&&console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\")}updateIndex(t){this.index!==t&&Ws(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,s)=>\"x\"===t?e:\"r\"===t?s:i,n=e.xAxisID=l(i.xAxisID,Bs(t,\"x\")),o=e.yAxisID=l(i.yAxisID,Bs(t,\"y\")),a=e.rAxisID=l(i.rAxisID,Bs(t,\"r\")),r=e.indexAxis,h=e.iAxisID=s(r,n,o,a),c=e.vAxisID=s(r,o,n,a);e.xScale=this.getScaleForId(n),e.yScale=this.getScaleForId(o),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(h),e.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update(\"reset\")}_destroy(){const t=this._cachedMeta;this._data&&rt(this._data,this),t._stacked&&Ws(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(o(e)){const t=this._cachedMeta;this._data=function(t,e){const{iScale:i,vScale:s}=e,n=\"x\"===i.axis?\"x\":\"y\",o=\"x\"===s.axis?\"x\":\"y\",a=Object.keys(t),r=new Array(a.length);let l,h,c;for(l=0,h=a.length;l\u003Ch;++l)c=a[l],r[l]={[n]:c,[o]:t[c]};return r}(e,t)}else if(i!==e){if(i){rt(i,this);const t=this._cachedMeta;Ws(t),t._parsed=[]}e&&Object.isExtensible(e)&&at(e,this),this._syncList=[],this._data=e}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const n=e._stacked;e._stacked=Is(e.vScale,e),e.stack!==i.stack&&(s=!0,Ws(e),e.stack=i.stack),this._resyncElements(t),(s||n!==e._stacked)&&(Vs(this,e._parsed),e._stacked=Is(e.vScale,e))}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:i,_data:s}=this,{iScale:a,_stacked:r}=i,l=a.axis;let h,c,d,u=0===t&&e===s.length||i._sorted,f=t>0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=s,i._sorted=!0,d=s;else{d=n(s[t])?this.parseArrayData(i,s,t,e):o(s[t])?this.parseObjectData(i,s,t,e):this.parsePrimitiveData(i,s,t,e);const a=()=>null===c[l]||f&&c[l]\u003Cf[l];for(h=0;h\u003Ce;++h)i._parsed[h+t]=c=d[h],u&&(a()&&(u=!1),f=c);i._sorted=u}r&&Vs(this,d)}parsePrimitiveData(t,e,i,s){const{iScale:n,vScale:o}=t,a=n.axis,r=o.axis,l=n.getLabels(),h=n===o,c=new Array(s);let d,u,f;for(d=0,u=s;d\u003Cu;++d)f=d+i,c[d]={[a]:h||n.parse(l[f],f),[r]:o.parse(e[f],f)};return c}parseArrayData(t,e,i,s){const{xScale:n,yScale:o}=t,a=new Array(s);let r,l,h,c;for(r=0,l=s;r\u003Cl;++r)h=r+i,c=e[h],a[r]={x:n.parse(c[0],h),y:o.parse(c[1],h)};return a}parseObjectData(t,e,i,s){const{xScale:n,yScale:o}=t,{xAxisKey:a=\"x\",yAxisKey:r=\"y\"}=this._parsing,l=new Array(s);let h,c,d,u;for(h=0,c=s;h\u003Cc;++h)d=h+i,u=e[d],l[h]={x:n.parse(M(u,a),d),y:o.parse(M(u,r),d)};return l}getParsed(t){return this._cachedMeta._parsed[t]}getDataElement(t){return this._cachedMeta.data[t]}applyStack(t,e,i){const s=this.chart,n=this._cachedMeta,o=e[t.axis];return Rs({keys:Es(s,!0),values:e._stacks[t.axis]._visualValues},o,n.index,{mode:i})}updateRangeFromParsed(t,e,i,s){const n=i[e.axis];let o=null===n?NaN:n;const a=s&&i._stacks[e.axis];s&&a&&(s.values=a,o=Rs(s,n,this._cachedMeta.index)),t.min=Math.min(t.min,o),t.max=Math.max(t.max,o)}getMinMax(t,e){const i=this._cachedMeta,s=i._parsed,n=i._sorted&&t===i.iScale,o=s.length,r=this._getOtherScale(t),l=((t,e,i)=>t&&!e.hidden&&e._stacked&&{keys:Es(i,!0),values:null})(e,i,this.chart),h={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:c,max:d}=function(t){const{min:e,max:i,minDefined:s,maxDefined:n}=t.getUserBounds();return{min:s?e:Number.NEGATIVE_INFINITY,max:n?i:Number.POSITIVE_INFINITY}}(r);let u,f;function g(){f=s[u];const e=f[r.axis];return!a(f[t.axis])||c>e||d\u003Ce}for(u=0;u\u003Co&&(g()||(this.updateRangeFromParsed(h,t,f,l),!n));++u);if(n)for(u=o-1;u>=0;--u)if(!g()){this.updateRangeFromParsed(h,t,f,l);break}return h}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,n,o;for(s=0,n=e.length;s\u003Cn;++s)o=e[s][t.axis],a(o)&&i.push(o);return i}getMaxOverflow(){return!1}getLabelAndValue(t){const e=this._cachedMeta,i=e.iScale,s=e.vScale,n=this.getParsed(t);return{label:i?\"\"+i.getLabelForValue(n[i.axis]):\"\",value:s?\"\"+s.getLabelForValue(n[s.axis]):\"\"}}_update(t){const e=this._cachedMeta;this.update(t||\"default\"),e._clip=function(t){let e,i,s,n;return o(t)?(e=t.top,i=t.right,s=t.bottom,n=t.left):e=i=s=n=t,{top:e,right:i,bottom:s,left:n,disabled:!1===t}}(l(this.options.clip,function(t,e,i){if(!1===i)return!1;const s=Ls(t,i),n=Ls(e,i);return{top:n.end,right:s.end,bottom:n.start,left:s.start}}(e.xScale,e.yScale,this.getMaxOverflow())))}update(t){}draw(){const t=this._ctx,e=this.chart,i=this._cachedMeta,s=i.data||[],n=e.chartArea,o=[],a=this._drawStart||0,r=this._drawCount||s.length-a,l=this.options.drawActiveElementsOnTop;let h;for(i.dataset&&i.dataset.draw(t,n,a,r),h=a;h\u003Ca+r;++h){const e=s[h];e.hidden||(e.active&&l?o.push(e):e.draw(t,n))}for(h=0;h\u003Co.length;++h)o[h].draw(t,n)}getStyle(t,e){const i=e?\"active\":\"default\";return void 0===t&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(i):this.resolveDataElementOptions(t||0,i)}getContext(t,e,i){const s=this.getDataset();let n;if(t>=0&&t\u003Cthis._cachedMeta.data.length){const e=this._cachedMeta.data[t];n=e.$context||(e.$context=function(t,e,i){return Ci(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:i,index:e,mode:\"default\",type:\"data\"})}(this.getContext(),t,e)),n.parsed=this.getParsed(t),n.raw=s.data[t],n.index=n.dataIndex=t}else n=this.$context||(this.$context=function(t,e){return Ci(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:\"default\",type:\"dataset\"})}(this.chart.getContext(),this.index)),n.dataset=s,n.index=n.datasetIndex=this.index;return n.active=!!e,n.mode=i,n}resolveDatasetElementOptions(t){return this._resolveElementOptions(this.datasetElementType.id,t)}resolveDataElementOptions(t,e){return this._resolveElementOptions(this.dataElementType.id,e,t)}_resolveElementOptions(t,e=\"default\",i){const s=\"active\"===e,n=this._cachedDataOpts,o=t+\"-\"+e,a=n[o],r=this.enableOptionSharing&&k(i);if(a)return Hs(a,r);const l=this.chart.config,h=l.datasetElementScopeKeys(this._type,t),c=s?[`${t}Hover`,\"hover\",t,\"\"]:[t,\"\"],d=l.getOptionScopes(this.getDataset(),h),u=Object.keys(ue.elements[t]),f=l.resolveNamedOptions(d,u,(()=>this.getContext(i,s,e)),c);return f.$shared&&(f.$shared=r,n[o]=Object.freeze(Hs(f,r))),f}_resolveAnimations(t,e,i){const s=this.chart,n=this._cachedDataOpts,o=`animation-${e}`,a=n[o];if(a)return a;let r;if(!1!==s.options.animation){const s=this.chart.config,n=s.datasetAnimationScopeKeys(this._type,e),o=s.getOptionScopes(this.getDataset(),n);r=s.createResolver(o,this.getContext(t,i,e))}const l=new Ts(s,r&&r.animations);return r&&r._cacheable&&(n[o]=Object.freeze(l)),l}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||Ns(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const i=this.resolveDataElementOptions(t,e),s=this._sharedOptions,n=this.getSharedOptions(i),o=this.includeOptions(e,n)||n!==s;return this.updateSharedOptions(n,e,i),{sharedOptions:n,includeOptions:o}}updateElement(t,e,i,s){Ns(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!Ns(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;const n=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(n)||n})}removeHoverStyle(t,e,i){this._setStyle(t,i,\"active\",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,\"active\",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,\"active\",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,\"active\",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[t,e,i]of this._syncList)this[t](e,i);this._syncList=[];const s=i.length,n=e.length,o=Math.min(n,s);o&&this.parse(0,o),n>s?this._insertElements(s,n-s,t):n\u003Cs&&this._removeElements(n,s-n)}_insertElements(t,e,i=!0){const s=this._cachedMeta,n=s.data,o=t+e;let a;const r=t=>{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;a\u003Co;++a)n[a]=new this.dataElementType;this._parsing&&r(s._parsed),this.parse(t,e),i&&this.updateElements(n,t,e,\"reset\")}updateElements(t,e,i,s){}_removeElements(t,e){const i=this._cachedMeta;if(this._parsing){const s=i._parsed.splice(t,e);i._stacked&&Ws(i,s)}i.data.splice(t,e)}_sync(t){if(this._parsing)this._syncList.push(t);else{const[e,i,s]=t;this[e](i,s)}this.chart._dataChanges.push([this.index,...t])}_onDataPush(){const t=arguments.length;this._sync([\"_insertElements\",this.getDataset().data.length-t,t])}_onDataPop(){this._sync([\"_removeElements\",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync([\"_removeElements\",0,1])}_onDataSplice(t,e){e&&this._sync([\"_removeElements\",t,e]);const i=arguments.length-2;i&&this._sync([\"_insertElements\",t,i])}_onDataUnshift(){this._sync([\"_insertElements\",0,arguments.length])}}class $s{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:i}=this.getProps([\"x\",\"y\"],t);return{x:e,y:i}}hasValue(){return N(this.x)&&N(this.y)}getProps(t,e){const i=this.$animations;if(!e||!i)return this;const s={};return t.forEach((t=>{s[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),s}}function Ys(t,e){const i=t.options.ticks,n=function(t){const e=t.options.offset,i=t._tickSize(),s=t._length\u002Fi+(e?0:1),n=t._maxLength\u002Fi;return Math.floor(Math.min(s,n))}(t),o=Math.min(i.maxTicksLimit||n,n),a=i.major.enabled?function(t){const e=[];let i,s;for(i=0,s=t.length;i\u003Cs;i++)t[i].major&&e.push(i);return e}(e):[],r=a.length,l=a[0],h=a[r-1],c=[];if(r>o)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;n\u003Ct.length;n++)n===a&&(e.push(t[n]),o++,a=i[o*s])}(e,c,a,r\u002Fo),c;const d=function(t,e,i){const s=function(t){const e=t.length;let i,s;if(e\u003C2)return!1;for(s=t[0],i=1;i\u003Ce;++i)if(t[i]-t[i-1]!==s)return!1;return s}(t),n=e.length\u002Fi;if(!s)return Math.max(n,1);const o=W(s);for(let t=0,e=o.length-1;t\u003Ce;t++){const e=o[t];if(e>n)return e}return Math.max(n,1)}(a,e,o);if(r>0){let t,i;const n=r>1?Math.round((h-l)\u002F(r-1)):null;for(Us(e,c,d,s(n)?0:l-n,l),t=0,i=r-1;t\u003Ci;t++)Us(e,c,d,a[t],a[t+1]);return Us(e,c,d,h,s(n)?e.length:h+n),c}return Us(e,c,d),c}function Us(t,e,i,s,n){const o=l(s,0),a=Math.min(l(n,t.length),t.length);let r,h,c,d=0;for(i=Math.ceil(i),n&&(r=n-s,i=r\u002FMath.floor(r\u002Fi)),c=o;c\u003C0;)d++,c=Math.round(o+d*i);for(h=Math.max(o,0);h\u003Ca;h++)h===c&&(e.push(t[h]),d++,c=Math.round(o+d*i))}const Xs=(t,e,i)=>\"top\"===e||\"left\"===e?t[e]+i:t[e]-i,qs=(t,e)=>Math.min(e||t,t);function Ks(t,e){const i=[],s=t.length\u002Fe,n=t.length;let o=0;for(;o\u003Cn;o+=s)i.push(t[Math.floor(o)]);return i}function Gs(t,e,i){const s=t.ticks.length,n=Math.min(e,s-1),o=t._startPixel,a=t._endPixel,r=1e-6;let l,h=t.getPixelForTick(n);if(!(i&&(l=1===s?Math.max(h-o,a-h):0===e?(t.getPixelForTick(1)-h)\u002F2:(h-t.getPixelForTick(n-1))\u002F2,h+=n\u003Ce?l:-l,h\u003Co-r||h>a+r)))return h}function Js(t){return t.drawTicks?t.tickLength:0}function Zs(t,e){if(!t.display)return 0;const i=Si(t.font,e),s=ki(t.padding);return(n(t.text)?t.text.length:1)*i.lineHeight+s.height}function Qs(t,e,i){let s=ut(t);return(i&&\"right\"!==e||!i&&\"right\"===e)&&(s=(t=>\"left\"===t?\"right\":\"right\"===t?\"left\":t)(s)),s}class tn extends $s{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=r(t,Number.POSITIVE_INFINITY),e=r(e,Number.NEGATIVE_INFINITY),i=r(i,Number.POSITIVE_INFINITY),s=r(s,Number.NEGATIVE_INFINITY),{min:r(t,i),max:r(e,s),minDefined:a(t),maxDefined:a(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:n,maxDefined:o}=this.getUserBounds();if(n&&o)return{min:i,max:s};const a=this.getMatchingVisibleMetas();for(let r=0,l=a.length;r\u003Cl;++r)e=a[r].controller.getMinMax(this,t),n||(i=Math.min(i,e.min)),o||(s=Math.max(s,e.max));return i=o&&i>s?s:i,s=n&&i>s?i:s,{min:r(i,r(s,i)),max:r(s,r(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){d(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:n,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Di(this,n,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const r=a\u003Cthis.ticks.length;this._convertTicksToLabels(r?Ks(this.ticks,a):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),o.display&&(o.autoSkip||\"auto\"===o.source)&&(this.ticks=Ys(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),r&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let t,e,i=this.options.reverse;this.isHorizontal()?(t=this.left,e=this.right):(t=this.top,e=this.bottom,i=!i),this._startPixel=t,this._endPixel=e,this._reversePixels=i,this._length=e-t,this._alignToPixels=this.options.alignToPixels}afterUpdate(){d(this.options.afterUpdate,[this])}beforeSetDimensions(){d(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){d(this.options.afterSetDimensions,[this])}_callHooks(t){this.chart.notifyPlugins(t,this.getContext()),d(this.options[t],[this])}beforeDataLimits(){this._callHooks(\"beforeDataLimits\")}determineDataLimits(){}afterDataLimits(){this._callHooks(\"afterDataLimits\")}beforeBuildTicks(){this._callHooks(\"beforeBuildTicks\")}buildTicks(){return[]}afterBuildTicks(){this._callHooks(\"afterBuildTicks\")}beforeTickToLabelConversion(){d(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(t){const e=this.options.ticks;let i,s,n;for(i=0,s=t.length;i\u003Cs;i++)n=t[i],n.label=d(e.callback,[n.value,i,t],this)}afterTickToLabelConversion(){d(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){d(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const t=this.options,e=t.ticks,i=qs(this.ticks.length,t.ticks.maxTicksLimit),s=e.minRotation||0,n=e.maxRotation;let o,a,r,l=s;if(!this._isVisible()||!e.display||s>=n||i\u003C=1||!this.isHorizontal())return void(this.labelRotation=s);const h=this._getLabelSizes(),c=h.widest.width,d=h.highest.height,u=Z(this.chart.width-c,0,this.maxWidth);o=t.offset?this.maxWidth\u002Fi:u\u002F(i-1),c+6>o&&(o=u\u002F(i-(t.offset?.5:1)),a=this.maxHeight-Js(t.grid)-e.padding-Zs(t.title,this.chart.options.font),r=Math.sqrt(c*c+d*d),l=Y(Math.min(Math.asin(Z((h.highest.height+6)\u002Fo,-1,1)),Math.asin(Z(a\u002Fr,-1,1))-Math.asin(Z(d\u002Fr,-1,1)))),l=Math.max(s,Math.min(n,l))),this.labelRotation=l}afterCalculateLabelRotation(){d(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){d(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:n}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const o=Zs(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=Js(n)+o):(t.height=this.maxHeight,t.width=Js(n)+o),i.display&&this.ticks.length){const{first:e,last:s,widest:n,highest:o}=this._getLabelSizes(),r=2*i.padding,l=$(this.labelRotation),h=Math.cos(l),c=Math.sin(l);if(a){const e=i.mirror?0:c*n.width+h*o.height;t.height=Math.min(this.maxHeight,t.height+e+r)}else{const e=i.mirror?0:h*n.width+c*o.height;t.width=Math.min(this.maxWidth,t.width+e+r)}this._calculatePadding(e,s,c,h)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){const{ticks:{align:n,padding:o},position:a}=this.options,r=0!==this.labelRotation,l=\"top\"!==a&&\"x\"===this.axis;if(this.isHorizontal()){const a=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;r?l?(c=s*t.width,d=i*e.height):(c=i*t.height,d=s*e.width):\"start\"===n?d=e.width:\"end\"===n?c=t.width:\"inner\"!==n&&(c=t.width\u002F2,d=e.width\u002F2),this.paddingLeft=Math.max((c-a+o)*this.width\u002F(this.width-a),0),this.paddingRight=Math.max((d-h+o)*this.width\u002F(this.width-h),0)}else{let i=e.height\u002F2,s=t.height\u002F2;\"start\"===n?(i=0,s=t.height):\"end\"===n&&(i=e.height,s=0),this.paddingTop=i+o,this.paddingBottom=s+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){d(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return\"top\"===e||\"bottom\"===e||\"x\"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e\u003Ci;e++)s(t[e].label)&&(t.splice(e,1),i--,e--);this.afterTickToLabelConversion()}_getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ticks.sampleSize;let i=this.ticks;e\u003Ci.length&&(i=Ks(i,e)),this._labelSizes=t=this._computeLabelSizes(i,i.length,this.options.ticks.maxTicksLimit)}return t}_computeLabelSizes(t,e,i){const{ctx:o,_longestTextCache:a}=this,r=[],l=[],h=Math.floor(e\u002Fqs(e,i));let c,d,f,g,p,m,x,b,_,y,v,M=0,w=0;for(c=0;c\u003Ce;c+=h){if(g=t[c].label,p=this._resolveTickFontOptions(c),o.font=m=p.string,x=a[m]=a[m]||{data:{},gc:[]},b=p.lineHeight,_=y=0,s(g)||n(g)){if(n(g))for(d=0,f=g.length;d\u003Cf;++d)v=g[d],s(v)||n(v)||(_=Ce(o,x.data,x.gc,_,v),y+=b)}else _=Ce(o,x.data,x.gc,_,g),y=b;r.push(_),l.push(y),M=Math.max(_,M),w=Math.max(y,w)}!function(t,e){u(t,(t=>{const i=t.gc,s=i.length\u002F2;let n;if(s>e){for(n=0;n\u003Cs;++n)delete t.data[i[n]];i.splice(0,s)}}))}(a,e);const k=r.indexOf(M),S=l.indexOf(w),P=t=>({width:r[t]||0,height:l[t]||0});return{first:P(0),last:P(e-1),widest:P(k),highest:P(S),widths:r,heights:l}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t\u003C0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return Q(this._alignToPixels?Ae(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)\u002Fthis._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t\u003C0&&e\u003C0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&t\u003Ce.length){const i=e[t];return i.$context||(i.$context=function(t,e,i){return Ci(t,{tick:i,index:e,type:\"tick\"})}(this.getContext(),t,i))}return this.$context||(this.$context=Ci(this.chart.getContext(),{scale:this,type:\"scale\"}))}_tickSize(){const t=this.options.ticks,e=$(this.labelRotation),i=Math.abs(Math.cos(e)),s=Math.abs(Math.sin(e)),n=this._getLabelSizes(),o=t.autoSkipPadding||0,a=n?n.widest.width+o:0,r=n?n.highest.height+o:0;return this.isHorizontal()?r*i>a*s?a\u002Fi:r\u002Fs:r*s\u003Ca*i?r\u002Fi:a\u002Fs}_isVisible(){const t=this.options.display;return\"auto\"!==t?!!t:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:n,position:a,border:r}=s,h=n.offset,c=this.isHorizontal(),d=this.ticks.length+(h?1:0),u=Js(n),f=[],g=r.setContext(this.getContext()),p=g.display?g.width:0,m=p\u002F2,x=function(t){return Ae(i,t,p)};let b,_,y,v,M,w,k,S,P,D,C,O;if(\"top\"===a)b=x(this.bottom),w=this.bottom-u,S=b-m,D=x(t.top)+m,O=t.bottom;else if(\"bottom\"===a)b=x(this.top),D=t.top,O=x(t.bottom)-m,w=b+m,S=this.top+u;else if(\"left\"===a)b=x(this.right),M=this.right-u,k=b-m,P=x(t.left)+m,C=t.right;else if(\"right\"===a)b=x(this.left),P=t.left,C=x(t.right)-m,M=b+m,k=this.left+u;else if(\"x\"===e){if(\"center\"===a)b=x((t.top+t.bottom)\u002F2+.5);else if(o(a)){const t=Object.keys(a)[0],e=a[t];b=x(this.chart.scales[t].getPixelForValue(e))}D=t.top,O=t.bottom,w=b+m,S=w+u}else if(\"y\"===e){if(\"center\"===a)b=x((t.left+t.right)\u002F2);else if(o(a)){const t=Object.keys(a)[0],e=a[t];b=x(this.chart.scales[t].getPixelForValue(e))}M=b-m,k=M-u,P=t.left,C=t.right}const A=l(s.ticks.maxTicksLimit,d),T=Math.max(1,Math.ceil(d\u002FA));for(_=0;_\u003Cd;_+=T){const t=this.getContext(_),e=n.setContext(t),s=r.setContext(t),o=e.lineWidth,a=e.color,l=s.dash||[],d=s.dashOffset,u=e.tickWidth,g=e.tickColor,p=e.tickBorderDash||[],m=e.tickBorderDashOffset;y=Gs(this,_,h),void 0!==y&&(v=Ae(i,y,o),c?M=k=P=C=v:w=S=D=O=v,f.push({tx1:M,ty1:w,tx2:k,ty2:S,x1:P,y1:D,x2:C,y2:O,width:o,color:a,borderDash:l,borderDashOffset:d,tickWidth:u,tickColor:g,tickBorderDash:p,tickBorderDashOffset:m}))}return this._ticksLength=d,this._borderValue=b,f}_computeLabelItems(t){const e=this.axis,i=this.options,{position:s,ticks:a}=i,r=this.isHorizontal(),l=this.ticks,{align:h,crossAlign:c,padding:d,mirror:u}=a,f=Js(i.grid),g=f+d,p=u?-d:g,m=-$(this.labelRotation),x=[];let b,_,y,v,M,w,k,S,P,D,C,O,A=\"middle\";if(\"top\"===s)w=this.bottom-p,k=this._getXAxisLabelAlignment();else if(\"bottom\"===s)w=this.top+p,k=this._getXAxisLabelAlignment();else if(\"left\"===s){const t=this._getYAxisLabelAlignment(f);k=t.textAlign,M=t.x}else if(\"right\"===s){const t=this._getYAxisLabelAlignment(f);k=t.textAlign,M=t.x}else if(\"x\"===e){if(\"center\"===s)w=(t.top+t.bottom)\u002F2+g;else if(o(s)){const t=Object.keys(s)[0],e=s[t];w=this.chart.scales[t].getPixelForValue(e)+g}k=this._getXAxisLabelAlignment()}else if(\"y\"===e){if(\"center\"===s)M=(t.left+t.right)\u002F2-g;else if(o(s)){const t=Object.keys(s)[0],e=s[t];M=this.chart.scales[t].getPixelForValue(e)}k=this._getYAxisLabelAlignment(f).textAlign}\"y\"===e&&(\"start\"===h?A=\"top\":\"end\"===h&&(A=\"bottom\"));const T=this._getLabelSizes();for(b=0,_=l.length;b\u003C_;++b){y=l[b],v=y.label;const t=a.setContext(this.getContext(b));S=this.getPixelForTick(b)+a.labelOffset,P=this._resolveTickFontOptions(b),D=P.lineHeight,C=n(v)?v.length:1;const e=C\u002F2,i=t.color,o=t.textStrokeColor,h=t.textStrokeWidth;let d,f=k;if(r?(M=S,\"inner\"===k&&(f=b===_-1?this.options.reverse?\"left\":\"right\":0===b?this.options.reverse?\"right\":\"left\":\"center\"),O=\"top\"===s?\"near\"===c||0!==m?-C*D+D\u002F2:\"center\"===c?-T.highest.height\u002F2-e*D+D:-T.highest.height+D\u002F2:\"near\"===c||0!==m?D\u002F2:\"center\"===c?T.highest.height\u002F2-e*D:T.highest.height-C*D,u&&(O*=-1),0===m||t.showLabelBackdrop||(M+=D\u002F2*Math.sin(m))):(w=S,O=(1-C)*D\u002F2),t.showLabelBackdrop){const e=ki(t.backdropPadding),i=T.heights[b],s=T.widths[b];let n=O-e.top,o=0-e.left;switch(A){case\"middle\":n-=i\u002F2;break;case\"bottom\":n-=i}switch(k){case\"center\":o-=s\u002F2;break;case\"right\":o-=s;break;case\"inner\":b===_-1?o-=s:b>0&&(o-=s\u002F2)}d={left:o,top:n,width:s+e.width,height:i+e.height,color:t.backdropColor}}x.push({label:v,font:P,textOffset:O,options:{rotation:m,color:i,strokeColor:o,strokeWidth:h,textAlign:f,textBaseline:A,translation:[M,w],backdrop:d}})}return x}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-$(this.labelRotation))return\"top\"===t?\"left\":\"right\";let i=\"center\";return\"start\"===e.align?i=\"left\":\"end\"===e.align?i=\"right\":\"inner\"===e.align&&(i=\"inner\"),i}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:i,mirror:s,padding:n}}=this.options,o=t+n,a=this._getLabelSizes().widest.width;let r,l;return\"left\"===e?s?(l=this.right+n,\"near\"===i?r=\"left\":\"center\"===i?(r=\"center\",l+=a\u002F2):(r=\"right\",l+=a)):(l=this.right-o,\"near\"===i?r=\"right\":\"center\"===i?(r=\"center\",l-=a\u002F2):(r=\"left\",l=this.left)):\"right\"===e?s?(l=this.left+n,\"near\"===i?r=\"right\":\"center\"===i?(r=\"center\",l-=a\u002F2):(r=\"left\",l-=a)):(l=this.left+o,\"near\"===i?r=\"left\":\"center\"===i?(r=\"center\",l+=a\u002F2):(r=\"right\",l=this.right)):r=\"right\",{textAlign:r,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;return\"left\"===e||\"right\"===e?{top:0,left:this.left,bottom:t.height,right:this.right}:\"top\"===e||\"bottom\"===e?{top:this.top,left:0,bottom:this.bottom,right:t.width}:void 0}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:i,top:s,width:n,height:o}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(i,s,n,o),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const i=this.ticks.findIndex((e=>e.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let n,o;const a=(t,e,s)=>{s.width&&s.color&&(i.save(),i.lineWidth=s.width,i.strokeStyle=s.color,i.setLineDash(s.borderDash||[]),i.lineDashOffset=s.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(n=0,o=s.length;n\u003Co;++n){const t=s[n];e.drawOnChartArea&&a({x:t.x1,y:t.y1},{x:t.x2,y:t.y2},t),e.drawTicks&&a({x:t.tx1,y:t.ty1},{x:t.tx2,y:t.ty2},{color:t.tickColor,width:t.tickWidth,borderDash:t.tickBorderDash,borderDashOffset:t.tickBorderDashOffset})}}drawBorder(){const{chart:t,ctx:e,options:{border:i,grid:s}}=this,n=i.setContext(this.getContext()),o=i.display?n.width:0;if(!o)return;const a=s.setContext(this.getContext(0)).lineWidth,r=this._borderValue;let l,h,c,d;this.isHorizontal()?(l=Ae(t,this.left,o)-o\u002F2,h=Ae(t,this.right,a)+a\u002F2,c=d=r):(c=Ae(t,this.top,o)-o\u002F2,d=Ae(t,this.bottom,a)+a\u002F2,l=h=r),e.save(),e.lineWidth=n.width,e.strokeStyle=n.color,e.beginPath(),e.moveTo(l,c),e.lineTo(h,d),e.stroke(),e.restore()}drawLabels(t){if(!this.options.ticks.display)return;const e=this.ctx,i=this._computeLabelArea();i&&Ie(e,i);const s=this.getLabelItems(t);for(const t of s){const i=t.options,s=t.font;Ne(e,t.label,0,t.textOffset,s,i)}i&&ze(e)}drawTitle(){const{ctx:t,options:{position:e,title:i,reverse:s}}=this;if(!i.display)return;const a=Si(i.font),r=ki(i.padding),l=i.align;let h=a.lineHeight\u002F2;\"bottom\"===e||\"center\"===e||o(e)?(h+=r.bottom,n(i.text)&&(h+=a.lineHeight*(i.text.length-1))):h+=r.top;const{titleX:c,titleY:d,maxWidth:u,rotation:f}=function(t,e,i,s){const{top:n,left:a,bottom:r,right:l,chart:h}=t,{chartArea:c,scales:d}=h;let u,f,g,p=0;const m=r-n,x=l-a;if(t.isHorizontal()){if(f=ft(s,a,l),o(i)){const t=Object.keys(i)[0],s=i[t];g=d[t].getPixelForValue(s)+m-e}else g=\"center\"===i?(c.bottom+c.top)\u002F2+m-e:Xs(t,i,e);u=l-a}else{if(o(i)){const t=Object.keys(i)[0],s=i[t];f=d[t].getPixelForValue(s)-x+e}else f=\"center\"===i?(c.left+c.right)\u002F2-x+e:Xs(t,i,e);g=ft(s,r,n),p=\"left\"===i?-E:E}return{titleX:f,titleY:g,maxWidth:u,rotation:p}}(this,h,e,l);Ne(t,i.text,0,0,a,{color:i.color,maxWidth:u,rotation:f,textAlign:Qs(l,e,s),textBaseline:\"middle\",translation:[c,d]})}draw(t){this._isVisible()&&(this.drawBackground(),this.drawGrid(t),this.drawBorder(),this.drawTitle(),this.drawLabels(t))}_layers(){const t=this.options,e=t.ticks&&t.ticks.z||0,i=l(t.grid&&t.grid.z,-1),s=l(t.border&&t.border.z,0);return this._isVisible()&&this.draw===tn.prototype.draw?[{z:i,draw:t=>{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+\"AxisID\",s=[];let n,o;for(n=0,o=e.length;n\u003Co;++n){const o=e[n];o[i]!==this.id||t&&o.type!==t||s.push(o)}return s}_resolveTickFontOptions(t){return Si(this.options.ticks.setContext(this.getContext(t)).font)}_maxDigits(){const t=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)\u002Ft}}class en{constructor(t,e,i){this.type=t,this.scope=e,this.override=i,this.items=Object.create(null)}isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prototype,t.prototype)}register(t){const e=Object.getPrototypeOf(t);let i;(function(t){return\"id\"in t&&\"defaults\"in t})(e)&&(i=this.register(e));const s=this.items,n=t.id,o=this.scope+\".\"+n;if(!n)throw new Error(\"class does not have id: \"+t);return n in s||(s[n]=t,function(t,e,i){const s=x(Object.create(null),[i?ue.get(i):{},ue.get(e),t.defaults]);ue.set(e,s),t.defaultRoutes&&function(t,e){Object.keys(e).forEach((i=>{const s=i.split(\".\"),n=s.pop(),o=[t].concat(s).join(\".\"),a=e[i].split(\".\"),r=a.pop(),l=a.join(\".\");ue.route(o,n,l,r)}))}(e,t.defaultRoutes);t.descriptors&&ue.describe(e,t.descriptors)}(t,o,i),this.override&&ue.override(t.id,t.overrides)),o}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in ue[s]&&(delete ue[s][i],this.override&&delete re[i])}}class sn{constructor(){this.controllers=new en(js,\"datasets\",!0),this.elements=new en($s,\"elements\"),this.plugins=new en(Object,\"plugins\"),this.scales=new en(tn,\"scales\"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each(\"register\",t)}remove(...t){this._each(\"unregister\",t)}addControllers(...t){this._each(\"register\",t,this.controllers)}addElements(...t){this._each(\"register\",t,this.elements)}addPlugins(...t){this._each(\"register\",t,this.plugins)}addScales(...t){this._each(\"register\",t,this.scales)}getController(t){return this._get(t,this.controllers,\"controller\")}getElement(t){return this._get(t,this.elements,\"element\")}getPlugin(t){return this._get(t,this.plugins,\"plugin\")}getScale(t){return this._get(t,this.scales,\"scale\")}removeControllers(...t){this._each(\"unregister\",t,this.controllers)}removeElements(...t){this._each(\"unregister\",t,this.elements)}removePlugins(...t){this._each(\"unregister\",t,this.plugins)}removeScales(...t){this._each(\"unregister\",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):u(e,(e=>{const s=i||this._getRegistryForType(e);this._exec(t,s,e)}))}))}_exec(t,e,i){const s=w(t);d(i[\"before\"+s],[],i),e[t](i),d(i[\"after\"+s],[],i)}_getRegistryForType(t){for(let e=0;e\u003Cthis._typedRegistries.length;e++){const i=this._typedRegistries[e];if(i.isForType(t))return i}return this.plugins}_get(t,e,i){const s=e.get(t);if(void 0===s)throw new Error('\"'+t+'\" is not a registered '+i+\".\");return s}}var nn=new sn;class on{constructor(){this._init=void 0}notify(t,e,i,s){if(\"beforeInit\"===e&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,\"install\")),void 0===this._init)return;const n=s?this._descriptors(t).filter(s):this._descriptors(t),o=this._notify(n,t,e,i);return\"afterDestroy\"===e&&(this._notify(n,t,\"stop\"),this._notify(this._init,t,\"uninstall\"),this._init=void 0),o}_notify(t,e,i,s){s=s||{};for(const n of t){const t=n.plugin;if(!1===d(t[i],[e,s,n.options],t)&&s.cancelable)return!1}return!0}invalidate(){s(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const e=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),e}_createDescriptors(t,e){const i=t&&t.config,s=l(i.options&&i.options.plugins,{}),n=function(t){const e={},i=[],s=Object.keys(nn.plugins.items);for(let t=0;t\u003Cs.length;t++)i.push(nn.getPlugin(s[t]));const n=t.plugins||[];for(let t=0;t\u003Cn.length;t++){const s=n[t];-1===i.indexOf(s)&&(i.push(s),e[s.id]=!0)}return{plugins:i,localIds:e}}(i);return!1!==s||e?function(t,{plugins:e,localIds:i},s,n){const o=[],a=t.getContext();for(const r of e){const e=r.id,l=an(s[e],n);null!==l&&o.push({plugin:r,options:rn(t.config,{plugin:r,local:i[e]},l,a)})}return o}(t,n,s,e):[]}_notifyStateChanges(t){const e=this._oldCache||[],i=this._cache,s=(t,e)=>t.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(s(e,i),t,\"stop\"),this._notify(s(i,e),t,\"start\")}}function an(t,e){return e||!1!==t?!0===t?{}:t:null}function rn(t,{plugin:e,local:i},s,n){const o=t.pluginScopeKeys(e),a=t.getOptionScopes(s,o);return i&&e.defaults&&a.push(e.defaults),t.createResolver(a,n,[\"\"],{scriptable:!1,indexable:!1,allKeys:!0})}function ln(t,e){const i=ue.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||\"x\"}function hn(t){if(\"x\"===t||\"y\"===t||\"r\"===t)return t}function cn(t,...e){if(hn(t))return t;for(const s of e){const e=s.axis||(\"top\"===(i=s.position)||\"bottom\"===i?\"x\":\"left\"===i||\"right\"===i?\"y\":void 0)||t.length>1&&hn(t[0].toLowerCase());if(e)return e}var i;throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function dn(t,e,i){if(i[e+\"AxisID\"]===t)return{axis:e}}function un(t,e){const i=re[t.type]||{scales:{}},s=e.scales||{},n=ln(t.type,e),a=Object.create(null);return Object.keys(s).forEach((e=>{const r=s[e];if(!o(r))return console.error(`Invalid scale configuration for scale: ${e}`);if(r._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${e}`);const l=cn(e,r,function(t,e){if(e.data&&e.data.datasets){const i=e.data.datasets.filter((e=>e.xAxisID===t||e.yAxisID===t));if(i.length)return dn(t,\"x\",i[0])||dn(t,\"y\",i[0])}return{}}(e,t),ue.scales[r.type]),h=function(t,e){return t===e?\"_index_\":\"_value_\"}(l,n),c=i.scales||{};a[e]=b(Object.create(null),[{axis:l},r,c[l],c[h]])})),t.data.datasets.forEach((i=>{const n=i.type||t.type,o=i.indexAxis||ln(n,e),r=(re[n]||{}).scales||{};Object.keys(r).forEach((t=>{const e=function(t,e){let i=t;return\"_index_\"===t?i=e:\"_value_\"===t&&(i=\"x\"===e?\"y\":\"x\"),i}(t,o),n=i[e+\"AxisID\"]||e;a[n]=a[n]||Object.create(null),b(a[n],[{axis:e},s[n],r[t]])}))})),Object.keys(a).forEach((t=>{const e=a[t];b(e,[ue.scales[e.type],ue.scale])})),a}function fn(t){const e=t.options||(t.options={});e.plugins=l(e.plugins,{}),e.scales=un(t,e)}function gn(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const pn=new Map,mn=new Set;function xn(t,e){let i=pn.get(t);return i||(i=e(),pn.set(t,i),mn.add(i)),i}const bn=(t,e,i)=>{const s=M(e,i);void 0!==s&&t.add(s)};class _n{constructor(t){this._config=function(t){return(t=t||{}).data=gn(t.data),fn(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=gn(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),fn(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return xn(t,(()=>[[`datasets.${t}`,\"\"]]))}datasetAnimationScopeKeys(t,e){return xn(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,\"\"]]))}datasetElementScopeKeys(t,e){return xn(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,\"\"]]))}pluginScopeKeys(t){const e=t.id;return xn(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!e||(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){const{options:s,type:n}=this,o=this._cachedScopes(t,i),a=o.get(e);if(a)return a;const r=new Set;e.forEach((e=>{t&&(r.add(t),e.forEach((e=>bn(r,t,e)))),e.forEach((t=>bn(r,s,t))),e.forEach((t=>bn(r,re[n]||{},t))),e.forEach((t=>bn(r,ue,t))),e.forEach((t=>bn(r,le,t)))}));const l=Array.from(r);return 0===l.length&&l.push(Object.create(null)),mn.has(e)&&o.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,re[e]||{},ue.datasets[e]||{},{type:e},ue,le]}resolveNamedOptions(t,e,i,s=[\"\"]){const o={$shared:!0},{resolver:a,subPrefixes:r}=yn(this._resolverCache,t,s);let l=a;if(function(t,e){const{isScriptable:i,isIndexable:s}=Ye(t);for(const o of e){const e=i(o),a=s(o),r=(a||e)&&t[o];if(e&&(S(r)||vn(r))||a&&n(r))return!0}return!1}(a,e)){o.$shared=!1;l=$e(a,i=S(i)?i():i,this.createResolver(t,i,r))}for(const t of e)o[t]=l[t];return o}createResolver(t,e,i=[\"\"],s){const{resolver:n}=yn(this._resolverCache,t,i);return o(e)?$e(n,e,void 0,s):n}}function yn(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const n=i.join();let o=s.get(n);if(!o){o={resolver:je(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes(\"hover\")))},s.set(n,o)}return o}const vn=t=>o(t)&&Object.getOwnPropertyNames(t).some((e=>S(t[e])));const Mn=[\"top\",\"bottom\",\"left\",\"right\",\"chartArea\"];function wn(t,e){return\"top\"===t||\"bottom\"===t||-1===Mn.indexOf(t)&&\"x\"===e}function kn(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-s[t]}}function Sn(t){const e=t.chart,i=e.options.animation;e.notifyPlugins(\"afterRender\"),d(i&&i.onComplete,[t],e)}function Pn(t){const e=t.chart,i=e.options.animation;d(i&&i.onProgress,[t],e)}function Dn(t){return fe()&&\"string\"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Cn={},On=t=>{const e=Dn(t);return Object.values(Cn).filter((t=>t.canvas===e)).pop()};function An(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;if(s>=e){const o=t[n];delete t[n],(i>0||s>e)&&(t[s+i]=o)}}}class Tn{static defaults=ue;static instances=Cn;static overrides=re;static registry=nn;static version=\"4.5.1\";static getChart=On;static register(...t){nn.add(...t),Ln()}static unregister(...t){nn.remove(...t),Ln()}constructor(t,e){const s=this.config=new _n(e),n=Dn(t),o=On(n);if(o)throw new Error(\"Canvas is already in use. Chart with ID '\"+o.id+\"' must be destroyed before the canvas with ID '\"+o.canvas.id+\"' can be reused.\");const a=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||Ps(n)),this.platform.updateConfig(s);const r=this.platform.acquireContext(n,a.aspectRatio),l=r&&r.canvas,h=l&&l.height,c=l&&l.width;this.id=i(),this.ctx=r,this.canvas=l,this.width=c,this.height=h,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new on,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=dt((t=>this.update(t)),a.resizeDelay||0),this._dataChanges=[],Cn[this.id]=this,r&&l?(bt.listen(this,\"complete\",Sn),bt.listen(this,\"progress\",Pn),this._initialize(),this.attached&&this.update()):console.error(\"Failed to create chart: can't acquire context from the given item\")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:n,_aspectRatio:o}=this;return s(t)?e&&o?o:n?i\u002Fn:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return nn}_initialize(){return this.notifyPlugins(\"beforeInit\"),this.options.responsive?this.resize():ke(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins(\"afterInit\"),this}clear(){return Te(this.canvas,this.ctx),this}stop(){return bt.stop(this),this}resize(t,e){bt.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,n=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,t,e,n),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),r=this.width?\"resize\":\"attach\";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,ke(this,a,!0)&&(this.notifyPlugins(\"resize\",{size:o}),d(i.onResize,[this,o],this),this.attached&&this._doResize(r)&&this.render())}ensureScalesHaveIDs(){u(this.options.scales||{},((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let n=[];e&&(n=n.concat(Object.keys(e).map((t=>{const i=e[t],s=cn(t,i),n=\"r\"===s,o=\"x\"===s;return{options:i,dposition:n?\"chartArea\":o?\"bottom\":\"left\",dtype:n?\"radialLinear\":o?\"category\":\"linear\"}})))),u(n,(e=>{const n=e.options,o=n.id,a=cn(o,n),r=l(n.type,e.dtype);void 0!==n.position&&wn(n.position,a)===wn(e.dposition)||(n.position=e.dposition),s[o]=!0;let h=null;if(o in i&&i[o].type===r)h=i[o];else{h=new(nn.getScale(r))({id:o,type:r,ctx:this.ctx,chart:this}),i[h.id]=h}h.init(n,t)})),u(s,((t,e)=>{t||delete i[e]})),u(i,(t=>{ls.configure(this,t,t.options),ls.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;t\u003Ci;++t)this._destroyDatasetMeta(t);t.splice(e,i-e)}this._sortedMetasets=t.slice(0).sort(kn(\"order\",\"index\"))}_removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:e}}=this;t.length>e.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i\u003Cs;i++){const s=e[i];let n=this.getDatasetMeta(i);const o=s.type||this.config.type;if(n.type&&n.type!==o&&(this._destroyDatasetMeta(i),n=this.getDatasetMeta(i)),n.type=o,n.indexAxis=s.indexAxis||ln(o,this.options),n.order=s.order||0,n.index=i,n.label=\"\"+s.label,n.visible=this.isDatasetVisible(i),n.controller)n.controller.updateIndex(i),n.controller.linkScales();else{const e=nn.getController(o),{datasetElementType:s,dataElementType:a}=ue.datasets[o];Object.assign(e,{dataElementType:nn.getElement(a),datasetElementType:s&&nn.getElement(s)}),n.controller=new e(this,i),t.push(n.controller)}}return this._updateMetasets(),t}_resetElements(){u(this.data.datasets,((t,e)=>{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins(\"reset\")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins(\"beforeUpdate\",{mode:t,cancelable:!0}))return;const n=this.buildOrUpdateControllers();this.notifyPlugins(\"beforeElementsUpdate\");let o=0;for(let t=0,e=this.data.datasets.length;t\u003Ce;t++){const{controller:e}=this.getDatasetMeta(t),i=!s&&-1===n.indexOf(e);e.buildOrUpdateElements(i),o=Math.max(+e.getMaxOverflow(),o)}o=this._minPadding=i.layout.autoPadding?o:0,this._updateLayout(o),s||u(n,(t=>{t.reset()})),this._updateDatasets(t),this.notifyPlugins(\"afterUpdate\",{mode:t}),this._layers.sort(kn(\"z\",\"_idx\"));const{_active:a,_lastEvent:r}=this;r?this._eventHandler(r,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){u(this.scales,(t=>{ls.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);P(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:n}of e){An(t,s,\"_removeElements\"===i?-n:n)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+\",\"+t.splice(1).join(\",\")))),s=i(0);for(let t=1;t\u003Ce;t++)if(!P(s,i(t)))return;return Array.from(s).map((t=>t.split(\",\"))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins(\"beforeLayout\",{cancelable:!0}))return;ls.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width\u003C=0||e.height\u003C=0;this._layers=[],u(this.boxes,(t=>{i&&\"chartArea\"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins(\"afterLayout\")}_updateDatasets(t){if(!1!==this.notifyPlugins(\"beforeDatasetsUpdate\",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t\u003Ce;++t)this.getDatasetMeta(t).controller.configure();for(let e=0,i=this.data.datasets.length;e\u003Ci;++e)this._updateDataset(e,S(t)?t({datasetIndex:e}):t);this.notifyPlugins(\"afterDatasetsUpdate\",{mode:t})}}_updateDataset(t,e){const i=this.getDatasetMeta(t),s={meta:i,index:t,mode:e,cancelable:!0};!1!==this.notifyPlugins(\"beforeDatasetUpdate\",s)&&(i.controller._update(e),s.cancelable=!1,this.notifyPlugins(\"afterDatasetUpdate\",s))}render(){!1!==this.notifyPlugins(\"beforeRender\",{cancelable:!0})&&(bt.has(this)?this.attached&&!bt.running(this)&&bt.start(this):(this.draw(),Sn({chart:this})))}draw(){let t;if(this._resizeBeforeDraw){const{width:t,height:e}=this._resizeBeforeDraw;this._resizeBeforeDraw=null,this._resize(t,e)}if(this.clear(),this.width\u003C=0||this.height\u003C=0)return;if(!1===this.notifyPlugins(\"beforeDraw\",{cancelable:!0}))return;const e=this._layers;for(t=0;t\u003Ce.length&&e[t].z\u003C=0;++t)e[t].draw(this.chartArea);for(this._drawDatasets();t\u003Ce.length;++t)e[t].draw(this.chartArea);this.notifyPlugins(\"afterDraw\")}_getSortedDatasetMetas(t){const e=this._sortedMetasets,i=[];let s,n;for(s=0,n=e.length;s\u003Cn;++s){const n=e[s];t&&!n.visible||i.push(n)}return i}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(!1===this.notifyPlugins(\"beforeDatasetsDraw\",{cancelable:!0}))return;const t=this.getSortedVisibleDatasetMetas();for(let e=t.length-1;e>=0;--e)this._drawDataset(t[e]);this.notifyPlugins(\"afterDatasetsDraw\")}_drawDataset(t){const e=this.ctx,i={meta:t,index:t.index,cancelable:!0},s=Ni(this,t);!1!==this.notifyPlugins(\"beforeDatasetDraw\",i)&&(s&&Ie(e,s),t.controller.draw(),s&&ze(e),i.cancelable=!1,this.notifyPlugins(\"afterDatasetDraw\",i))}isPointInArea(t){return Re(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,s){const n=Ki.modes[e];return\"function\"==typeof n?n(this,t,i,s):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s=i.filter((t=>t&&t._dataset===e)).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Ci(null,{chart:this,type:\"chart\"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return\"boolean\"==typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?\"show\":\"hide\",n=this.getDatasetMeta(t),o=n.controller._resolveAnimations(void 0,s);k(e)?(n.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),o.update(n,{visible:i}),this.update((e=>e.datasetIndex===t?s:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),bt.remove(this),t=0,e=this.data.datasets.length;t\u003Ce;++t)this._destroyDatasetMeta(t)}destroy(){this.notifyPlugins(\"beforeDestroy\");const{canvas:t,ctx:e}=this;this._stop(),this.config.clearCache(),t&&(this.unbindEvents(),Te(t,e),this.platform.releaseContext(e),this.canvas=null,this.ctx=null),delete Cn[this.id],this.notifyPlugins(\"afterDestroy\")}toBase64Image(...t){return this.canvas.toDataURL(...t)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const t=this._listeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};u(this.options.events,(t=>i(t,s)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(i,s)=>{t[i]&&(e.removeEventListener(this,i,s),delete t[i])},n=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const a=()=>{s(\"attach\",a),this.attached=!0,this.resize(),i(\"resize\",n),i(\"detach\",o)};o=()=>{this.attached=!1,s(\"resize\",n),this._stop(),this._resize(0,0),i(\"attach\",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){u(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},u(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const s=i?\"set\":\"remove\";let n,o,a,r;for(\"dataset\"===e&&(n=this.getDatasetMeta(t[0].datasetIndex),n.controller[\"_\"+s+\"DatasetHoverStyle\"]()),a=0,r=t.length;a\u003Cr;++a){o=t[a];const e=o&&this.getDatasetMeta(o.datasetIndex).controller;e&&e[s+\"HoverStyle\"](o.element,o.datasetIndex,o.index)}}getActiveElements(){return this._active||[]}setActiveElements(t){const e=this._active||[],i=t.map((({datasetIndex:t,index:e})=>{const i=this.getDatasetMeta(t);if(!i)throw new Error(\"No dataset found at index \"+t);return{datasetIndex:t,element:i.data[e],index:e}}));!f(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin.id===t)).length}_updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=n(e,t),a=i?t:n(t,e);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},s=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins(\"beforeEvent\",i,s))return;const n=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins(\"afterEvent\",i,s),(n||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:n}=this,o=e,a=this._getActiveElements(t,s,i,o),r=D(t),l=function(t,e,i,s){return i&&\"mouseout\"!==t.type?s?e:t:null}(t,this._lastEvent,i,r);i&&(this._lastEvent=null,d(n.onHover,[t,a,this],this),r&&d(n.onClick,[t,a,this],this));const h=!f(a,s);return(h||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,h}_getActiveElements(t,e,i,s){if(\"mouseout\"===t.type)return[];if(!i)return e;const n=this.options.hover;return this.getElementsAtEventForMode(t,n.mode,n,s)}}function Ln(){return u(Tn.instances,(t=>t._plugins.invalidate()))}function En(){throw new Error(\"This method is not implemented: Check that a complete date adapter is provided.\")}class Rn{static override(t){Object.assign(Rn.prototype,t)}options;constructor(t){this.options=t||{}}init(){}formats(){return En()}parse(){return En()}format(){return En()}add(){return En()}diff(){return En()}startOf(){return En()}endOf(){return En()}}var In={_date:Rn};function zn(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let s=[];for(let e=0,n=i.length;e\u003Cn;e++)s=s.concat(i[e].controller.getAllParsedValues(t));t._cache.$bar=lt(s.sort(((t,e)=>t-e)))}return t._cache.$bar}(e,t.type);let s,n,o,a,r=e._length;const l=()=>{32767!==o&&-32768!==o&&(k(a)&&(r=Math.min(r,Math.abs(o-a)||r)),a=o)};for(s=0,n=i.length;s\u003Cn;++s)o=e.getPixelForValue(i[s]),l();for(a=void 0,s=0,n=e.ticks.length;s\u003Cn;++s)o=e.getPixelForTick(s),l();return r}function Fn(t,e,i,s){return n(t)?function(t,e,i,s){const n=i.parse(t[0],s),o=i.parse(t[1],s),a=Math.min(n,o),r=Math.max(n,o);let l=a,h=r;Math.abs(a)>Math.abs(r)&&(l=r,h=a),e[i.axis]=h,e._custom={barStart:l,barEnd:h,start:n,end:o,min:a,max:r}}(t,e,i,s):e[i.axis]=i.parse(t,s),e}function Vn(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o,l=[];let h,c,d,u;for(h=i,c=i+s;h\u003Cc;++h)u=e[h],d={},d[n.axis]=r||n.parse(a[h],h),l.push(Fn(u,d,o,h));return l}function Bn(t){return t&&void 0!==t.barStart&&void 0!==t.barEnd}function Wn(t,e,i,s){let n=e.borderSkipped;const o={};if(!n)return void(t.borderSkipped=o);if(!0===n)return void(t.borderSkipped={top:!0,right:!0,bottom:!0,left:!0});const{start:a,end:r,reverse:l,top:h,bottom:c}=function(t){let e,i,s,n,o;return t.horizontal?(e=t.base>t.x,i=\"left\",s=\"right\"):(e=t.base\u003Ct.y,i=\"bottom\",s=\"top\"),e?(n=\"end\",o=\"start\"):(n=\"start\",o=\"end\"),{start:i,end:s,reverse:e,top:n,bottom:o}}(t);\"middle\"===n&&i&&(t.enableBorderRadius=!0,(i._top||0)===s?n=h:(i._bottom||0)===s?n=c:(o[Nn(c,a,r,l)]=!0,n=h)),o[Nn(n,a,r,l)]=!0,t.borderSkipped=o}function Nn(t,e,i,s){var n,o,a;return s?(a=i,t=Hn(t=(n=t)===(o=e)?a:n===a?o:n,i,e)):t=Hn(t,e,i),t}function Hn(t,e,i){return\"start\"===t?e:\"end\"===t?i:t}function jn(t,{inflateAmount:e},i){t.inflateAmount=\"auto\"===e?1===i?.33:0:e}class $n extends js{static id=\"doughnut\";static defaults={datasetElementType:!1,dataElementType:\"arc\",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:\"number\",properties:[\"circumference\",\"endAngle\",\"innerRadius\",\"outerRadius\",\"startAngle\",\"x\",\"y\",\"offset\",\"borderWidth\",\"spacing\"]}},cutout:\"50%\",rotation:0,circumference:360,radius:\"100%\",spacing:0,indexAxis:\"r\"};static descriptors={_scriptable:t=>\"spacing\"!==t,_indexable:t=>\"spacing\"!==t&&!t.startsWith(\"borderDash\")&&!t.startsWith(\"hoverBorderDash\")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data,{labels:{pointStyle:i,textAlign:s,color:n,useBorderRadius:o,borderRadius:a}}=t.legend.options;return e.labels.length&&e.datasets.length?e.labels.map(((e,r)=>{const l=t.getDatasetMeta(0).controller.getStyle(r);return{text:e,fillStyle:l.backgroundColor,fontColor:n,hidden:!t.getDataVisibility(r),lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:l.borderWidth,strokeStyle:l.borderColor,textAlign:s,pointStyle:i,borderRadius:o&&(a||l.borderRadius),index:r}})):[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}}};constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const i=this.getDataset().data,s=this._cachedMeta;if(!1===this._parsing)s._parsed=i;else{let n,a,r=t=>+i[t];if(o(i[t])){const{key:t=\"value\"}=this._parsing;r=e=>+M(i[e],t)}for(n=t,a=t+e;n\u003Ca;++n)s._parsed[n]=r(n)}}_getRotation(){return $(this.options.rotation-90)}_getCircumference(){return $(this.options.circumference)}_getRotationExtents(){let t=O,e=-O;for(let i=0;i\u003Cthis.chart.data.datasets.length;++i)if(this.chart.isDatasetVisible(i)&&this.chart.getDatasetMeta(i).type===this._type){const s=this.chart.getDatasetMeta(i).controller,n=s._getRotation(),o=s._getCircumference();t=Math.min(t,n),e=Math.max(e,n+o)}return{rotation:t,circumference:e-t}}update(t){const e=this.chart,{chartArea:i}=e,s=this._cachedMeta,n=s.data,o=this.getMaxBorderWidth()+this.getMaxOffset(n)+this.options.spacing,a=Math.max((Math.min(i.width,i.height)-o)\u002F2,0),r=Math.min(h(this.options.cutout,a),1),l=this._getRingWeight(this.index),{circumference:d,rotation:u}=this._getRotationExtents(),{ratioX:f,ratioY:g,offsetX:p,offsetY:m}=function(t,e,i){let s=1,n=1,o=0,a=0;if(e\u003CO){const r=t,l=r+e,h=Math.cos(r),c=Math.sin(r),d=Math.cos(l),u=Math.sin(l),f=(t,e,s)=>J(t,r,l,!0)?1:Math.max(e,e*i,s,s*i),g=(t,e,s)=>J(t,r,l,!0)?-1:Math.min(e,e*i,s,s*i),p=f(0,h,d),m=f(E,c,u),x=g(C,h,d),b=g(C+E,c,u);s=(p-x)\u002F2,n=(m-b)\u002F2,o=-(p+x)\u002F2,a=-(m+b)\u002F2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}(u,d,r),x=(i.width-o)\u002Ff,b=(i.height-o)\u002Fg,_=Math.max(Math.min(x,b)\u002F2,0),y=c(this.options.radius,_),v=(y-Math.max(y*r,0))\u002Fthis._getVisibleDatasetWeightTotal();this.offsetX=p*y,this.offsetY=m*y,s.total=this.calculateTotal(),this.outerRadius=y-v*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-v*l,0),this.updateElements(n,0,n.length,t)}_circumference(t,e){const i=this.options,s=this._cachedMeta,n=this._getCircumference();return e&&i.animation.animateRotate||!this.chart.getDataVisibility(t)||null===s._parsed[t]||s.data[t].hidden?0:this.calculateCircumference(s._parsed[t]*n\u002FO)}updateElements(t,e,i,s){const n=\"reset\"===s,o=this.chart,a=o.chartArea,r=o.options.animation,l=(a.left+a.right)\u002F2,h=(a.top+a.bottom)\u002F2,c=n&&r.animateScale,d=c?0:this.innerRadius,u=c?0:this.outerRadius,{sharedOptions:f,includeOptions:g}=this._getSharedOptions(e,s);let p,m=this._getRotation();for(p=0;p\u003Ce;++p)m+=this._circumference(p,n);for(p=e;p\u003Ce+i;++p){const e=this._circumference(p,n),i=t[p],o={x:l+this.offsetX,y:h+this.offsetY,startAngle:m,endAngle:m+e,circumference:e,outerRadius:u,innerRadius:d};g&&(o.options=f||this.resolveDataElementOptions(p,i.active?\"active\":s)),m+=e,this.updateElement(i,p,o,s)}}calculateTotal(){const t=this._cachedMeta,e=t.data;let i,s=0;for(i=0;i\u003Ce.length;i++){const n=t._parsed[i];null===n||isNaN(n)||!this.chart.getDataVisibility(i)||e[i].hidden||(s+=Math.abs(n))}return s}calculateCircumference(t){const e=this._cachedMeta.total;return e>0&&!isNaN(t)?O*(Math.abs(t)\u002Fe):0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t],i.options.locale);return{label:s[t]||\"\",value:n}}getMaxBorderWidth(t){let e=0;const i=this.chart;let s,n,o,a,r;if(!t)for(s=0,n=i.data.datasets.length;s\u003Cn;++s)if(i.isDatasetVisible(s)){o=i.getDatasetMeta(s),t=o.data,a=o.controller;break}if(!t)return 0;for(s=0,n=t.length;s\u003Cn;++s)r=a.resolveDataElementOptions(s),\"inner\"!==r.borderAlign&&(e=Math.max(e,r.borderWidth||0,r.hoverBorderWidth||0));return e}getMaxOffset(t){let e=0;for(let i=0,s=t.length;i\u003Cs;++i){const t=this.resolveDataElementOptions(i);e=Math.max(e,t.offset||0,t.hoverOffset||0)}return e}_getRingWeightOffset(t){let e=0;for(let i=0;i\u003Ct;++i)this.chart.isDatasetVisible(i)&&(e+=this._getRingWeight(i));return e}_getRingWeight(t){return Math.max(l(this.chart.data.datasets[t].weight,1),0)}_getVisibleDatasetWeightTotal(){return this._getRingWeightOffset(this.chart.data.datasets.length)||1}}class Yn extends js{static id=\"polarArea\";static defaults={dataElementType:\"arc\",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:\"number\",properties:[\"x\",\"y\",\"startAngle\",\"endAngle\",\"innerRadius\",\"outerRadius\"]}},indexAxis:\"r\",startAngle:0};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i,color:s}}=t.legend.options;return e.labels.map(((e,n)=>{const o=t.getDatasetMeta(0).controller.getStyle(n);return{text:e,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,fontColor:s,lineWidth:o.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(n),index:n}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}},scales:{r:{type:\"radialLinear\",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t].r,i.options.locale);return{label:s[t]||\"\",value:n}}parseObjectData(t,e,i,s){return ii.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach(((t,i)=>{const s=this.getParsed(i).r;!isNaN(s)&&this.chart.getDataVisibility(i)&&(s\u003Ce.min&&(e.min=s),s>e.max&&(e.max=s))})),e}_updateRadius(){const t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),n=Math.max(s\u002F2,0),o=(n-Math.max(i.cutoutPercentage?n\u002F100*i.cutoutPercentage:1,0))\u002Ft.getVisibleDatasetCount();this.outerRadius=n-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){const n=\"reset\"===s,o=this.chart,a=o.options.animation,r=this._cachedMeta.rScale,l=r.xCenter,h=r.yCenter,c=r.getIndexAngle(0)-.5*C;let d,u=c;const f=360\u002Fthis.countVisibleElements();for(d=0;d\u003Ce;++d)u+=this._computeAngle(d,s,f);for(d=e;d\u003Ce+i;d++){const e=t[d];let i=u,g=u+this._computeAngle(d,s,f),p=o.getDataVisibility(d)?r.getDistanceFromCenterForValue(this.getParsed(d).r):0;u=g,n&&(a.animateScale&&(p=0),a.animateRotate&&(i=g=c));const m={x:l,y:h,innerRadius:0,outerRadius:p,startAngle:i,endAngle:g,options:this.resolveDataElementOptions(d,e.active?\"active\":s)};this.updateElement(e,d,m,s)}}countVisibleElements(){const t=this._cachedMeta;let e=0;return t.data.forEach(((t,i)=>{!isNaN(this.getParsed(i).r)&&this.chart.getDataVisibility(i)&&e++})),e}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?$(this.resolveDataElementOptions(t,e).angle||i):0}}var Un=Object.freeze({__proto__:null,BarController:class extends js{static id=\"bar\";static defaults={datasetElementType:!1,dataElementType:\"bar\",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:\"number\",properties:[\"x\",\"y\",\"base\",\"width\",\"height\"]}}};static overrides={scales:{_index_:{type:\"category\",offset:!0,grid:{offset:!0}},_value_:{type:\"linear\",beginAtZero:!0}}};parsePrimitiveData(t,e,i,s){return Vn(t,e,i,s)}parseArrayData(t,e,i,s){return Vn(t,e,i,s)}parseObjectData(t,e,i,s){const{iScale:n,vScale:o}=t,{xAxisKey:a=\"x\",yAxisKey:r=\"y\"}=this._parsing,l=\"x\"===n.axis?a:r,h=\"x\"===o.axis?a:r,c=[];let d,u,f,g;for(d=i,u=i+s;d\u003Cu;++d)g=e[d],f={},f[n.axis]=n.parse(M(g,l),d),c.push(Fn(M(g,h),f,o,d));return c}updateRangeFromParsed(t,e,i,s){super.updateRangeFromParsed(t,e,i,s);const n=i._custom;n&&e===this._cachedMeta.vScale&&(t.min=Math.min(t.min,n.min),t.max=Math.max(t.max,n.max))}getMaxOverflow(){return 0}getLabelAndValue(t){const e=this._cachedMeta,{iScale:i,vScale:s}=e,n=this.getParsed(t),o=n._custom,a=Bn(o)?\"[\"+o.start+\", \"+o.end+\"]\":\"\"+s.getLabelForValue(n[s.axis]);return{label:\"\"+i.getLabelForValue(n[i.axis]),value:a}}initialize(){this.enableOptionSharing=!0,super.initialize();this._cachedMeta.stack=this.getDataset().stack}update(t){const e=this._cachedMeta;this.updateElements(e.data,0,e.data.length,t)}updateElements(t,e,i,n){const o=\"reset\"===n,{index:a,_cachedMeta:{vScale:r}}=this,l=r.getBasePixel(),h=r.isHorizontal(),c=this._getRuler(),{sharedOptions:d,includeOptions:u}=this._getSharedOptions(e,n);for(let f=e;f\u003Ce+i;f++){const e=this.getParsed(f),i=o||s(e[r.axis])?{base:l,head:l}:this._calculateBarValuePixels(f),g=this._calculateBarIndexPixels(f,c),p=(e._stacks||{})[r.axis],m={horizontal:h,base:i.base,enableBorderRadius:!p||Bn(e._custom)||a===p._top||a===p._bottom,x:h?i.head:g.center,y:h?g.center:i.head,height:h?g.size:Math.abs(i.size),width:h?Math.abs(i.size):g.size};u&&(m.options=d||this.resolveDataElementOptions(f,t[f].active?\"active\":n));const x=m.options||t[f].options;Wn(m,x,p,a),jn(m,x,c.ratio),this.updateElement(t[f],f,m,n)}}_getStacks(t,e){const{iScale:i}=this._cachedMeta,n=i.getMatchingVisibleMetas(this._type).filter((t=>t.controller.options.grouped)),o=i.options.stacked,a=[],r=this._cachedMeta.controller.getParsed(e),l=r&&r[i.axis],h=t=>{const e=t._parsed.find((t=>t[i.axis]===l)),n=e&&e[t.vScale.axis];if(s(n)||isNaN(n))return!0};for(const i of n)if((void 0===e||!h(i))&&((!1===o||-1===a.indexOf(i.stack)||void 0===o&&void 0===i.stack)&&a.push(i.stack),i.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getAxisCount(){return this._getAxis().length}getFirstScaleIdForIndexAxis(){const t=this.chart.scales,e=this.chart.options.indexAxis;return Object.keys(t).filter((i=>t[i].axis===e)).shift()}_getAxis(){const t={},e=this.getFirstScaleIdForIndexAxis();for(const i of this.chart.data.datasets)t[l(\"x\"===this.chart.options.indexAxis?i.xAxisID:i.yAxisID,e)]=!0;return Object.keys(t)}_getStackIndex(t,e,i){const s=this._getStacks(t,i),n=void 0!==e?s.indexOf(e):-1;return-1===n?s.length-1:n}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,s=[];let n,o;for(n=0,o=e.data.length;n\u003Co;++n)s.push(i.getPixelForValue(this.getParsed(n)[i.axis],n));const a=t.barThickness;return{min:a||zn(e),pixels:s,start:i._startPixel,end:i._endPixel,stackCount:this._getStackCount(),scale:i,grouped:t.grouped,ratio:a?1:t.categoryPercentage*t.barPercentage}}_calculateBarValuePixels(t){const{_cachedMeta:{vScale:e,_stacked:i,index:n},options:{base:o,minBarLength:a}}=this,r=o||0,l=this.getParsed(t),h=l._custom,c=Bn(h);let d,u,f=l[e.axis],g=0,p=i?this.applyStack(e,l,i):f;p!==f&&(g=p-f,p=f),c&&(f=h.barStart,p=h.barEnd-h.barStart,0!==f&&F(f)!==F(h.barEnd)&&(g=0),g+=f);const m=s(o)||c?g:o;let x=e.getPixelForValue(m);if(d=this.chart.getDataVisibility(t)?e.getPixelForValue(g+p):x,u=d-x,Math.abs(u)\u003Ca){u=function(t,e,i){return 0!==t?F(t):(e.isHorizontal()?1:-1)*(e.min>=i?1:-1)}(u,e,r)*a,f===r&&(x-=u\u002F2);const t=e.getPixelForDecimal(0),s=e.getPixelForDecimal(1),o=Math.min(t,s),h=Math.max(t,s);x=Math.max(Math.min(x,h),o),d=x+u,i&&!c&&(l._stacks[e.axis]._visualValues[n]=e.getValueForPixel(d)-e.getValueForPixel(x))}if(x===e.getPixelForValue(r)){const t=F(u)*e.getLineWidthForValue(r)\u002F2;x+=t,u-=t}return{size:u,base:x,head:d,center:d+u\u002F2}}_calculateBarIndexPixels(t,e){const i=e.scale,n=this.options,o=n.skipNull,a=l(n.maxBarThickness,1\u002F0);let r,h;const c=this._getAxisCount();if(e.grouped){const i=o?this._getStackCount(t):e.stackCount,d=\"flex\"===n.barThickness?function(t,e,i,s){const n=e.pixels,o=n[t];let a=t>0?n[t-1]:null,r=t\u003Cn.length-1?n[t+1]:null;const l=i.categoryPercentage;null===a&&(a=o-(null===r?e.end-e.start:r-o)),null===r&&(r=o+o-a);const h=o-(o-Math.min(a,r))\u002F2*l;return{chunk:Math.abs(r-a)\u002F2*l\u002Fs,ratio:i.barPercentage,start:h}}(t,e,n,i*c):function(t,e,i,n){const o=i.barThickness;let a,r;return s(o)?(a=e.min*i.categoryPercentage,r=i.barPercentage):(a=o*n,r=1),{chunk:a\u002Fn,ratio:r,start:e.pixels[t]-a\u002F2}}(t,e,n,i*c),u=\"x\"===this.chart.options.indexAxis?this.getDataset().xAxisID:this.getDataset().yAxisID,f=this._getAxis().indexOf(l(u,this.getFirstScaleIdForIndexAxis())),g=this._getStackIndex(this.index,this._cachedMeta.stack,o?t:void 0)+f;r=d.start+d.chunk*g+d.chunk\u002F2,h=Math.min(a,d.chunk*d.ratio)}else r=i.getPixelForValue(this.getParsed(t)[i.axis],t),h=Math.min(a,e.min*e.ratio);return{base:r-h\u002F2,head:r+h\u002F2,center:r,size:h}}draw(){const t=this._cachedMeta,e=t.vScale,i=t.data,s=i.length;let n=0;for(;n\u003Cs;++n)null===this.getParsed(n)[e.axis]||i[n].hidden||i[n].draw(this._ctx)}},BubbleController:class extends js{static id=\"bubble\";static defaults={datasetElementType:!1,dataElementType:\"point\",animations:{numbers:{type:\"number\",properties:[\"x\",\"y\",\"borderWidth\",\"radius\"]}}};static overrides={scales:{x:{type:\"linear\"},y:{type:\"linear\"}}};initialize(){this.enableOptionSharing=!0,super.initialize()}parsePrimitiveData(t,e,i,s){const n=super.parsePrimitiveData(t,e,i,s);for(let t=0;t\u003Cn.length;t++)n[t]._custom=this.resolveDataElementOptions(t+i).radius;return n}parseArrayData(t,e,i,s){const n=super.parseArrayData(t,e,i,s);for(let t=0;t\u003Cn.length;t++){const s=e[i+t];n[t]._custom=l(s[2],this.resolveDataElementOptions(t+i).radius)}return n}parseObjectData(t,e,i,s){const n=super.parseObjectData(t,e,i,s);for(let t=0;t\u003Cn.length;t++){const s=e[i+t];n[t]._custom=l(s&&s.r&&+s.r,this.resolveDataElementOptions(t+i).radius)}return n}getMaxOverflow(){const t=this._cachedMeta.data;let e=0;for(let i=t.length-1;i>=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))\u002F2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart.data.labels||[],{xScale:s,yScale:n}=e,o=this.getParsed(t),a=s.getLabelForValue(o.x),r=n.getLabelForValue(o.y),l=o._custom;return{label:i[t]||\"\",value:\"(\"+a+\", \"+r+(l?\", \"+l:\"\")+\")\"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){const n=\"reset\"===s,{iScale:o,vScale:a}=this._cachedMeta,{sharedOptions:r,includeOptions:l}=this._getSharedOptions(e,s),h=o.axis,c=a.axis;for(let d=e;d\u003Ce+i;d++){const e=t[d],i=!n&&this.getParsed(d),u={},f=u[h]=n?o.getPixelForDecimal(.5):o.getPixelForValue(i[h]),g=u[c]=n?a.getBasePixel():a.getPixelForValue(i[c]);u.skip=isNaN(f)||isNaN(g),l&&(u.options=r||this.resolveDataElementOptions(d,e.active?\"active\":s),n&&(u.options.radius=0)),this.updateElement(e,d,u,s)}}resolveDataElementOptions(t,e){const i=this.getParsed(t);let s=super.resolveDataElementOptions(t,e);s.$shared&&(s=Object.assign({},s,{$shared:!1}));const n=s.radius;return\"active\"!==e&&(s.radius=0),s.radius+=l(i&&i._custom,n),s}},DoughnutController:$n,LineController:class extends js{static id=\"line\";static defaults={datasetElementType:\"line\",dataElementType:\"point\",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:\"category\"},_value_:{type:\"linear\"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:i,data:s=[],_dataset:n}=e,o=this.chart._animationsDisabled;let{start:a,count:r}=pt(e,s,o);this._drawStart=a,this._drawCount=r,mt(e)&&(a=0,r=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!n._decimated,i.points=s;const l=this.resolveDatasetElementOptions(t);this.options.showLine||(l.borderWidth=0),l.segment=this.options.segment,this.updateElement(i,void 0,{animated:!o,options:l},t),this.updateElements(s,a,r,t)}updateElements(t,e,i,n){const o=\"reset\"===n,{iScale:a,vScale:r,_stacked:l,_dataset:h}=this._cachedMeta,{sharedOptions:c,includeOptions:d}=this._getSharedOptions(e,n),u=a.axis,f=r.axis,{spanGaps:g,segment:p}=this.options,m=N(g)?g:Number.POSITIVE_INFINITY,x=this.chart._animationsDisabled||o||\"none\"===n,b=e+i,_=t.length;let y=e>0&&this.getParsed(e-1);for(let i=0;i\u003C_;++i){const g=t[i],_=x?g:{};if(i\u003Ce||i>=b){_.skip=!0;continue}const v=this.getParsed(i),M=s(v[f]),w=_[u]=a.getPixelForValue(v[u],i),k=_[f]=o||M?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,v,l):v[f],i);_.skip=isNaN(w)||isNaN(k)||M,_.stop=i>0&&Math.abs(v[u]-y[u])>m,p&&(_.parsed=v,_.raw=h.data[i]),d&&(_.options=c||this.resolveDataElementOptions(i,g.active?\"active\":n)),x||this.updateElement(g,i,_,n),y=v}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const n=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,n,o)\u002F2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}},PieController:class extends $n{static id=\"pie\";static defaults={cutout:0,rotation:0,circumference:360,radius:\"100%\"}},PolarAreaController:Yn,RadarController:class extends js{static id=\"radar\";static defaults={datasetElementType:\"line\",dataElementType:\"point\",indexAxis:\"r\",showLine:!0,elements:{line:{fill:\"start\"}}};static overrides={aspectRatio:1,scales:{r:{type:\"radialLinear\"}}};getLabelAndValue(t){const e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:\"\"+e.getLabelForValue(i[e.axis])}}parseObjectData(t,e,i,s){return ii.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta,i=e.dataset,s=e.data||[],n=e.iScale.getLabels();if(i.points=s,\"resize\"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const o={_loop:!0,_fullLoop:n.length===s.length,options:e};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){const n=this._cachedMeta.rScale,o=\"reset\"===s;for(let a=e;a\u003Ce+i;a++){const e=t[a],i=this.resolveDataElementOptions(a,e.active?\"active\":s),r=n.getPointPositionForValue(a,this.getParsed(a).r),l=o?n.xCenter:r.x,h=o?n.yCenter:r.y,c={x:l,y:h,angle:r.angle,skip:isNaN(l)||isNaN(h),options:i};this.updateElement(e,a,c,s)}}},ScatterController:class extends js{static id=\"scatter\";static defaults={datasetElementType:!1,dataElementType:\"point\",showLine:!1,fill:!1};static overrides={interaction:{mode:\"point\"},scales:{x:{type:\"linear\"},y:{type:\"linear\"}}};getLabelAndValue(t){const e=this._cachedMeta,i=this.chart.data.labels||[],{xScale:s,yScale:n}=e,o=this.getParsed(t),a=s.getLabelForValue(o.x),r=n.getLabelForValue(o.y);return{label:i[t]||\"\",value:\"(\"+a+\", \"+r+\")\"}}update(t){const e=this._cachedMeta,{data:i=[]}=e,s=this.chart._animationsDisabled;let{start:n,count:o}=pt(e,i,s);if(this._drawStart=n,this._drawCount=o,mt(e)&&(n=0,o=i.length),this.options.showLine){this.datasetElementType||this.addElements();const{dataset:n,_dataset:o}=e;n._chart=this.chart,n._datasetIndex=this.index,n._decimated=!!o._decimated,n.points=i;const a=this.resolveDatasetElementOptions(t);a.segment=this.options.segment,this.updateElement(n,void 0,{animated:!s,options:a},t)}else this.datasetElementType&&(delete e.dataset,this.datasetElementType=!1);this.updateElements(i,n,o,t)}addElements(){const{showLine:t}=this.options;!this.datasetElementType&&t&&(this.datasetElementType=this.chart.registry.getElement(\"line\")),super.addElements()}updateElements(t,e,i,n){const o=\"reset\"===n,{iScale:a,vScale:r,_stacked:l,_dataset:h}=this._cachedMeta,c=this.resolveDataElementOptions(e,n),d=this.getSharedOptions(c),u=this.includeOptions(n,d),f=a.axis,g=r.axis,{spanGaps:p,segment:m}=this.options,x=N(p)?p:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||\"none\"===n;let _=e>0&&this.getParsed(e-1);for(let c=e;c\u003Ce+i;++c){const e=t[c],i=this.getParsed(c),p=b?e:{},y=s(i[g]),v=p[f]=a.getPixelForValue(i[f],c),M=p[g]=o||y?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,i,l):i[g],c);p.skip=isNaN(v)||isNaN(M)||y,p.stop=c>0&&Math.abs(i[f]-_[f])>x,m&&(p.parsed=i,p.raw=h.data[c]),u&&(p.options=d||this.resolveDataElementOptions(c,e.active?\"active\":n)),b||this.updateElement(e,c,p,n),_=i}this.updateSharedOptions(d,n,c)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let t=0;for(let i=e.length-1;i>=0;--i)t=Math.max(t,e[i].size(this.resolveDataElementOptions(i))\u002F2);return t>0&&t}const i=t.dataset,s=i.options&&i.options.borderWidth||0;if(!e.length)return s;const n=e[0].size(this.resolveDataElementOptions(0)),o=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(s,n,o)\u002F2}}});function Xn(t,e,i,s){const n=vi(t.options.borderRadius,[\"outerStart\",\"outerEnd\",\"innerStart\",\"innerEnd\"]);const o=(i-e)\u002F2,a=Math.min(o,s*e\u002F2),r=t=>{const e=(i-Math.min(o,t))*s\u002F2;return Z(t,0,Math.min(o,e))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:Z(n.innerStart,0,a),innerEnd:Z(n.innerEnd,0,a)}}function qn(t,e,i,s){return{x:i+t*Math.cos(e),y:s+t*Math.sin(e)}}function Kn(t,e,i,s,n,o){const{x:a,y:r,startAngle:l,pixelMargin:h,innerRadius:c}=e,d=Math.max(e.outerRadius+s+i-h,0),u=c>0?c+s+i+h:0;let f=0;const g=n-l;if(s){const t=((c>0?c-s:0)+(d>0?d-s:0))\u002F2;f=(g-(0!==t?g*t\u002F(t+s):g))\u002F2}const p=(g-Math.max(.001,g*d-i\u002FC)\u002Fd)\u002F2,m=l+p+f,x=n-p-f,{outerStart:b,outerEnd:_,innerStart:y,innerEnd:v}=Xn(e,u,d,x-m),M=d-b,w=d-_,k=m+b\u002FM,S=x-_\u002Fw,P=u+y,D=u+v,O=m+y\u002FP,A=x-v\u002FD;if(t.beginPath(),o){const e=(k+S)\u002F2;if(t.arc(a,r,d,k,e),t.arc(a,r,d,e,S),_>0){const e=qn(w,S,a,r);t.arc(e.x,e.y,_,S,x+E)}const i=qn(D,x,a,r);if(t.lineTo(i.x,i.y),v>0){const e=qn(D,A,a,r);t.arc(e.x,e.y,v,x+E,A+Math.PI)}const s=(x-v\u002Fu+(m+y\u002Fu))\u002F2;if(t.arc(a,r,u,x-v\u002Fu,s,!0),t.arc(a,r,u,s,m+y\u002Fu,!0),y>0){const e=qn(P,O,a,r);t.arc(e.x,e.y,y,O+Math.PI,m-E)}const n=qn(M,m,a,r);if(t.lineTo(n.x,n.y),b>0){const e=qn(M,k,a,r);t.arc(e.x,e.y,b,m-E,k)}}else{t.moveTo(a,r);const e=Math.cos(k)*d+a,i=Math.sin(k)*d+r;t.lineTo(e,i);const s=Math.cos(S)*d+a,n=Math.sin(S)*d+r;t.lineTo(s,n)}t.closePath()}function Gn(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r,options:l}=e,{borderWidth:h,borderJoinStyle:c,borderDash:d,borderDashOffset:u,borderRadius:f}=l,g=\"inner\"===l.borderAlign;if(!h)return;t.setLineDash(d||[]),t.lineDashOffset=u,g?(t.lineWidth=2*h,t.lineJoin=c||\"round\"):(t.lineWidth=h,t.lineJoin=c||\"bevel\");let p=e.endAngle;if(o){Kn(t,e,i,s,p,n);for(let e=0;e\u003Co;++e)t.stroke();isNaN(r)||(p=a+(r%O||O))}g&&function(t,e,i){const{startAngle:s,pixelMargin:n,x:o,y:a,outerRadius:r,innerRadius:l}=e;let h=n\u002Fr;t.beginPath(),t.arc(o,a,r,s-h,i+h),l>n?(h=n\u002Fl,t.arc(o,a,l,i+h,s-h,!0)):t.arc(o,a,n,i+E,s-E),t.closePath(),t.clip()}(t,e,p),l.selfJoin&&p-a>=C&&0===f&&\"miter\"!==c&&function(t,e,i){const{startAngle:s,x:n,y:o,outerRadius:a,innerRadius:r,options:l}=e,{borderWidth:h,borderJoinStyle:c}=l,d=Math.min(h\u002Fa,G(s-i));if(t.beginPath(),t.arc(n,o,a-h\u002F2,s+d\u002F2,i-d\u002F2),r>0){const e=Math.min(h\u002Fr,G(s-i));t.arc(n,o,r+h\u002F2,i-e\u002F2,s+e\u002F2,!0)}else{const e=Math.min(h\u002F2,a*G(s-i));if(\"round\"===c)t.arc(n,o,e,i-C\u002F2,s+C\u002F2,!0);else if(\"bevel\"===c){const a=2*e*e,r=-a*Math.cos(i+C\u002F2)+n,l=-a*Math.sin(i+C\u002F2)+o,h=a*Math.cos(s+C\u002F2)+n,c=a*Math.sin(s+C\u002F2)+o;t.lineTo(r,l),t.lineTo(h,c)}}t.closePath(),t.moveTo(0,0),t.rect(0,0,t.canvas.width,t.canvas.height),t.clip(\"evenodd\")}(t,e,p),o||(Kn(t,e,i,s,p,n),t.stroke())}function Jn(t,e,i=e){t.lineCap=l(i.borderCapStyle,e.borderCapStyle),t.setLineDash(l(i.borderDash,e.borderDash)),t.lineDashOffset=l(i.borderDashOffset,e.borderDashOffset),t.lineJoin=l(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=l(i.borderWidth,e.borderWidth),t.strokeStyle=l(i.borderColor,e.borderColor)}function Zn(t,e,i){t.lineTo(i.x,i.y)}function Qn(t,e,i={}){const s=t.length,{start:n=0,end:o=s-1}=i,{start:a,end:r}=e,l=Math.max(n,a),h=Math.min(o,r),c=n\u003Ca&&o\u003Ca||n>r&&o>r;return{count:s,start:l,loop:e.loop,ilen:h\u003Cl&&!c?s+h-l:h-l}}function to(t,e,i,s){const{points:n,options:o}=e,{count:a,start:r,loop:l,ilen:h}=Qn(n,i,s),c=function(t){return t.stepped?Fe:t.tension||\"monotone\"===t.cubicInterpolationMode?Ve:Zn}(o);let d,u,f,{move:g=!0,reverse:p}=s||{};for(d=0;d\u003C=h;++d)u=n[(r+(p?h-d:d))%a],u.skip||(g?(t.moveTo(u.x,u.y),g=!1):c(t,f,u,p,o.stepped),f=u);return l&&(u=n[(r+(p?h:0))%a],c(t,f,u,p,o.stepped)),!!l}function eo(t,e,i,s){const n=e.points,{count:o,start:a,ilen:r}=Qn(n,i,s),{move:l=!0,reverse:h}=s||{};let c,d,u,f,g,p,m=0,x=0;const b=t=>(a+(h?r-t:t))%o,_=()=>{f!==g&&(t.lineTo(m,g),t.lineTo(m,f),t.lineTo(m,p))};for(l&&(d=n[b(0)],t.moveTo(d.x,d.y)),c=0;c\u003C=r;++c){if(d=n[b(c)],d.skip)continue;const e=d.x,i=d.y,s=0|e;s===u?(i\u003Cf?f=i:i>g&&(g=i),m=(x*m+e)\u002F++x):(_(),t.lineTo(e,i),u=s,x=0,f=g=i),p=i}_()}function io(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||\"monotone\"===e.cubicInterpolationMode||e.stepped||i)?eo:to}const so=\"function\"==typeof Path2D;function no(t,e,i,s){so&&!e.options.segment?function(t,e,i,s){let n=e._path;n||(n=e._path=new Path2D,e.path(n,i,s)&&n.closePath()),Jn(t,e.options),t.stroke(n)}(t,e,i,s):function(t,e,i,s){const{segments:n,options:o}=e,a=io(e);for(const r of n)Jn(t,o,r.style),t.beginPath(),a(t,e,r,{start:i,end:i+s-1})&&t.closePath(),t.stroke()}(t,e,i,s)}class oo extends $s{static id=\"line\";static defaults={borderCapStyle:\"butt\",borderDash:[],borderDashOffset:0,borderJoinStyle:\"miter\",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:\"default\",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:\"backgroundColor\",borderColor:\"borderColor\"};static descriptors={_scriptable:!0,_indexable:t=>\"borderDash\"!==t&&\"fill\"!==t};constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||\"monotone\"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;hi(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=zi(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,s=t[e],n=this.points,o=Ii(this,{property:e,start:s,end:s});if(!o.length)return;const a=[],r=function(t){return t.stepped?pi:t.tension||\"monotone\"===t.cubicInterpolationMode?mi:gi}(i);let l,h;for(l=0,h=o.length;l\u003Ch;++l){const{start:h,end:c}=o[l],d=n[h],u=n[c];if(d===u){a.push(d);continue}const f=r(d,u,Math.abs((s-d[e])\u002F(u[e]-d[e])),i.stepped);f[e]=t[e],a.push(f)}return 1===a.length?a[0]:a}pathSegment(t,e,i){return io(this)(t,this,e,i)}path(t,e,i){const s=this.segments,n=io(this);let o=this._loop;e=e||0,i=i||this.points.length-e;for(const a of s)o&=n(t,this,a,{start:e,end:e+i-1});return!!o}draw(t,e,i,s){const n=this.options||{};(this.points||[]).length&&n.borderWidth&&(t.save(),no(t,this,i,s),t.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}function ao(t,e,i,s){const n=t.options,{[i]:o}=t.getProps([i],s);return Math.abs(e-o)\u003Cn.radius+n.hitRadius}function ro(t,e){const{x:i,y:s,base:n,width:o,height:a}=t.getProps([\"x\",\"y\",\"base\",\"width\",\"height\"],e);let r,l,h,c,d;return t.horizontal?(d=a\u002F2,r=Math.min(i,n),l=Math.max(i,n),h=s-d,c=s+d):(d=o\u002F2,r=i-d,l=i+d,h=Math.min(s,n),c=Math.max(s,n)),{left:r,top:h,right:l,bottom:c}}function lo(t,e,i,s){return t?0:Z(e,i,s)}function ho(t){const e=ro(t),i=e.right-e.left,s=e.bottom-e.top,n=function(t,e,i){const s=t.options.borderWidth,n=t.borderSkipped,o=Mi(s);return{t:lo(n.top,o.top,0,i),r:lo(n.right,o.right,0,e),b:lo(n.bottom,o.bottom,0,i),l:lo(n.left,o.left,0,e)}}(t,i\u002F2,s\u002F2),a=function(t,e,i){const{enableBorderRadius:s}=t.getProps([\"enableBorderRadius\"]),n=t.options.borderRadius,a=wi(n),r=Math.min(e,i),l=t.borderSkipped,h=s||o(n);return{topLeft:lo(!h||l.top||l.left,a.topLeft,0,r),topRight:lo(!h||l.top||l.right,a.topRight,0,r),bottomLeft:lo(!h||l.bottom||l.left,a.bottomLeft,0,r),bottomRight:lo(!h||l.bottom||l.right,a.bottomRight,0,r)}}(t,i\u002F2,s\u002F2);return{outer:{x:e.left,y:e.top,w:i,h:s,radius:a},inner:{x:e.left+n.l,y:e.top+n.t,w:i-n.l-n.r,h:s-n.t-n.b,radius:{topLeft:Math.max(0,a.topLeft-Math.max(n.t,n.l)),topRight:Math.max(0,a.topRight-Math.max(n.t,n.r)),bottomLeft:Math.max(0,a.bottomLeft-Math.max(n.b,n.l)),bottomRight:Math.max(0,a.bottomRight-Math.max(n.b,n.r))}}}}function co(t,e,i,s){const n=null===e,o=null===i,a=t&&!(n&&o)&&ro(t,s);return a&&(n||tt(e,a.left,a.right))&&(o||tt(i,a.top,a.bottom))}function uo(t,e){t.rect(e.x,e.y,e.w,e.h)}function fo(t,e,i={}){const s=t.x!==i.x?-e:0,n=t.y!==i.y?-e:0,o=(t.x+t.w!==i.x+i.w?e:0)-s,a=(t.y+t.h!==i.y+i.h?e:0)-n;return{x:t.x+s,y:t.y+n,w:t.w+o,h:t.h+a,radius:t.radius}}var go=Object.freeze({__proto__:null,ArcElement:class extends $s{static id=\"arc\";static defaults={borderAlign:\"center\",borderColor:\"#fff\",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:\"backgroundColor\"};static descriptors={_scriptable:!0,_indexable:t=>\"borderDash\"!==t};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(t){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.getProps([\"x\",\"y\"],i),{angle:n,distance:o}=X(s,{x:t,y:e}),{startAngle:a,endAngle:r,innerRadius:h,outerRadius:c,circumference:d}=this.getProps([\"startAngle\",\"endAngle\",\"innerRadius\",\"outerRadius\",\"circumference\"],i),u=(this.options.spacing+this.options.borderWidth)\u002F2,f=l(d,r-a),g=J(n,a,r)&&a!==r,p=f>=O||g,m=tt(o,h+u,c+u);return p&&m}getCenterPoint(t){const{x:e,y:i,startAngle:s,endAngle:n,innerRadius:o,outerRadius:a}=this.getProps([\"x\",\"y\",\"startAngle\",\"endAngle\",\"innerRadius\",\"outerRadius\"],t),{offset:r,spacing:l}=this.options,h=(s+n)\u002F2,c=(o+a+l+r)\u002F2;return{x:e+Math.cos(h)*c,y:i+Math.sin(h)*c}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:i}=this,s=(e.offset||0)\u002F4,n=(e.spacing||0)\u002F2,o=e.circular;if(this.pixelMargin=\"inner\"===e.borderAlign?.33:0,this.fullCircles=i>O?Math.floor(i\u002FO):0,0===i||this.innerRadius\u003C0||this.outerRadius\u003C0)return;t.save();const a=(this.startAngle+this.endAngle)\u002F2;t.translate(Math.cos(a)*s,Math.sin(a)*s);const r=s*(1-Math.sin(Math.min(C,i||0)));t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor,function(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r}=e;let l=e.endAngle;if(o){Kn(t,e,i,s,l,n);for(let e=0;e\u003Co;++e)t.fill();isNaN(r)||(l=a+(r%O||O))}Kn(t,e,i,s,l,n),t.fill()}(t,this,r,n,o),Gn(t,this,r,n,o),t.restore()}},BarElement:class extends $s{static id=\"bar\";static defaults={borderSkipped:\"start\",borderWidth:0,borderRadius:0,inflateAmount:\"auto\",pointStyle:void 0};static defaultRoutes={backgroundColor:\"backgroundColor\",borderColor:\"borderColor\"};constructor(t){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,t&&Object.assign(this,t)}draw(t){const{inflateAmount:e,options:{borderColor:i,backgroundColor:s}}=this,{inner:n,outer:o}=ho(this),a=(r=o.radius).topLeft||r.topRight||r.bottomLeft||r.bottomRight?He:uo;var r;t.save(),o.w===n.w&&o.h===n.h||(t.beginPath(),a(t,fo(o,e,n)),t.clip(),a(t,fo(n,-e,o)),t.fillStyle=i,t.fill(\"evenodd\")),t.beginPath(),a(t,fo(n,e)),t.fillStyle=s,t.fill(),t.restore()}inRange(t,e,i){return co(this,t,e,i)}inXRange(t,e){return co(this,t,null,e)}inYRange(t,e){return co(this,null,t,e)}getCenterPoint(t){const{x:e,y:i,base:s,horizontal:n}=this.getProps([\"x\",\"y\",\"base\",\"horizontal\"],t);return{x:n?(e+s)\u002F2:e,y:n?i:(i+s)\u002F2}}getRange(t){return\"x\"===t?this.width\u002F2:this.height\u002F2}},LineElement:oo,PointElement:class extends $s{static id=\"point\";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:\"circle\",radius:3,rotation:0};static defaultRoutes={backgroundColor:\"backgroundColor\",borderColor:\"borderColor\"};constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.options,{x:n,y:o}=this.getProps([\"x\",\"y\"],i);return Math.pow(t-n,2)+Math.pow(e-o,2)\u003CMath.pow(s.hitRadius+s.radius,2)}inXRange(t,e){return ao(this,t,\"x\",e)}inYRange(t,e){return ao(this,t,\"y\",e)}getCenterPoint(t){const{x:e,y:i}=this.getProps([\"x\",\"y\"],t);return{x:e,y:i}}size(t){let e=(t=t||this.options||{}).radius||0;e=Math.max(e,e&&t.hoverRadius||0);return 2*(e+(e&&t.borderWidth||0))}draw(t,e){const i=this.options;this.skip||i.radius\u003C.1||!Re(this,e,this.size(i)\u002F2)||(t.strokeStyle=i.borderColor,t.lineWidth=i.borderWidth,t.fillStyle=i.backgroundColor,Le(t,i,this.x,this.y))}getRange(){const t=this.options||{};return t.radius+t.hitRadius}}});function po(t,e,i,s){const n=t.indexOf(e);if(-1===n)return((t,e,i,s)=>(\"string\"==typeof e?(i=t.push(e)-1,s.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,s);return n!==t.lastIndexOf(e)?i:n}function mo(t){const e=this.getLabels();return t>=0&&t\u003Ce.length?e[t]:t}function xo(t,e,{horizontal:i,minRotation:s}){const n=$(s),o=(i?Math.sin(n):Math.cos(n))||.001,a=.75*e*(\"\"+t).length;return Math.min(e\u002Fo,a)}class bo extends tn{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,e){return s(t)||(\"number\"==typeof t||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:s,max:n}=this;const o=t=>s=e?s:t,a=t=>n=i?n:t;if(t){const t=F(s),e=F(n);t\u003C0&&e\u003C0?a(0):t>0&&e>0&&o(0)}if(s===n){let e=0===n?1:Math.abs(.05*n);a(n+e),t||o(s-e)}this.min=s,this.max=n}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:s}=t;return s?(e=Math.ceil(this.max\u002Fs)-Math.floor(this.min\u002Fs)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const n=function(t,e){const i=[],{bounds:n,step:o,min:a,max:r,precision:l,count:h,maxTicks:c,maxDigits:d,includeBounds:u}=t,f=o||1,g=c-1,{min:p,max:m}=e,x=!s(a),b=!s(r),_=!s(h),y=(m-p)\u002F(d+1);let v,M,w,k,S=B((m-p)\u002Fg\u002Ff)*f;if(S\u003C1e-14&&!x&&!b)return[{value:p},{value:m}];k=Math.ceil(m\u002FS)-Math.floor(p\u002FS),k>g&&(S=B(k*S\u002Fg\u002Ff)*f),s(l)||(v=Math.pow(10,l),S=Math.ceil(S*v)\u002Fv),\"ticks\"===n?(M=Math.floor(p\u002FS)*S,w=Math.ceil(m\u002FS)*S):(M=p,w=m),x&&b&&o&&H((r-a)\u002Fo,S\u002F1e3)?(k=Math.round(Math.min((r-a)\u002FS,c)),S=(r-a)\u002Fk,M=a,w=r):_?(M=x?a:M,w=b?r:w,k=h-1,S=(w-M)\u002Fk):(k=(w-M)\u002FS,k=V(k,Math.round(k),S\u002F1e3)?Math.round(k):Math.ceil(k));const P=Math.max(U(S),U(M));v=Math.pow(10,s(l)?P:l),M=Math.round(M*v)\u002Fv,w=Math.round(w*v)\u002Fv;let D=0;for(x&&(u&&M!==a?(i.push({value:a}),M\u003Ca&&D++,V(Math.round((M+D*S)*v)\u002Fv,a,xo(a,y,t))&&D++):M\u003Ca&&D++);D\u003Ck;++D){const t=Math.round((M+D*S)*v)\u002Fv;if(b&&t>r)break;i.push({value:t})}return b&&u&&w!==r?i.length&&V(i[i.length-1].value,r,xo(r,y,t))?i[i.length-1].value=r:i.push({value:r}):b&&w!==r||i.push({value:w}),i}({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return\"ticks\"===t.bounds&&j(n,this,\"value\"),t.reverse?(n.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),n}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-e)\u002FMath.max(t.length-1,1)\u002F2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return ne(t,this.chart.options.locale,this.options.ticks.format)}}class _o extends bo{static id=\"linear\";static defaults={ticks:{callback:ae.formatters.numeric}};determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?t:0,this.max=a(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=$(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,n=this._resolveTickFontOptions(0);return Math.ceil(e\u002FMath.min(40,n.lineHeight\u002Fs))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)\u002Fthis._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}const yo=t=>Math.floor(z(t)),vo=(t,e)=>Math.pow(10,yo(t)+e);function Mo(t){return 1===t\u002FMath.pow(10,yo(t))}function wo(t,e,i){const s=Math.pow(10,i),n=Math.floor(t\u002Fs);return Math.ceil(e\u002Fs)-n}function ko(t,{min:e,max:i}){e=r(t.min,e);const s=[],n=yo(e);let o=function(t,e){let i=yo(e-t);for(;wo(t,e,i)>10;)i++;for(;wo(t,e,i)\u003C10;)i--;return Math.min(i,yo(t))}(e,i),a=o\u003C0?Math.pow(10,Math.abs(o)):1;const l=Math.pow(10,o),h=n>o?Math.pow(10,n):0,c=Math.round((e-h)*a)\u002Fa,d=Math.floor((e-h)\u002Fl\u002F10)*l*10;let u=Math.floor((c-d)\u002FMath.pow(10,o)),f=r(t.min,Math.round((h+d+u*Math.pow(10,o))*a)\u002Fa);for(;f\u003Ci;)s.push({value:f,major:Mo(f),significand:u}),u>=10?u=u\u003C15?15:20:u++,u>=20&&(o++,u=2,a=o>=0?1:a),f=Math.round((h+d+u*Math.pow(10,o))*a)\u002Fa;const g=r(t.max,f);return s.push({value:g,major:Mo(g),significand:u}),s}class So extends tn{static id=\"logarithmic\";static defaults={ticks:{callback:ae.formatters.logarithmic,major:{enabled:!0}}};constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const i=bo.prototype.parse.apply(this,[t,e]);if(0!==i)return a(i)&&i>0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?Math.max(0,t):null,this.max=a(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!a(this._userMin)&&(this.min=t===vo(this.min,0)?vo(this.min,-1):vo(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,s=this.max;const n=e=>i=t?i:e,o=t=>s=e?s:t;i===s&&(i\u003C=0?(n(1),o(10)):(n(vo(i,-1)),o(vo(s,1)))),i\u003C=0&&n(vo(s,-1)),s\u003C=0&&o(vo(i,1)),this.min=i,this.max=s}buildTicks(){const t=this.options,e=ko({min:this._userMin,max:this._userMax},this);return\"ticks\"===t.bounds&&j(e,this,\"value\"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?\"0\":ne(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=z(t),this._valueRange=z(this.max)-z(t)}getPixelForValue(t){return void 0!==t&&0!==t||(t=this.min),null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(z(t)-this._startValue)\u002Fthis._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}function Po(t){const e=t.ticks;if(e.display&&t.display){const t=ki(e.backdropPadding);return l(e.font&&e.font.size,ue.font.size)+t.height}return 0}function Do(t,e,i,s,n){return t===s||t===n?{start:e-i\u002F2,end:e+i\u002F2}:t\u003Cs||t>n?{start:e-i,end:e}:{start:e,end:e+i}}function Co(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},i=Object.assign({},e),s=[],o=[],a=t._pointLabels.length,r=t.options.pointLabels,l=r.centerPointLabels?C\u002Fa:0;for(let u=0;u\u003Ca;u++){const a=r.setContext(t.getPointLabelContext(u));o[u]=a.padding;const f=t.getPointPosition(u,t.drawingArea+o[u],l),g=Si(a.font),p=(h=t.ctx,c=g,d=n(d=t._pointLabels[u])?d:[d],{w:Oe(h,c.string,d),h:d.length*c.lineHeight});s[u]=p;const m=G(t.getIndexAngle(u)+l),x=Math.round(Y(m));Oo(i,e,m,Do(x,f.x,p.w,0,180),Do(x,f.y,p.h,90,270))}var h,c,d;t.setCenterPoint(e.l-i.l,i.r-e.r,e.t-i.t,i.b-e.b),t._pointLabelItems=function(t,e,i){const s=[],n=t._pointLabels.length,o=t.options,{centerPointLabels:a,display:r}=o.pointLabels,l={extra:Po(o)\u002F2,additionalAngle:a?C\u002Fn:0};let h;for(let o=0;o\u003Cn;o++){l.padding=i[o],l.size=e[o];const n=Ao(t,o,l);s.push(n),\"auto\"===r&&(n.visible=To(n,h),n.visible&&(h=n))}return s}(t,s,o)}function Oo(t,e,i,s,n){const o=Math.abs(Math.sin(i)),a=Math.abs(Math.cos(i));let r=0,l=0;s.start\u003Ce.l?(r=(e.l-s.start)\u002Fo,t.l=Math.min(t.l,e.l-r)):s.end>e.r&&(r=(s.end-e.r)\u002Fo,t.r=Math.max(t.r,e.r+r)),n.start\u003Ce.t?(l=(e.t-n.start)\u002Fa,t.t=Math.min(t.t,e.t-l)):n.end>e.b&&(l=(n.end-e.b)\u002Fa,t.b=Math.max(t.b,e.b+l))}function Ao(t,e,i){const s=t.drawingArea,{extra:n,additionalAngle:o,padding:a,size:r}=i,l=t.getPointPosition(e,s+n+a,o),h=Math.round(Y(G(l.angle+E))),c=function(t,e,i){90===i||270===i?t-=e\u002F2:(i>270||i\u003C90)&&(t-=e);return t}(l.y,r.h,h),d=function(t){if(0===t||180===t)return\"center\";if(t\u003C180)return\"left\";return\"right\"}(h),u=function(t,e,i){\"right\"===i?t-=e:\"center\"===i&&(t-=e\u002F2);return t}(l.x,r.w,d);return{visible:!0,x:l.x,y:c,textAlign:d,left:u,top:c,right:u+r.w,bottom:c+r.h}}function To(t,e){if(!e)return!0;const{left:i,top:s,right:n,bottom:o}=t;return!(Re({x:i,y:s},e)||Re({x:i,y:o},e)||Re({x:n,y:s},e)||Re({x:n,y:o},e))}function Lo(t,e,i){const{left:n,top:o,right:a,bottom:r}=i,{backdropColor:l}=e;if(!s(l)){const i=wi(e.borderRadius),s=ki(e.backdropPadding);t.fillStyle=l;const h=n-s.left,c=o-s.top,d=a-n+s.width,u=r-o+s.height;Object.values(i).some((t=>0!==t))?(t.beginPath(),He(t,{x:h,y:c,w:d,h:u,radius:i}),t.fill()):t.fillRect(h,c,d,u)}}function Eo(t,e,i,s){const{ctx:n}=t;if(i)n.arc(t.xCenter,t.yCenter,e,0,O);else{let i=t.getPointPosition(0,e);n.moveTo(i.x,i.y);for(let o=1;o\u003Cs;o++)i=t.getPointPosition(o,e),n.lineTo(i.x,i.y)}}class Ro extends bo{static id=\"radialLinear\";static defaults={display:!0,animate:!0,position:\"chartArea\",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:ae.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:t=>t,padding:5,centerPointLabels:!1}};static defaultRoutes={\"angleLines.color\":\"borderColor\",\"pointLabels.color\":\"color\",\"ticks.color\":\"color\"};static descriptors={angleLines:{_fallback:\"grid\"}};constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=ki(Po(this.options)\u002F2),e=this.width=this.maxWidth-t.width,i=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+e\u002F2+t.left),this.yCenter=Math.floor(this.top+i\u002F2+t.top),this.drawingArea=Math.floor(Math.min(e,i)\u002F2)}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!1);this.min=a(t)&&!isNaN(t)?t:0,this.max=a(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea\u002FPo(this.options))}generateTickLabels(t){bo.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map(((t,e)=>{const i=d(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:\"\"})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?Co(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)\u002F2),this.yCenter+=Math.floor((i-s)\u002F2),this.drawingArea-=Math.min(this.drawingArea\u002F2,Math.max(t,e,i,s))}getIndexAngle(t){return G(t*(O\u002F(this._pointLabels.length||1))+$(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if(s(t))return NaN;const e=this.drawingArea\u002F(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(s(t))return NaN;const e=t\u002F(this.drawingArea\u002F(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t\u003Ce.length){const i=e[t];return function(t,e,i){return Ci(t,{label:i,index:e,type:\"pointLabel\"})}(this.getContext(),t,i)}}getPointPosition(t,e,i=0){const s=this.getIndexAngle(t)-E+i;return{x:Math.cos(s)*e+this.xCenter,y:Math.sin(s)*e+this.yCenter,angle:s}}getPointPositionForValue(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))}getBasePosition(t){return this.getPointPositionForValue(t||0,this.getBaseValue())}getPointLabelPosition(t){const{left:e,top:i,right:s,bottom:n}=this._pointLabelItems[t];return{left:e,top:i,right:s,bottom:n}}drawBackground(){const{backgroundColor:t,grid:{circular:e}}=this.options;if(t){const i=this.ctx;i.save(),i.beginPath(),Eo(this,this.getDistanceFromCenterForValue(this._endValue),e,this._pointLabels.length),i.closePath(),i.fillStyle=t,i.fill(),i.restore()}}drawGrid(){const t=this.ctx,e=this.options,{angleLines:i,grid:s,border:n}=e,o=this._pointLabels.length;let a,r,l;if(e.pointLabels.display&&function(t,e){const{ctx:i,options:{pointLabels:s}}=t;for(let n=e-1;n>=0;n--){const e=t._pointLabelItems[n];if(!e.visible)continue;const o=s.setContext(t.getPointLabelContext(n));Lo(i,o,e);const a=Si(o.font),{x:r,y:l,textAlign:h}=e;Ne(i,t._pointLabels[n],r,l+a.lineHeight\u002F2,a,{color:o.color,textAlign:h,textBaseline:\"middle\"})}}(this,o),s.display&&this.ticks.forEach(((t,e)=>{if(0!==e||0===e&&this.min\u003C0){r=this.getDistanceFromCenterForValue(t.value);const i=this.getContext(e),a=s.setContext(i),l=n.setContext(i);!function(t,e,i,s,n){const o=t.ctx,a=e.circular,{color:r,lineWidth:l}=e;!a&&!s||!r||!l||i\u003C0||(o.save(),o.strokeStyle=r,o.lineWidth=l,o.setLineDash(n.dash||[]),o.lineDashOffset=n.dashOffset,o.beginPath(),Eo(t,i,a,s),o.closePath(),o.stroke(),o.restore())}(this,a,r,o,l)}})),i.display){for(t.save(),a=o-1;a>=0;a--){const s=i.setContext(this.getPointLabelContext(a)),{color:n,lineWidth:o}=s;o&&n&&(t.lineWidth=o,t.strokeStyle=n,t.setLineDash(s.borderDash),t.lineDashOffset=s.borderDashOffset,r=this.getDistanceFromCenterForValue(e.reverse?this.min:this.max),l=this.getPointPosition(a,r),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let n,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign=\"center\",t.textBaseline=\"middle\",this.ticks.forEach(((s,a)=>{if(0===a&&this.min>=0&&!e.reverse)return;const r=i.setContext(this.getContext(a)),l=Si(r.font);if(n=this.getDistanceFromCenterForValue(this.ticks[a].value),r.showLabelBackdrop){t.font=l.string,o=t.measureText(s.label).width,t.fillStyle=r.backdropColor;const e=ki(r.backdropPadding);t.fillRect(-o\u002F2-e.left,-n-l.size\u002F2-e.top,o+e.width,l.size+e.height)}Ne(t,s.label,0,-n,l,{color:r.color,strokeColor:r.textStrokeColor,strokeWidth:r.textStrokeWidth})})),t.restore()}drawTitle(){}}const Io={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},zo=Object.keys(Io);function Fo(t,e){return t-e}function Vo(t,e){if(s(e))return null;const i=t._adapter,{parser:n,round:o,isoWeekday:r}=t._parseOpts;let l=e;return\"function\"==typeof n&&(l=n(l)),a(l)||(l=\"string\"==typeof n?i.parse(l,n):i.parse(l)),null===l?null:(o&&(l=\"week\"!==o||!N(r)&&!0!==r?i.startOf(l,o):i.startOf(l,\"isoWeek\",r)),+l)}function Bo(t,e,i,s){const n=zo.length;for(let o=zo.indexOf(t);o\u003Cn-1;++o){const t=Io[zo[o]],n=t.steps?t.steps:Number.MAX_SAFE_INTEGER;if(t.common&&Math.ceil((i-e)\u002F(n*t.size))\u003C=s)return zo[o]}return zo[n-1]}function Wo(t,e,i){if(i){if(i.length){const{lo:s,hi:n}=et(i,e);t[i[s]>=e?i[s]:i[n]]=!0}}else t[e]=!0}function No(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a\u003Co;++a)r=e[a],n[r]=a,s.push({value:r,major:!1});return 0!==o&&i?function(t,e,i,s){const n=t._adapter,o=+n.startOf(e[0].value,s),a=e[e.length-1].value;let r,l;for(r=o;r\u003C=a;r=+n.add(r,1,s))l=i[r],l>=0&&(e[l].major=!0);return e}(t,s,n,i):s}class Ho extends tn{static id=\"time\";static defaults={bounds:\"data\",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:\"millisecond\",displayFormats:{}},ticks:{source:\"auto\",callback:!1,major:{enabled:!1}}};constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit=\"day\",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e={}){const i=t.time||(t.time={}),s=this._adapter=new In._date(t.adapters.date);s.init(e),b(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:Vo(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||\"day\";let{min:s,max:n,minDefined:o,maxDefined:r}=this.getUserBounds();function l(t){o||isNaN(t.min)||(s=Math.min(s,t.min)),r||isNaN(t.max)||(n=Math.max(n,t.max))}o&&r||(l(this._getLabelBounds()),\"ticks\"===t.bounds&&\"labels\"===t.ticks.source||l(this.getMinMax(!1))),s=a(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),n=a(n)&&!isNaN(n)?n:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,n-1),this.max=Math.max(s+1,n)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s=\"labels\"===i.source?this.getLabelTimestamps():this._generate();\"ticks\"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const n=this.min,o=nt(s,n,this.max);return this._unit=e.unit||(i.autoSkip?Bo(e.minUnit,this.min,this.max,this._getLabelCapacity(n)):function(t,e,i,s,n){for(let o=zo.length-1;o>=zo.indexOf(i);o--){const i=zo[o];if(Io[i].common&&t._adapter.diff(n,s,i)>=e-1)return i}return zo[i?zo.indexOf(i):0]}(this,o.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&\"year\"!==this._unit?function(t){for(let e=zo.indexOf(t)+1,i=zo.length;e\u003Ci;++e)if(Io[zo[e]].common)return zo[e]}(this._unit):void 0,this.initOffsets(s),t.reverse&&o.reverse(),No(this,o,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map((t=>+t.value)))}initOffsets(t=[]){let e,i,s=0,n=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)\u002F2,i=this.getDecimalForValue(t[t.length-1]),n=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))\u002F2);const o=t.length\u003C3?.5:.25;s=Z(s,0,o),n=Z(n,0,o),this._offsets={start:s,end:n,factor:1\u002F(s+1+n)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,n=s.time,o=n.unit||Bo(n.minUnit,e,i,this._getLabelCapacity(e)),a=l(s.ticks.stepSize,1),r=\"week\"===o&&n.isoWeekday,h=N(r)||!0===r,c={};let d,u,f=e;if(h&&(f=+t.startOf(f,\"isoWeek\",r)),f=+t.startOf(f,h?\"day\":o),t.diff(i,e,o)>1e5*a)throw new Error(e+\" and \"+i+\" are too far apart with stepSize of \"+a+\" \"+o);const g=\"data\"===s.ticks.source&&this.getDataTimestamps();for(d=f,u=0;d\u003Ci;d=+t.add(d,a,o),u++)Wo(c,d,g);return d!==i&&\"ticks\"!==s.bounds&&1!==u||Wo(c,d,g),Object.keys(c).sort(Fo).map((t=>+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}format(t,e){const i=this.options.time.displayFormats,s=this._unit,n=e||i[s];return this._adapter.format(t,n)}_tickFormatFunction(t,e,i,s){const n=this.options,o=n.ticks.callback;if(o)return d(o,[t,e,i],this);const a=n.time.displayFormats,r=this._unit,l=this._majorUnit,h=r&&a[r],c=l&&a[l],u=i[e],f=l&&c&&u&&u.major;return this._adapter.format(t,s||(f?c:h))}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e\u003Ci;++e)s=t[e],s.label=this._tickFormatFunction(s.value,e,t)}getDecimalForValue(t){return null===t?NaN:(t-this.min)\u002F(this.max-this.min)}getPixelForValue(t){const e=this._offsets,i=this.getDecimalForValue(t);return this.getPixelForDecimal((e.start+i)*e.factor)}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)\u002Fe.factor-e.end;return this.min+i*(this.max-this.min)}_getLabelSize(t){const e=this.options.ticks,i=this.ctx.measureText(t).width,s=$(this.isHorizontal()?e.maxRotation:e.minRotation),n=Math.cos(s),o=Math.sin(s),a=this._resolveTickFontOptions(0).size;return{w:i*n+a*o,h:i*o+a*n}}_getLabelCapacity(t){const e=this.options.time,i=e.displayFormats,s=i[e.unit]||i.millisecond,n=this._tickFormatFunction(t,0,No(this,[t],this._majorUnit),s),o=this._getLabelSize(n),a=Math.floor(this.isHorizontal()?this.width\u002Fo.w:this.height\u002Fo.h)-1;return a>0?a:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,e=s.length;t\u003Ce;++t)i=i.concat(s[t].controller.getAllParsedValues(this));return this._cache.data=this.normalize(i)}getLabelTimestamps(){const t=this._cache.labels||[];let e,i;if(t.length)return t;const s=this.getLabels();for(e=0,i=s.length;e\u003Ci;++e)t.push(Vo(this,s[e]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return lt(t.sort(Fo))}}function jo(t,e,i){let s,n,o,a,r=0,l=t.length-1;i?(e>=t[r].pos&&e\u003C=t[l].pos&&({lo:r,hi:l}=it(t,\"pos\",e)),({pos:s,time:o}=t[r]),({pos:n,time:a}=t[l])):(e>=t[r].time&&e\u003C=t[l].time&&({lo:r,hi:l}=it(t,\"time\",e)),({time:s,pos:o}=t[r]),({time:n,pos:a}=t[l]));const h=n-s;return h?o+(a-o)*(e-s)\u002Fh:o}var $o=Object.freeze({__proto__:null,CategoryScale:class extends tn{static id=\"category\";static defaults={ticks:{callback:mo}};constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:s}of e)t[i]===s&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(s(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:Z(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:po(i,t,l(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);\"ticks\"===this.options.bounds&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let n=this.getLabels();n=0===t&&e===n.length-1?n:n.slice(t,e+1),this._valueRange=Math.max(n.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let i=t;i\u003C=e;i++)s.push({value:i});return s}getLabelForValue(t){return mo.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return\"number\"!=typeof t&&(t=this.parse(t)),null===t?NaN:this.getPixelForDecimal((t-this._startValue)\u002Fthis._valueRange)}getPixelForTick(t){const e=this.ticks;return t\u003C0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}},LinearScale:_o,LogarithmicScale:So,RadialLinearScale:Ro,TimeScale:Ho,TimeSeriesScale:class extends Ho{static id=\"timeseries\";static defaults=Ho.defaults;constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=jo(e,this.min),this._tableRange=jo(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:i}=this,s=[],n=[];let o,a,r,l,h;for(o=0,a=t.length;o\u003Ca;++o)l=t[o],l>=e&&l\u003C=i&&s.push(l);if(s.length\u003C2)return[{time:e,pos:0},{time:i,pos:1}];for(o=0,a=s.length;o\u003Ca;++o)h=s[o+1],r=s[o-1],l=s[o],Math.round((h+r)\u002F2)!==l&&n.push({time:l,pos:o\u002F(a-1)});return n}_generate(){const t=this.min,e=this.max;let i=super.getDataTimestamps();return i.includes(t)&&i.length||i.splice(0,0,t),i.includes(e)&&1!==i.length||i.push(e),i.sort(((t,e)=>t-e))}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const e=this.getDataTimestamps(),i=this.getLabelTimestamps();return t=e.length&&i.length?this.normalize(e.concat(i)):e.length?e:i,t=this._cache.all=t,t}getDecimalForValue(t){return(jo(this._table,t)-this._minPos)\u002Fthis._tableRange}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)\u002Fe.factor-e.end;return jo(this._table,i*this._tableRange+this._minPos,!0)}}});const Yo=[\"rgb(54, 162, 235)\",\"rgb(255, 99, 132)\",\"rgb(255, 159, 64)\",\"rgb(255, 205, 86)\",\"rgb(75, 192, 192)\",\"rgb(153, 102, 255)\",\"rgb(201, 203, 207)\"],Uo=Yo.map((t=>t.replace(\"rgb(\",\"rgba(\").replace(\")\",\", 0.5)\")));function Xo(t){return Yo[t%Yo.length]}function qo(t){return Uo[t%Uo.length]}function Ko(t){let e=0;return(i,s)=>{const n=t.getDatasetMeta(s).controller;n instanceof $n?e=function(t,e){return t.backgroundColor=t.data.map((()=>Xo(e++))),e}(i,e):n instanceof Yn?e=function(t,e){return t.backgroundColor=t.data.map((()=>qo(e++))),e}(i,e):n&&(e=function(t,e){return t.borderColor=Xo(e),t.backgroundColor=qo(e),++e}(i,e))}}function Go(t){let e;for(e in t)if(t[e].borderColor||t[e].backgroundColor)return!0;return!1}var Jo={id:\"colors\",defaults:{enabled:!0,forceOverride:!1},beforeLayout(t,e,i){if(!i.enabled)return;const{data:{datasets:s},options:n}=t.config,{elements:o}=n,a=Go(s)||(r=n)&&(r.borderColor||r.backgroundColor)||o&&Go(o)||\"rgba(0,0,0,0.1)\"!==ue.borderColor||\"rgba(0,0,0,0.1)\"!==ue.backgroundColor;var r;if(!i.forceOverride&&a)return;const l=Ko(t);s.forEach(l)}};function Zo(t){if(t._decimated){const e=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,\"data\",{configurable:!0,enumerable:!0,writable:!0,value:e})}}function Qo(t){t.data.datasets.forEach((t=>{Zo(t)}))}var ta={id:\"decimation\",defaults:{algorithm:\"min-max\",enabled:!1},beforeElementsUpdate:(t,e,i)=>{if(!i.enabled)return void Qo(t);const n=t.width;t.data.datasets.forEach(((e,o)=>{const{_data:a,indexAxis:r}=e,l=t.getDatasetMeta(o),h=a||e.data;if(\"y\"===Pi([r,t.options.indexAxis]))return;if(!l.controller.supportsDecimation)return;const c=t.scales[l.xAxisID];if(\"linear\"!==c.type&&\"time\"!==c.type)return;if(t.options.parsing)return;let{start:d,count:u}=function(t,e){const i=e.length;let s,n=0;const{iScale:o}=t,{min:a,max:r,minDefined:l,maxDefined:h}=o.getUserBounds();return l&&(n=Z(it(e,o.axis,a).lo,0,i-1)),s=h?Z(it(e,o.axis,r).hi+1,n,i)-n:i-n,{start:n,count:s}}(l,h);if(u\u003C=(i.threshold||4*n))return void Zo(e);let f;switch(s(a)&&(e._data=h,delete e.data,Object.defineProperty(e,\"data\",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),i.algorithm){case\"lttb\":f=function(t,e,i,s,n){const o=n.samples||s;if(o>=i)return t.slice(e,e+i);const a=[],r=(i-2)\u002F(o-2);let l=0;const h=e+i-1;let c,d,u,f,g,p=e;for(a[l++]=t[p],c=0;c\u003Co-2;c++){let s,n=0,o=0;const h=Math.floor((c+1)*r)+1+e,m=Math.min(Math.floor((c+2)*r)+1,i)+e,x=m-h;for(s=h;s\u003Cm;s++)n+=t[s].x,o+=t[s].y;n\u002F=x,o\u002F=x;const b=Math.floor(c*r)+1+e,_=Math.min(Math.floor((c+1)*r)+1,i)+e,{x:y,y:v}=t[p];for(u=f=-1,s=b;s\u003C_;s++)f=.5*Math.abs((y-n)*(t[s].y-v)-(y-t[s].x)*(o-v)),f>u&&(u=f,d=t[s],g=s);a[l++]=d,p=g}return a[l++]=t[h],a}(h,d,u,n,i);break;case\"min-max\":f=function(t,e,i,n){let o,a,r,l,h,c,d,u,f,g,p=0,m=0;const x=[],b=e+i-1,_=t[e].x,y=t[b].x-_;for(o=e;o\u003Ce+i;++o){a=t[o],r=(a.x-_)\u002Fy*n,l=a.y;const e=0|r;if(e===h)l\u003Cf?(f=l,c=o):l>g&&(g=l,d=o),p=(m*p+a.x)\u002F++m;else{const i=o-1;if(!s(c)&&!s(d)){const e=Math.min(c,d),s=Math.max(c,d);e!==u&&e!==i&&x.push({...t[e],x:p}),s!==u&&s!==i&&x.push({...t[s],x:p})}o>0&&i!==u&&x.push(t[i]),x.push(a),h=e,m=0,f=g=l,c=d=u=o}}return x}(h,d,u,n);break;default:throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`)}e._decimated=f}))},destroy(t){Qo(t)}};function ea(t,e,i,s){if(s)return;let n=e[t],o=i[t];return\"angle\"===t&&(n=G(n),o=G(o)),{property:t,start:n,end:o}}function ia(t,e,i){for(;e>t;e--){const t=i[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function sa(t,e,i,s){return t&&e?s(t[i],e[i]):t?t[i]:e?e[i]:0}function na(t,e){let i=[],s=!1;return n(t)?(s=!0,i=t):i=function(t,e){const{x:i=null,y:s=null}=t||{},n=e.points,o=[];return e.segments.forEach((({start:t,end:e})=>{e=ia(t,e,n);const a=n[t],r=n[e];null!==s?(o.push({x:a.x,y:s}),o.push({x:r.x,y:s})):null!==i&&(o.push({x:i,y:a.y}),o.push({x:i,y:r.y}))})),o}(t,e),i.length?new oo({points:i,options:{tension:0},_loop:s,_fullLoop:s}):null}function oa(t){return t&&!1!==t.fill}function aa(t,e,i){let s=t[e].fill;const n=[e];let o;if(!i)return s;for(;!1!==s&&-1===n.indexOf(s);){if(!a(s))return s;if(o=t[s],!o)return!1;if(o.visible)return s;n.push(s),s=o.fill}return!1}function ra(t,e,i){const s=function(t){const e=t.options,i=e.fill;let s=l(i&&i.target,i);void 0===s&&(s=!!e.backgroundColor);if(!1===s||null===s)return!1;if(!0===s)return\"origin\";return s}(t);if(o(s))return!isNaN(s.value)&&s;let n=parseFloat(s);return a(n)&&Math.floor(n)===n?function(t,e,i,s){\"-\"!==t&&\"+\"!==t||(i=e+i);if(i===e||i\u003C0||i>=s)return!1;return i}(s[0],e,n,i):[\"origin\",\"start\",\"end\",\"stack\",\"shape\"].indexOf(s)>=0&&s}function la(t,e,i){const s=[];for(let n=0;n\u003Ci.length;n++){const o=i[n],{first:a,last:r,point:l}=ha(o,e,\"x\");if(!(!l||a&&r))if(a)s.unshift(l);else if(t.push(l),!r)break}t.push(...s)}function ha(t,e,i){const s=t.interpolate(e,i);if(!s)return{};const n=s[i],o=t.segments,a=t.points;let r=!1,l=!1;for(let t=0;t\u003Co.length;t++){const e=o[t],s=a[e.start][i],h=a[e.end][i];if(tt(n,s,h)){r=n===s,l=n===h;break}}return{first:r,last:l,point:s}}class ca{constructor(t){this.x=t.x,this.y=t.y,this.radius=t.radius}pathSegment(t,e,i){const{x:s,y:n,radius:o}=this;return e=e||{start:0,end:O},t.arc(s,n,o,e.end,e.start,!0),!i.bounds}interpolate(t){const{x:e,y:i,radius:s}=this,n=t.angle;return{x:e+Math.cos(n)*s,y:i+Math.sin(n)*s,angle:n}}}function da(t){const{chart:e,fill:i,line:s}=t;if(a(i))return function(t,e){const i=t.getDatasetMeta(e),s=i&&t.isDatasetVisible(e);return s?i.dataset:null}(e,i);if(\"stack\"===i)return function(t){const{scale:e,index:i,line:s}=t,n=[],o=s.segments,a=s.points,r=function(t,e){const i=[],s=t.getMatchingVisibleMetas(\"line\");for(let t=0;t\u003Cs.length;t++){const n=s[t];if(n.index===e)break;n.hidden||i.unshift(n.dataset)}return i}(e,i);r.push(na({x:null,y:e.bottom},s));for(let t=0;t\u003Co.length;t++){const e=o[t];for(let t=e.start;t\u003C=e.end;t++)la(n,a[t],r)}return new oo({points:n,options:{}})}(t);if(\"shape\"===i)return!0;const n=function(t){const e=t.scale||{};if(e.getPointPositionForValue)return function(t){const{scale:e,fill:i}=t,s=e.options,n=e.getLabels().length,a=s.reverse?e.max:e.min,r=function(t,e,i){let s;return s=\"start\"===t?i:\"end\"===t?e.options.reverse?e.min:e.max:o(t)?t.value:e.getBaseValue(),s}(i,e,a),l=[];if(s.grid.circular){const t=e.getPointPositionForValue(0,a);return new ca({x:t.x,y:t.y,radius:e.getDistanceFromCenterForValue(r)})}for(let t=0;t\u003Cn;++t)l.push(e.getPointPositionForValue(t,r));return l}(t);return function(t){const{scale:e={},fill:i}=t,s=function(t,e){let i=null;return\"start\"===t?i=e.bottom:\"end\"===t?i=e.top:o(t)?i=e.getPixelForValue(t.value):e.getBasePixel&&(i=e.getBasePixel()),i}(i,e);if(a(s)){const t=e.isHorizontal();return{x:t?s:null,y:t?null:s}}return null}(t)}(t);return n instanceof ca?n:na(n,s)}function ua(t,e,i){const s=da(e),{chart:n,index:o,line:a,scale:r,axis:l}=e,h=a.options,c=h.fill,d=h.backgroundColor,{above:u=d,below:f=d}=c||{},g=n.getDatasetMeta(o),p=Ni(n,g);s&&a.points.length&&(Ie(t,i),function(t,e){const{line:i,target:s,above:n,below:o,area:a,scale:r,clip:l}=e,h=i._loop?\"angle\":e.axis;t.save();let c=o;o!==n&&(\"x\"===h?(fa(t,s,a.top),pa(t,{line:i,target:s,color:n,scale:r,property:h,clip:l}),t.restore(),t.save(),fa(t,s,a.bottom)):\"y\"===h&&(ga(t,s,a.left),pa(t,{line:i,target:s,color:o,scale:r,property:h,clip:l}),t.restore(),t.save(),ga(t,s,a.right),c=n));pa(t,{line:i,target:s,color:c,scale:r,property:h,clip:l}),t.restore()}(t,{line:a,target:s,above:u,below:f,area:i,scale:r,axis:l,clip:p}),ze(t))}function fa(t,e,i){const{segments:s,points:n}=e;let o=!0,a=!1;t.beginPath();for(const r of s){const{start:s,end:l}=r,h=n[s],c=n[ia(s,l,n)];o?(t.moveTo(h.x,h.y),o=!1):(t.lineTo(h.x,i),t.lineTo(h.x,h.y)),a=!!e.pathSegment(t,r,{move:a}),a?t.closePath():t.lineTo(c.x,i)}t.lineTo(e.first().x,i),t.closePath(),t.clip()}function ga(t,e,i){const{segments:s,points:n}=e;let o=!0,a=!1;t.beginPath();for(const r of s){const{start:s,end:l}=r,h=n[s],c=n[ia(s,l,n)];o?(t.moveTo(h.x,h.y),o=!1):(t.lineTo(i,h.y),t.lineTo(h.x,h.y)),a=!!e.pathSegment(t,r,{move:a}),a?t.closePath():t.lineTo(i,c.y)}t.lineTo(i,e.first().y),t.closePath(),t.clip()}function pa(t,e){const{line:i,target:s,property:n,color:o,scale:a,clip:r}=e,l=function(t,e,i){const s=t.segments,n=t.points,o=e.points,a=[];for(const t of s){let{start:s,end:r}=t;r=ia(s,r,n);const l=ea(i,n[s],n[r],t.loop);if(!e.segments){a.push({source:t,target:l,start:n[s],end:n[r]});continue}const h=Ii(e,l);for(const e of h){const s=ea(i,o[e.start],o[e.end],e.loop),r=Ri(t,n,s);for(const t of r)a.push({source:t,target:e,start:{[i]:sa(l,s,\"start\",Math.max)},end:{[i]:sa(l,s,\"end\",Math.min)}})}}return a}(i,s,n);for(const{source:e,target:h,start:c,end:d}of l){const{style:{backgroundColor:l=o}={}}=e,u=!0!==s;t.save(),t.fillStyle=l,ma(t,a,r,u&&ea(n,c,d)),t.beginPath();const f=!!i.pathSegment(t,e);let g;if(u){f?t.closePath():xa(t,s,d,n);const e=!!s.pathSegment(t,h,{move:f,reverse:!0});g=f&&e,g||xa(t,s,c,n)}t.closePath(),t.fill(g?\"evenodd\":\"nonzero\"),t.restore()}}function ma(t,e,i,s){const n=e.chart.chartArea,{property:o,start:a,end:r}=s||{};if(\"x\"===o||\"y\"===o){let e,s,l,h;\"x\"===o?(e=a,s=n.top,l=r,h=n.bottom):(e=n.left,s=a,l=n.right,h=r),t.beginPath(),i&&(e=Math.max(e,i.left),l=Math.min(l,i.right),s=Math.max(s,i.top),h=Math.min(h,i.bottom)),t.rect(e,s,l-e,h-s),t.clip()}}function xa(t,e,i,s){const n=e.interpolate(i,s);n&&t.lineTo(n.x,n.y)}var ba={id:\"filler\",afterDatasetsUpdate(t,e,i){const s=(t.data.datasets||[]).length,n=[];let o,a,r,l;for(a=0;a\u003Cs;++a)o=t.getDatasetMeta(a),r=o.dataset,l=null,r&&r.options&&r instanceof oo&&(l={visible:t.isDatasetVisible(a),index:a,fill:ra(r,a,s),chart:t,axis:o.controller.options.indexAxis,scale:o.vScale,line:r}),o.$filler=l,n.push(l);for(a=0;a\u003Cs;++a)l=n[a],l&&!1!==l.fill&&(l.fill=aa(n,a,i.propagate))},beforeDraw(t,e,i){const s=\"beforeDraw\"===i.drawTime,n=t.getSortedVisibleDatasetMetas(),o=t.chartArea;for(let e=n.length-1;e>=0;--e){const i=n[e].$filler;i&&(i.line.updateControlPoints(o,i.axis),s&&i.fill&&ua(t.ctx,i,o))}},beforeDatasetsDraw(t,e,i){if(\"beforeDatasetsDraw\"!==i.drawTime)return;const s=t.getSortedVisibleDatasetMetas();for(let e=s.length-1;e>=0;--e){const i=s[e].$filler;oa(i)&&ua(t.ctx,i,t.chartArea)}},beforeDatasetDraw(t,e,i){const s=e.meta.$filler;oa(s)&&\"beforeDatasetDraw\"===i.drawTime&&ua(t.ctx,s,t.chartArea)},defaults:{propagate:!0,drawTime:\"beforeDatasetDraw\"}};const _a=(t,e)=>{let{boxHeight:i=e,boxWidth:s=e}=t;return t.usePointStyle&&(i=Math.min(i,e),s=t.pointStyleWidth||Math.min(s,e)),{boxWidth:s,boxHeight:i,itemHeight:Math.max(e,i)}};class ya extends $s{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=d(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=Si(i.font),n=s.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:r}=_a(i,n);let l,h;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,h=this._fitRows(o,n,a,r)+10):(h=this.maxHeight,l=this._fitCols(o,s,a,r)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.lineWidths=[0],h=s+a;let c=t;n.textAlign=\"left\",n.textBaseline=\"middle\";let d=-1,u=-h;return this.legendItems.forEach(((t,f)=>{const g=i+e\u002F2+n.measureText(t.text).width;(0===f||l[l.length-1]+g+2*a>o)&&(c+=h,l[l.length-(f>0?0:1)]=0,u+=h,d++),r[f]={left:0,top:u,row:d,width:g,height:s},l[l.length-1]+=g+a})),c}_fitCols(t,e,i,s){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.columnSizes=[],h=o-t;let c=a,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const{itemWidth:p,itemHeight:m}=function(t,e,i,s,n){const o=function(t,e,i,s){let n=t.text;n&&\"string\"!=typeof n&&(n=n.reduce(((t,e)=>t.length>e.length?t:e)));return e+i.size\u002F2+s.measureText(n).width}(s,t,e,i),a=function(t,e,i){let s=t;\"string\"!=typeof e.text&&(s=va(e,i));return s}(n,s,e.lineHeight);return{itemWidth:o,itemHeight:a}}(i,e,n,t,s);o>0&&u+m+2*a>h&&(c+=d+a,l.push({width:d,height:u}),f+=d+a,g++,d=u=0),r[o]={left:f,top:u,col:g,width:p,height:m},d=Math.max(d,p),u+=m+a})),c+=d,l.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:n}}=this,o=Oi(n,this.left,this.width);if(this.isHorizontal()){let n=0,a=ft(i,this.left+s,this.right-this.lineWidths[n]);for(const r of e)n!==r.row&&(n=r.row,a=ft(i,this.left+s,this.right-this.lineWidths[n])),r.top+=this.top+t+s,r.left=o.leftForLtr(o.x(a),r.width),a+=r.width+s}else{let n=0,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height);for(const r of e)r.col!==n&&(n=r.col,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height)),r.top=a,r.left+=this.left+s,r.left=o.leftForLtr(o.x(r.left),r.width),a+=r.height+s}}isHorizontal(){return\"top\"===this.options.position||\"bottom\"===this.options.position}draw(){if(this.options.display){const t=this.ctx;Ie(t,this),this._draw(),ze(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:n,labels:o}=t,a=ue.color,r=Oi(t.rtl,this.left,this.width),h=Si(o.font),{padding:c}=o,d=h.size,u=d\u002F2;let f;this.drawTitle(),s.textAlign=r.textAlign(\"left\"),s.textBaseline=\"middle\",s.lineWidth=.5,s.font=h.string;const{boxWidth:g,boxHeight:p,itemHeight:m}=_a(o,d),x=this.isHorizontal(),b=this._computeTitleHeight();f=x?{x:ft(n,this.left+c,this.right-i[0]),y:this.top+c+b,line:0}:{x:this.left+c,y:ft(n,this.top+b+c,this.bottom-e[0].height),line:0},Ai(this.ctx,t.textDirection);const _=m+c;this.legendItems.forEach(((y,v)=>{s.strokeStyle=y.fontColor,s.fillStyle=y.fontColor;const M=s.measureText(y.text).width,w=r.textAlign(y.textAlign||(y.textAlign=o.textAlign)),k=g+u+M;let S=f.x,P=f.y;r.setWidth(this.width),x?v>0&&S+k+c>this.right&&(P=f.y+=_,f.line++,S=f.x=ft(n,this.left+c,this.right-i[f.line])):v>0&&P+_>this.bottom&&(S=f.x=S+e[f.line].width+c,f.line++,P=f.y=ft(n,this.top+b+c,this.bottom-e[f.line].height));if(function(t,e,i){if(isNaN(g)||g\u003C=0||isNaN(p)||p\u003C0)return;s.save();const n=l(i.lineWidth,1);if(s.fillStyle=l(i.fillStyle,a),s.lineCap=l(i.lineCap,\"butt\"),s.lineDashOffset=l(i.lineDashOffset,0),s.lineJoin=l(i.lineJoin,\"miter\"),s.lineWidth=n,s.strokeStyle=l(i.strokeStyle,a),s.setLineDash(l(i.lineDash,[])),o.usePointStyle){const a={radius:p*Math.SQRT2\u002F2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:n},l=r.xPlus(t,g\u002F2);Ee(s,a,l,e+u,o.pointStyleWidth&&g)}else{const o=e+Math.max((d-p)\u002F2,0),a=r.leftForLtr(t,g),l=wi(i.borderRadius);s.beginPath(),Object.values(l).some((t=>0!==t))?He(s,{x:a,y:o,w:g,h:p,radius:l}):s.rect(a,o,g,p),s.fill(),0!==n&&s.stroke()}s.restore()}(r.x(S),P,y),S=gt(w,S+g+u,x?S+k:this.right,t.rtl),function(t,e,i){Ne(s,i.text,t,e+m\u002F2,h,{strikethrough:i.hidden,textAlign:r.textAlign(i.textAlign)})}(r.x(S),P,y),x)f.x+=k+c;else if(\"string\"!=typeof y.text){const t=h.lineHeight;f.y+=va(y,t)+c}else f.y+=_})),Ti(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=Si(e.font),s=ki(e.padding);if(!e.display)return;const n=Oi(t.rtl,this.left,this.width),o=this.ctx,a=e.position,r=i.size\u002F2,l=s.top+r;let h,c=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),h=this.top+l,c=ft(t.align,c,this.right-d);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);h=l+ft(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const u=ft(a,c,c+d);o.textAlign=n.textAlign(ut(a)),o.textBaseline=\"middle\",o.strokeStyle=e.color,o.fillStyle=e.color,o.font=i.string,Ne(o,e.text,u,h,i)}_computeTitleHeight(){const t=this.options.title,e=Si(t.font),i=ki(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,n;if(tt(t,this.left,this.right)&&tt(e,this.top,this.bottom))for(n=this.legendHitBoxes,i=0;i\u003Cn.length;++i)if(s=n[i],tt(t,s.left,s.left+s.width)&&tt(e,s.top,s.top+s.height))return this.legendItems[i];return null}handleEvent(t){const e=this.options;if(!function(t,e){if((\"mousemove\"===t||\"mouseout\"===t)&&(e.onHover||e.onLeave))return!0;if(e.onClick&&(\"click\"===t||\"mouseup\"===t))return!0;return!1}(t.type,e))return;const i=this._getLegendItemAt(t.x,t.y);if(\"mousemove\"===t.type||\"mouseout\"===t.type){const o=this._hoveredItem,a=(n=i,null!==(s=o)&&null!==n&&s.datasetIndex===n.datasetIndex&&s.index===n.index);o&&!a&&d(e.onLeave,[t,o,this],this),this._hoveredItem=i,i&&!a&&d(e.onHover,[t,i,this],this)}else i&&d(e.onClick,[t,i,this],this);var s,n}}function va(t,e){return e*(t.text?t.text.length:0)}var Ma={id:\"legend\",_element:ya,start(t,e,i){const s=t.legend=new ya({ctx:t.ctx,options:i,chart:t});ls.configure(t,s,i),ls.addBox(t,s)},stop(t){ls.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,i){const s=t.legend;ls.configure(t,s,i),s.options=i},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:\"top\",align:\"center\",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,i){const s=e.datasetIndex,n=i.chart;n.isDatasetVisible(s)?(n.hide(s),e.hidden=!0):(n.show(s),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:n,color:o,useBorderRadius:a,borderRadius:r}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const l=t.controller.getStyle(i?0:void 0),h=ki(l.borderWidth);return{text:e[t.index].label,fillStyle:l.backgroundColor,fontColor:o,hidden:!t.visible,lineCap:l.borderCapStyle,lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:(h.width+h.height)\u002F4,strokeStyle:l.borderColor,pointStyle:s||l.pointStyle,rotation:l.rotation,textAlign:n||l.textAlign,borderRadius:a&&(r||l.borderRadius),datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:\"center\",text:\"\"}},descriptors:{_scriptable:t=>!t.startsWith(\"on\"),labels:{_scriptable:t=>![\"generateLabels\",\"filter\",\"sort\"].includes(t)}}};class wa extends $s{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const s=n(i.text)?i.text.length:1;this._padding=ki(i.padding);const o=s*Si(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return\"top\"===t||\"bottom\"===t}_drawArgs(t){const{top:e,left:i,bottom:s,right:n,options:o}=this,a=o.align;let r,l,h,c=0;return this.isHorizontal()?(l=ft(a,i,n),h=e+t,r=n-i):(\"left\"===o.position?(l=i+t,h=ft(a,s,e),c=-.5*C):(l=n-t,h=ft(a,e,s),c=.5*C),r=s-e),{titleX:l,titleY:h,maxWidth:r,rotation:c}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const i=Si(e.font),s=i.lineHeight\u002F2+this._padding.top,{titleX:n,titleY:o,maxWidth:a,rotation:r}=this._drawArgs(s);Ne(t,e.text,0,0,i,{color:e.color,maxWidth:a,rotation:r,textAlign:ut(e.align),textBaseline:\"middle\",translation:[n,o]})}}var ka={id:\"title\",_element:wa,start(t,e,i){!function(t,e){const i=new wa({ctx:t.ctx,options:e,chart:t});ls.configure(t,i,e),ls.addBox(t,i),t.titleBlock=i}(t,i)},stop(t){const e=t.titleBlock;ls.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,i){const s=t.titleBlock;ls.configure(t,s,i),s.options=i},defaults:{align:\"center\",display:!1,font:{weight:\"bold\"},fullSize:!0,padding:10,position:\"top\",text:\"\",weight:2e3},defaultRoutes:{color:\"color\"},descriptors:{_scriptable:!0,_indexable:!1}};const Sa=new WeakMap;var Pa={id:\"subtitle\",start(t,e,i){const s=new wa({ctx:t.ctx,options:i,chart:t});ls.configure(t,s,i),ls.addBox(t,s),Sa.set(t,s)},stop(t){ls.removeBox(t,Sa.get(t)),Sa.delete(t)},beforeUpdate(t,e,i){const s=Sa.get(t);ls.configure(t,s,i),s.options=i},defaults:{align:\"center\",display:!1,font:{weight:\"normal\"},fullSize:!0,padding:0,position:\"top\",text:\"\",weight:1500},defaultRoutes:{color:\"color\"},descriptors:{_scriptable:!0,_indexable:!1}};const Da={average(t){if(!t.length)return!1;let e,i,s=new Set,n=0,o=0;for(e=0,i=t.length;e\u003Ci;++e){const i=t[e].element;if(i&&i.hasValue()){const t=i.tooltipPosition();s.add(t.x),n+=t.y,++o}}if(0===o||0===s.size)return!1;return{x:[...s].reduce(((t,e)=>t+e))\u002Fs.size,y:n\u002Fo}},nearest(t,e){if(!t.length)return!1;let i,s,n,o=e.x,a=e.y,r=Number.POSITIVE_INFINITY;for(i=0,s=t.length;i\u003Cs;++i){const s=t[i].element;if(s&&s.hasValue()){const t=q(e,s.getCenterPoint());t\u003Cr&&(r=t,n=s)}}if(n){const t=n.tooltipPosition();o=t.x,a=t.y}return{x:o,y:a}}};function Ca(t,e){return e&&(n(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Oa(t){return(\"string\"==typeof t||t instanceof String)&&t.indexOf(\"\\n\")>-1?t.split(\"\\n\"):t}function Aa(t,e){const{element:i,datasetIndex:s,index:n}=e,o=t.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:t,label:a,parsed:o.getParsed(n),raw:t.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:i}}function Ta(t,e){const i=t.chart.ctx,{body:s,footer:n,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=Si(e.bodyFont),h=Si(e.titleFont),c=Si(e.footerFont),d=o.length,f=n.length,g=s.length,p=ki(e.padding);let m=p.height,x=0,b=s.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(b+=t.beforeBody.length+t.afterBody.length,d&&(m+=d*h.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),b){m+=g*(e.displayColors?Math.max(r,l.lineHeight):l.lineHeight)+(b-g)*l.lineHeight+(b-1)*e.bodySpacing}f&&(m+=e.footerMarginTop+f*c.lineHeight+(f-1)*e.footerSpacing);let _=0;const y=function(t){x=Math.max(x,i.measureText(t).width+_)};return i.save(),i.font=h.string,u(t.title,y),i.font=l.string,u(t.beforeBody.concat(t.afterBody),y),_=e.displayColors?a+2+e.boxPadding:0,u(s,(t=>{u(t.before,y),u(t.lines,y),u(t.after,y)})),_=0,i.font=c.string,u(t.footer,y),i.restore(),x+=p.width,{width:x,height:m}}function La(t,e,i,s){const{x:n,width:o}=i,{width:a,chartArea:{left:r,right:l}}=t;let h=\"center\";return\"center\"===s?h=n\u003C=(r+l)\u002F2?\"left\":\"right\":n\u003C=o\u002F2?h=\"left\":n>=a-o\u002F2&&(h=\"right\"),function(t,e,i,s){const{x:n,width:o}=s,a=i.caretSize+i.caretPadding;return\"left\"===t&&n+o+a>e.width||\"right\"===t&&n-o-a\u003C0||void 0}(h,t,e,i)&&(h=\"center\"),h}function Ea(t,e,i){const s=i.yAlign||e.yAlign||function(t,e){const{y:i,height:s}=e;return i\u003Cs\u002F2?\"top\":i>t.height-s\u002F2?\"bottom\":\"center\"}(t,i);return{xAlign:i.xAlign||e.xAlign||La(t,e,i,s),yAlign:s}}function Ra(t,e,i,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=i,h=n+o,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=wi(a);let g=function(t,e){let{x:i,width:s}=t;return\"right\"===e?i-=s:\"center\"===e&&(i-=s\u002F2),i}(e,r);const p=function(t,e,i){let{y:s,height:n}=t;return\"top\"===e?s+=i:s-=\"bottom\"===e?n+i:n\u002F2,s}(e,l,h);return\"center\"===l?\"left\"===r?g+=h:\"right\"===r&&(g-=h):\"left\"===r?g-=Math.max(c,u)+n:\"right\"===r&&(g+=Math.max(d,f)+n),{x:Z(g,0,s.width-e.width),y:Z(p,0,s.height-e.height)}}function Ia(t,e,i){const s=ki(i.padding);return\"center\"===e?t.x+t.width\u002F2:\"right\"===e?t.x+t.width-s.right:t.x+s.left}function za(t){return Ca([],Oa(t))}function Fa(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}const Va={beforeTitle:e,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&\"dataset\"===this.options.mode)return e.dataset.label||\"\";if(e.label)return e.label;if(s>0&&e.dataIndex\u003Cs)return i[e.dataIndex]}return\"\"},afterTitle:e,beforeBody:e,beforeLabel:e,label(t){if(this&&this.options&&\"dataset\"===this.options.mode)return t.label+\": \"+t.formattedValue||t.formattedValue;let e=t.dataset.label||\"\";e&&(e+=\": \");const i=t.formattedValue;return s(i)||(e+=i),e},labelColor(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:e,afterBody:e,beforeFooter:e,footer:e,afterFooter:e};function Ba(t,e,i,s){const n=t[e].call(i,s);return void 0===n?Va[e].call(i,s):n}class Wa extends $s{static positioners=Da;constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const e=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&e.options.animation&&i.animations,n=new Ts(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(n)),n}getContext(){return this.$context||(this.$context=(t=this.chart.getContext(),e=this,i=this._tooltipItems,Ci(t,{tooltip:e,tooltipItems:i,type:\"tooltip\"})));var t,e,i}getTitle(t,e){const{callbacks:i}=e,s=Ba(i,\"beforeTitle\",this,t),n=Ba(i,\"title\",this,t),o=Ba(i,\"afterTitle\",this,t);let a=[];return a=Ca(a,Oa(s)),a=Ca(a,Oa(n)),a=Ca(a,Oa(o)),a}getBeforeBody(t,e){return za(Ba(e.callbacks,\"beforeBody\",this,t))}getBody(t,e){const{callbacks:i}=e,s=[];return u(t,(t=>{const e={before:[],lines:[],after:[]},n=Fa(i,t);Ca(e.before,Oa(Ba(n,\"beforeLabel\",this,t))),Ca(e.lines,Ba(n,\"label\",this,t)),Ca(e.after,Oa(Ba(n,\"afterLabel\",this,t))),s.push(e)})),s}getAfterBody(t,e){return za(Ba(e.callbacks,\"afterBody\",this,t))}getFooter(t,e){const{callbacks:i}=e,s=Ba(i,\"beforeFooter\",this,t),n=Ba(i,\"footer\",this,t),o=Ba(i,\"afterFooter\",this,t);let a=[];return a=Ca(a,Oa(s)),a=Ca(a,Oa(n)),a=Ca(a,Oa(o)),a}_createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];let a,r,l=[];for(a=0,r=e.length;a\u003Cr;++a)l.push(Aa(this.chart,e[a]));return t.filter&&(l=l.filter(((e,s,n)=>t.filter(e,s,n,i)))),t.itemSort&&(l=l.sort(((e,s)=>t.itemSort(e,s,i)))),u(l,(e=>{const i=Fa(t.callbacks,e);s.push(Ba(i,\"labelColor\",this,e)),n.push(Ba(i,\"labelPointStyle\",this,e)),o.push(Ba(i,\"labelTextColor\",this,e))})),this.labelColors=s,this.labelPointStyles=n,this.labelTextColors=o,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),s=this._active;let n,o=[];if(s.length){const t=Da[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Ta(this,i),a=Object.assign({},t,e),r=Ea(this.chart,i,a),l=Ra(i,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:l.x,y:l.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.lineTo(n.x3,n.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:n}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:r,topRight:l,bottomLeft:h,bottomRight:c}=wi(a),{x:d,y:u}=t,{width:f,height:g}=e;let p,m,x,b,_,y;return\"center\"===n?(_=u+g\u002F2,\"left\"===s?(p=d,m=p-o,b=_+o,y=_-o):(p=d+f,m=p+o,b=_-o,y=_+o),x=p):(m=\"left\"===s?d+Math.max(r,h)+o:\"right\"===s?d+f-Math.max(l,c)-o:this.caretX,\"top\"===n?(b=u,_=b-o,p=m-o,x=m+o):(b=u+g,_=b+o,p=m+o,x=m-o),y=b),{x1:p,x2:m,x3:x,y1:b,y2:_,y3:y}}drawTitle(t,e,i){const s=this.title,n=s.length;let o,a,r;if(n){const l=Oi(i.rtl,this.x,this.width);for(t.x=Ia(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline=\"middle\",o=Si(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=o.string,r=0;r\u003Cn;++r)e.fillText(s[r],l.x(t.x),t.y+o.lineHeight\u002F2),t.y+=o.lineHeight+a,r+1===n&&(t.y+=i.titleMarginBottom-a)}}_drawColorBox(t,e,i,s,n){const a=this.labelColors[i],r=this.labelPointStyles[i],{boxHeight:l,boxWidth:h}=n,c=Si(n.bodyFont),d=Ia(this,\"left\",n),u=s.x(d),f=l\u003Cc.lineHeight?(c.lineHeight-l)\u002F2:0,g=e.y+f;if(n.usePointStyle){const e={radius:Math.min(h,l)\u002F2,pointStyle:r.pointStyle,rotation:r.rotation,borderWidth:1},i=s.leftForLtr(u,h)+h\u002F2,o=g+l\u002F2;t.strokeStyle=n.multiKeyBackground,t.fillStyle=n.multiKeyBackground,Le(t,e,i,o),t.strokeStyle=a.borderColor,t.fillStyle=a.backgroundColor,Le(t,e,i,o)}else{t.lineWidth=o(a.borderWidth)?Math.max(...Object.values(a.borderWidth)):a.borderWidth||1,t.strokeStyle=a.borderColor,t.setLineDash(a.borderDash||[]),t.lineDashOffset=a.borderDashOffset||0;const e=s.leftForLtr(u,h),i=s.leftForLtr(s.xPlus(u,1),h-2),r=wi(a.borderRadius);Object.values(r).some((t=>0!==t))?(t.beginPath(),t.fillStyle=n.multiKeyBackground,He(t,{x:e,y:g,w:h,h:l,radius:r}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),He(t,{x:i,y:g+1,w:h-2,h:l-2,radius:r}),t.fill()):(t.fillStyle=n.multiKeyBackground,t.fillRect(e,g,h,l),t.strokeRect(e,g,h,l),t.fillStyle=a.backgroundColor,t.fillRect(i,g+1,h-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:n,bodyAlign:o,displayColors:a,boxHeight:r,boxWidth:l,boxPadding:h}=i,c=Si(i.bodyFont);let d=c.lineHeight,f=0;const g=Oi(i.rtl,this.x,this.width),p=function(i){e.fillText(i,g.x(t.x+f),t.y+d\u002F2),t.y+=d+n},m=g.textAlign(o);let x,b,_,y,v,M,w;for(e.textAlign=o,e.textBaseline=\"middle\",e.font=c.string,t.x=Ia(this,m,i),e.fillStyle=i.bodyColor,u(this.beforeBody,p),f=a&&\"right\"!==m?\"center\"===o?l\u002F2+h:l+2+h:0,y=0,M=s.length;y\u003CM;++y){for(x=s[y],b=this.labelTextColors[y],e.fillStyle=b,u(x.before,p),_=x.lines,a&&_.length&&(this._drawColorBox(e,t,y,g,i),d=Math.max(c.lineHeight,r)),v=0,w=_.length;v\u003Cw;++v)p(_[v]),d=c.lineHeight;u(x.after,p)}f=0,d=c.lineHeight,u(this.afterBody,p),t.y-=n}drawFooter(t,e,i){const s=this.footer,n=s.length;let o,a;if(n){const r=Oi(i.rtl,this.x,this.width);for(t.x=Ia(this,i.footerAlign,i),t.y+=i.footerMarginTop,e.textAlign=r.textAlign(i.footerAlign),e.textBaseline=\"middle\",o=Si(i.footerFont),e.fillStyle=i.footerColor,e.font=o.string,a=0;a\u003Cn;++a)e.fillText(s[a],r.x(t.x),t.y+o.lineHeight\u002F2),t.y+=o.lineHeight+i.footerSpacing}}drawBackground(t,e,i,s){const{xAlign:n,yAlign:o}=this,{x:a,y:r}=t,{width:l,height:h}=i,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=wi(s.cornerRadius);e.fillStyle=s.backgroundColor,e.strokeStyle=s.borderColor,e.lineWidth=s.borderWidth,e.beginPath(),e.moveTo(a+c,r),\"top\"===o&&this.drawCaret(t,e,i,s),e.lineTo(a+l-d,r),e.quadraticCurveTo(a+l,r,a+l,r+d),\"center\"===o&&\"right\"===n&&this.drawCaret(t,e,i,s),e.lineTo(a+l,r+h-f),e.quadraticCurveTo(a+l,r+h,a+l-f,r+h),\"bottom\"===o&&this.drawCaret(t,e,i,s),e.lineTo(a+u,r+h),e.quadraticCurveTo(a,r+h,a,r+h-u),\"center\"===o&&\"left\"===n&&this.drawCaret(t,e,i,s),e.lineTo(a,r+c),e.quadraticCurveTo(a,r,a+c,r),e.closePath(),e.fill(),s.borderWidth>0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i.x,n=i&&i.y;if(s||n){const i=Da[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Ta(this,t),a=Object.assign({},i,this._size),r=Ea(e,t,a),l=Ra(t,a,r,e);s._to===l.x&&n._to===l.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},n={x:this.x,y:this.y};i=Math.abs(i)\u003C.001?0:i;const o=ki(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(n,t,s,e),Ai(t,e.textDirection),n.y+=o.top,this.drawTitle(n,t,e),this.drawBody(n,t,e),this.drawFooter(n,t,e),Ti(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error(\"Cannot find a dataset at index \"+t);return{datasetIndex:t,element:i.data[e],index:e}})),n=!f(i,s),o=this._positionChanged(s,e);(n||o)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,n=this._active||[],o=this._getActiveElements(t,n,e,i),a=this._positionChanged(o,t),r=e||!f(o,n)||a;return r&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),r}_getActiveElements(t,e,i,s){const n=this.options;if(\"mouseout\"===t.type)return[];if(!s)return e.filter((t=>this.chart.data.datasets[t.datasetIndex]&&void 0!==this.chart.getDatasetMeta(t.datasetIndex).controller.getParsed(t.index)));const o=this.chart.getElementsAtEventForMode(t,n.mode,n,i);return n.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=Da[n.position].call(this,t,e);return!1!==o&&(i!==o.x||s!==o.y)}}var Na={id:\"tooltip\",_element:Wa,positioners:Da,afterInit(t,e,i){i&&(t.tooltip=new Wa({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(!1===t.notifyPlugins(\"beforeTooltipDraw\",{...i,cancelable:!0}))return;e.draw(t.ctx),t.notifyPlugins(\"afterTooltipDraw\",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:\"average\",backgroundColor:\"rgba(0,0,0,0.8)\",titleColor:\"#fff\",titleFont:{weight:\"bold\"},titleSpacing:2,titleMarginBottom:6,titleAlign:\"left\",bodyColor:\"#fff\",bodySpacing:2,bodyFont:{},bodyAlign:\"left\",footerColor:\"#fff\",footerSpacing:2,footerMarginTop:6,footerFont:{weight:\"bold\"},footerAlign:\"left\",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:\"#fff\",displayColors:!0,boxPadding:0,borderColor:\"rgba(0,0,0,0)\",borderWidth:0,animation:{duration:400,easing:\"easeOutQuart\"},animations:{numbers:{type:\"number\",properties:[\"x\",\"y\",\"width\",\"height\",\"caretX\",\"caretY\"]},opacity:{easing:\"linear\",duration:200}},callbacks:Va},defaultRoutes:{bodyFont:\"font\",footerFont:\"font\",titleFont:\"font\"},descriptors:{_scriptable:t=>\"filter\"!==t&&\"itemSort\"!==t&&\"external\"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:\"animation\"}},additionalOptionScopes:[\"interaction\"]};return Tn.register(Un,$o,go,t),Tn.helpers={...Hi},Tn._adapters=In,Tn.Animation=As,Tn.Animations=Ts,Tn.animator=bt,Tn.controllers=nn.controllers.items,Tn.DatasetController=js,Tn.Element=$s,Tn.elements=go,Tn.Interaction=Ki,Tn.layouts=ls,Tn.platforms=Ds,Tn.Scale=tn,Tn.Ticks=ae,Object.assign(Tn,Un,$o,go,t,Ds),Tn.Chart=Tn,\"undefined\"!=typeof window&&(window.Chart=Tn),Tn}));\r\n \u002F\u002F# sourceMappingURL=chart.umd.min.js.map\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002FDataTables\u002Fdatatables.min.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002FDataTables\u002Fdatatables.min.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002FDataTables\u002Fdatatables.min.css\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002FDataTables\u002Fdatatables.min.css\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,15 +1,15 @@\n-\u002F*\n- * This combined file was created by the DataTables downloader builder:\n- *   https:\u002F\u002Fdatatables.net\u002Fdownload\n- *\n- * To rebuild or modify this file with the latest versions of the included\n- * software please visit:\n- *   https:\u002F\u002Fdatatables.net\u002Fdownload\u002F#dt\u002Fdt-1.10.25\n- *\n- * Included libraries:\n- *   DataTables 1.10.25\n- *\u002F\n-\n-table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;*cursor:hand;background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url(\"DataTables-1.10.25\u002Fimages\u002Fsort_both.png\")}table.dataTable thead .sorting_asc{background-image:url(\"DataTables-1.10.25\u002Fimages\u002Fsort_asc.png\") !important}table.dataTable thead .sorting_desc{background-image:url(\"DataTables-1.10.25\u002Fimages\u002Fsort_desc.png\") !important}table.dataTable thead .sorting_asc_disabled{background-image:url(\"DataTables-1.10.25\u002Fimages\u002Fsort_asc_disabled.png\")}table.dataTable thead .sorting_desc_disabled{background-image:url(\"DataTables-1.10.25\u002Fimages\u002Fsort_desc_disabled.png\")}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_length select{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;padding:4px}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;margin-left:3px}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, white 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, white 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, white 0%, #dcdcdc 100%);background:-o-linear-gradient(top, white 0%, #dcdcdc 100%);background:linear-gradient(to bottom, white 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));background:-webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:-moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:-ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:-o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody>table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:\"\";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}}\n-\n-\n+\u002F*\r\n+ * This combined file was created by the DataTables downloader builder:\r\n+ *   https:\u002F\u002Fdatatables.net\u002Fdownload\r\n+ *\r\n+ * To rebuild or modify this file with the latest versions of the included\r\n+ * software please visit:\r\n+ *   https:\u002F\u002Fdatatables.net\u002Fdownload\u002F#dt\u002Fdt-1.10.25\r\n+ *\r\n+ * Included libraries:\r\n+ *   DataTables 1.10.25\r\n+ *\u002F\r\n+\r\n+table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;*cursor:hand;background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url(\"DataTables-1.10.25\u002Fimages\u002Fsort_both.png\")}table.dataTable thead .sorting_asc{background-image:url(\"DataTables-1.10.25\u002Fimages\u002Fsort_asc.png\") !important}table.dataTable thead .sorting_desc{background-image:url(\"DataTables-1.10.25\u002Fimages\u002Fsort_desc.png\") !important}table.dataTable thead .sorting_asc_disabled{background-image:url(\"DataTables-1.10.25\u002Fimages\u002Fsort_asc_disabled.png\")}table.dataTable thead .sorting_desc_disabled{background-image:url(\"DataTables-1.10.25\u002Fimages\u002Fsort_desc_disabled.png\")}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_length select{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;padding:4px}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;margin-left:3px}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, white 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, white 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, white 0%, #dcdcdc 100%);background:-o-linear-gradient(top, white 0%, #dcdcdc 100%);background:linear-gradient(to bottom, white 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));background:-webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:-moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:-ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:-o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);background:linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody>table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:\"\";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}}\r\n+\r\n+\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002FDataTables\u002Fdatatables.min.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002FDataTables\u002Fdatatables.min.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002FDataTables\u002Fdatatables.min.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002FDataTables\u002Fdatatables.min.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,205 +1,205 @@\n-\u002F*\n- * This combined file was created by the DataTables downloader builder:\n- *   https:\u002F\u002Fdatatables.net\u002Fdownload\n- *\n- * To rebuild or modify this file with the latest versions of the included\n- * software please visit:\n- *   https:\u002F\u002Fdatatables.net\u002Fdownload\u002F#dt\u002Fdt-1.10.25\n- *\n- * Included libraries:\n- *   DataTables 1.10.25\n- *\u002F\n-\n-\u002F*!\n-   Copyright 2008-2021 SpryMedia Ltd.\n-\n- This source file is free software, available under the following license:\n-   MIT license - http:\u002F\u002Fdatatables.net\u002Flicense\n-\n- This source file is distributed in the hope that it will be useful, but\n- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n- or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\n-\n- For details please refer to: http:\u002F\u002Fwww.datatables.net\n- DataTables 1.10.25\n- ©2008-2021 SpryMedia Ltd - datatables.net\u002Flicense\n-*\u002F\n-var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(k,y,z){k instanceof String&&(k=String(k));for(var q=k.length,G=0;G\u003Cq;G++){var O=k[G];if(y.call(z,O,G,k))return{i:G,v:O}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;\n-$jscomp.defineProperty=$jscomp.ASSUME_ES5||\"function\"==typeof Object.defineProperties?Object.defineProperty:function(k,y,z){if(k==Array.prototype||k==Object.prototype)return k;k[y]=z.value;return k};$jscomp.getGlobal=function(k){k=[\"object\"==typeof globalThis&&globalThis,k,\"object\"==typeof window&&window,\"object\"==typeof self&&self,\"object\"==typeof global&&global];for(var y=0;y\u003Ck.length;++y){var z=k[y];if(z&&z.Math==Math)return z}throw Error(\"Cannot find global object\");};$jscomp.global=$jscomp.getGlobal(this);\n-$jscomp.IS_SYMBOL_NATIVE=\"function\"===typeof Symbol&&\"symbol\"===typeof Symbol(\"x\");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX=\"$jscp$\";var $jscomp$lookupPolyfilledValue=function(k,y){var z=$jscomp.propertyToPolyfillSymbol[y];if(null==z)return k[y];z=k[z];return void 0!==z?z:k[y]};\n-$jscomp.polyfill=function(k,y,z,q){y&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(k,y,z,q):$jscomp.polyfillUnisolated(k,y,z,q))};$jscomp.polyfillUnisolated=function(k,y,z,q){z=$jscomp.global;k=k.split(\".\");for(q=0;q\u003Ck.length-1;q++){var G=k[q];if(!(G in z))return;z=z[G]}k=k[k.length-1];q=z[k];y=y(q);y!=q&&null!=y&&$jscomp.defineProperty(z,k,{configurable:!0,writable:!0,value:y})};\n-$jscomp.polyfillIsolated=function(k,y,z,q){var G=k.split(\".\");k=1===G.length;q=G[0];q=!k&&q in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var O=0;O\u003CG.length-1;O++){var ma=G[O];if(!(ma in q))return;q=q[ma]}G=G[G.length-1];z=$jscomp.IS_SYMBOL_NATIVE&&\"es6\"===z?q[G]:null;y=y(z);null!=y&&(k?$jscomp.defineProperty($jscomp.polyfills,G,{configurable:!0,writable:!0,value:y}):y!==z&&($jscomp.propertyToPolyfillSymbol[G]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global.Symbol(G):$jscomp.POLYFILL_PREFIX+G,\n-G=$jscomp.propertyToPolyfillSymbol[G],$jscomp.defineProperty(q,G,{configurable:!0,writable:!0,value:y})))};$jscomp.polyfill(\"Array.prototype.find\",function(k){return k?k:function(y,z){return $jscomp.findInternal(this,y,z).v}},\"es6\",\"es3\");\n-(function(k){\"function\"===typeof define&&define.amd?define([\"jquery\"],function(y){return k(y,window,document)}):\"object\"===typeof exports?module.exports=function(y,z){y||(y=window);z||(z=\"undefined\"!==typeof window?require(\"jquery\"):require(\"jquery\")(y));return k(z,y,y.document)}:k(jQuery,window,document)})(function(k,y,z,q){function G(a){var b,c,d={};k.each(a,function(e,f){(b=e.match(\u002F^([^A-Z]+?)([A-Z])\u002F))&&-1!==\"a aa ai ao as b fn i m o s \".indexOf(b[1]+\" \")&&(c=e.replace(b[0],b[2].toLowerCase()),\n-d[c]=e,\"o\"===b[1]&&G(a[e]))});a._hungarianMap=d}function O(a,b,c){a._hungarianMap||G(a);var d;k.each(b,function(e,f){d=a._hungarianMap[e];d===q||!c&&b[d]!==q||(\"o\"===d.charAt(0)?(b[d]||(b[d]={}),k.extend(!0,b[d],b[e]),O(a[d],b[d],c)):b[d]=b[e])})}function ma(a){var b=u.defaults.oLanguage,c=b.sDecimal;c&&Wa(c);if(a){var d=a.sZeroRecords;!a.sEmptyTable&&d&&\"No data available in table\"===b.sEmptyTable&&V(a,a,\"sZeroRecords\",\"sEmptyTable\");!a.sLoadingRecords&&d&&\"Loading...\"===b.sLoadingRecords&&V(a,a,\n-\"sZeroRecords\",\"sLoadingRecords\");a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&c!==a&&Wa(a)}}function zb(a){R(a,\"ordering\",\"bSort\");R(a,\"orderMulti\",\"bSortMulti\");R(a,\"orderClasses\",\"bSortClasses\");R(a,\"orderCellsTop\",\"bSortCellsTop\");R(a,\"order\",\"aaSorting\");R(a,\"orderFixed\",\"aaSortingFixed\");R(a,\"paging\",\"bPaginate\");R(a,\"pagingType\",\"sPaginationType\");R(a,\"pageLength\",\"iDisplayLength\");R(a,\"searching\",\"bFilter\");\"boolean\"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?\"100%\":\n-\"\");\"boolean\"===typeof a.scrollX&&(a.scrollX=a.scrollX?\"100%\":\"\");if(a=a.aoSearchCols)for(var b=0,c=a.length;b\u003Cc;b++)a[b]&&O(u.models.oSearch,a[b])}function Ab(a){R(a,\"orderable\",\"bSortable\");R(a,\"orderData\",\"aDataSort\");R(a,\"orderSequence\",\"asSorting\");R(a,\"orderDataType\",\"sortDataType\");var b=a.aDataSort;\"number\"!==typeof b||Array.isArray(b)||(a.aDataSort=[b])}function Bb(a){if(!u.__browser){var b={};u.__browser=b;var c=k(\"\u003Cdiv\u002F>\").css({position:\"fixed\",top:0,left:-1*k(y).scrollLeft(),height:1,\n-width:1,overflow:\"hidden\"}).append(k(\"\u003Cdiv\u002F>\").css({position:\"absolute\",top:1,left:1,width:100,overflow:\"scroll\"}).append(k(\"\u003Cdiv\u002F>\").css({width:\"100%\",height:10}))).appendTo(\"body\"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}k.extend(a.oBrowser,u.__browser);a.oScroll.iBarWidth=u.__browser.barWidth}\n-function Cb(a,b,c,d,e,f){var g=!1;if(c!==q){var h=c;g=!0}for(;d!==e;)a.hasOwnProperty(d)&&(h=g?b(h,a[d],d,a):a[d],g=!0,d+=f);return h}function Xa(a,b){var c=u.defaults.column,d=a.aoColumns.length;c=k.extend({},u.models.oColumn,c,{nTh:b?b:z.createElement(\"th\"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:\"\",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=k.extend({},u.models.oSearch,c[d]);Ea(a,d,k(b).data())}function Ea(a,b,c){b=a.aoColumns[b];\n-var d=a.oClasses,e=k(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr(\"width\")||null;var f=(e.attr(\"style\")||\"\").match(\u002Fwidth:\\s*(\\d+[pxem%]+)\u002F);f&&(b.sWidthOrig=f[1])}c!==q&&null!==c&&(Ab(c),O(u.defaults.column,c,!0),c.mDataProp===q||c.mData||(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),k.extend(b,c),V(b,c,\"sWidth\",\"sWidthOrig\"),c.iDataSort!==q&&(b.aDataSort=[c.iDataSort]),V(b,c,\"aDataSort\"));var g=b.mData,h=ia(g),\n-l=b.mRender?ia(b.mRender):null;c=function(n){return\"string\"===typeof n&&-1!==n.indexOf(\"@\")};b._bAttrSrc=k.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(n,m,p){var t=h(n,m,q,p);return l&&m?l(t,m,n,p):t};b.fnSetData=function(n,m,p){return da(g)(n,m,p)};\"number\"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==k.inArray(\"asc\",b.asSorting);c=-1!==k.inArray(\"desc\",b.asSorting);b.bSortable&&(a||c)?a&&!c?\n-(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI):(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=\"\")}function ra(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ya(a);for(var c=0,d=b.length;c\u003Cd;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;\"\"===b.sY&&\"\"===b.sX||Fa(a);H(a,null,\"column-sizing\",[a])}function sa(a,b){a=Ga(a,\"bVisible\");\n-return\"number\"===typeof a[b]?a[b]:null}function ta(a,b){a=Ga(a,\"bVisible\");b=k.inArray(b,a);return-1!==b?b:null}function na(a){var b=0;k.each(a.aoColumns,function(c,d){d.bVisible&&\"none\"!==k(d.nTh).css(\"display\")&&b++});return b}function Ga(a,b){var c=[];k.map(a.aoColumns,function(d,e){d[b]&&c.push(e)});return c}function Za(a){var b=a.aoColumns,c=a.aoData,d=u.ext.type.detect,e,f,g;var h=0;for(e=b.length;h\u003Ce;h++){var l=b[h];var n=[];if(!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){var m=\n-0;for(f=d.length;m\u003Cf;m++){var p=0;for(g=c.length;p\u003Cg;p++){n[p]===q&&(n[p]=S(a,p,h,\"type\"));var t=d[m](n[p],a);if(!t&&m!==d.length-1)break;if(\"html\"===t&&!Z(n[p]))break}if(t){l.sType=t;break}}l.sType||(l.sType=\"string\")}}}function Db(a,b,c,d){var e,f,g,h=a.aoColumns;if(b)for(e=b.length-1;0\u003C=e;e--){var l=b[e];var n=l.targets!==q?l.targets:l.aTargets;Array.isArray(n)||(n=[n]);var m=0;for(f=n.length;m\u003Cf;m++)if(\"number\"===typeof n[m]&&0\u003C=n[m]){for(;h.length\u003C=n[m];)Xa(a);d(n[m],l)}else if(\"number\"===typeof n[m]&&\n-0>n[m])d(h.length+n[m],l);else if(\"string\"===typeof n[m]){var p=0;for(g=h.length;p\u003Cg;p++)(\"_all\"==n[m]||k(h[p].nTh).hasClass(n[m]))&&d(p,l)}}if(c)for(e=0,a=c.length;e\u003Ca;e++)d(e,c[e])}function ea(a,b,c,d){var e=a.aoData.length,f=k.extend(!0,{},u.models.oRow,{src:c?\"dom\":\"data\",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,h=0,l=g.length;h\u003Cl;h++)g[h].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==q&&(a.aIds[b]=f);!c&&a.oFeatures.bDeferRender||$a(a,e,c,d);return e}function Ha(a,\n-b){var c;b instanceof k||(b=k(b));return b.map(function(d,e){c=ab(a,e);return ea(a,c.data,e,c.cells)})}function S(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,h=f.sDefaultContent,l=f.fnGetData(g,d,{settings:a,row:b,col:c});if(l===q)return a.iDrawError!=e&&null===h&&(ca(a,0,\"Requested unknown parameter \"+(\"function\"==typeof f.mData?\"{function}\":\"'\"+f.mData+\"'\")+\" for row \"+b+\", column \"+c,4),a.iDrawError=e),h;if((l===g||null===l)&&null!==h&&d!==q)l=h;else if(\"function\"===typeof l)return l.call(g);\n-return null===l&&\"display\"==d?\"\":l}function Eb(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})}function bb(a){return k.map(a.match(\u002F(\\\\.|[^\\.])+\u002Fg)||[\"\"],function(b){return b.replace(\u002F\\\\\\.\u002Fg,\".\")})}function ia(a){if(k.isPlainObject(a)){var b={};k.each(a,function(d,e){e&&(b[d]=ia(e))});return function(d,e,f,g){var h=b[e]||b._;return h!==q?h(d,e,f,g):d}}if(null===a)return function(d){return d};if(\"function\"===typeof a)return function(d,e,f,g){return a(d,e,f,g)};if(\"string\"!==\n-typeof a||-1===a.indexOf(\".\")&&-1===a.indexOf(\"[\")&&-1===a.indexOf(\"(\"))return function(d,e){return d[a]};var c=function(d,e,f){if(\"\"!==f){var g=bb(f);for(var h=0,l=g.length;h\u003Cl;h++){f=g[h].match(ua);var n=g[h].match(oa);if(f){g[h]=g[h].replace(ua,\"\");\"\"!==g[h]&&(d=d[g[h]]);n=[];g.splice(0,h+1);g=g.join(\".\");if(Array.isArray(d))for(h=0,l=d.length;h\u003Cl;h++)n.push(c(d[h],e,g));d=f[0].substring(1,f[0].length-1);d=\"\"===d?n:n.join(d);break}else if(n){g[h]=g[h].replace(oa,\"\");d=d[g[h]]();continue}if(null===\n-d||d[g[h]]===q)return q;d=d[g[h]]}}return d};return function(d,e){return c(d,e,a)}}function da(a){if(k.isPlainObject(a))return da(a._);if(null===a)return function(){};if(\"function\"===typeof a)return function(c,d,e){a(c,\"set\",d,e)};if(\"string\"!==typeof a||-1===a.indexOf(\".\")&&-1===a.indexOf(\"[\")&&-1===a.indexOf(\"(\"))return function(c,d){c[a]=d};var b=function(c,d,e){e=bb(e);var f=e[e.length-1];for(var g,h,l=0,n=e.length-1;l\u003Cn;l++){if(\"__proto__\"===e[l]||\"constructor\"===e[l])throw Error(\"Cannot set prototype values\");\n-g=e[l].match(ua);h=e[l].match(oa);if(g){e[l]=e[l].replace(ua,\"\");c[e[l]]=[];f=e.slice();f.splice(0,l+1);g=f.join(\".\");if(Array.isArray(d))for(h=0,n=d.length;h\u003Cn;h++)f={},b(f,d[h],g),c[e[l]].push(f);else c[e[l]]=d;return}h&&(e[l]=e[l].replace(oa,\"\"),c=c[e[l]](d));if(null===c[e[l]]||c[e[l]]===q)c[e[l]]={};c=c[e[l]]}if(f.match(oa))c[f.replace(oa,\"\")](d);else c[f.replace(ua,\"\")]=d};return function(c,d){return b(c,d,a)}}function cb(a){return T(a.aoData,\"_aData\")}function Ia(a){a.aoData.length=0;a.aiDisplayMaster.length=\n-0;a.aiDisplay.length=0;a.aIds={}}function Ja(a,b,c){for(var d=-1,e=0,f=a.length;e\u003Cf;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===q&&a.splice(d,1)}function va(a,b,c,d){var e=a.aoData[b],f,g=function(l,n){for(;l.childNodes.length;)l.removeChild(l.firstChild);l.innerHTML=S(a,b,n,\"display\")};if(\"dom\"!==c&&(c&&\"auto\"!==c||\"dom\"!==e.src)){var h=e.anCells;if(h)if(d!==q)g(h[d],d);else for(c=0,f=h.length;c\u003Cf;c++)g(h[c],c)}else e._aData=ab(a,e,d,d===q?q:e._aData).data;e._aSortData=null;e._aFilterData=null;g=\n-a.aoColumns;if(d!==q)g[d].sType=null;else{c=0;for(f=g.length;c\u003Cf;c++)g[c].sType=null;db(a,e)}}function ab(a,b,c,d){var e=[],f=b.firstChild,g,h=0,l,n=a.aoColumns,m=a._rowReadObject;d=d!==q?d:m?{}:[];var p=function(x,r){if(\"string\"===typeof x){var A=x.indexOf(\"@\");-1!==A&&(A=x.substring(A+1),da(x)(d,r.getAttribute(A)))}},t=function(x){if(c===q||c===h)g=n[h],l=x.innerHTML.trim(),g&&g._bAttrSrc?(da(g.mData._)(d,l),p(g.mData.sort,x),p(g.mData.type,x),p(g.mData.filter,x)):m?(g._setter||(g._setter=da(g.mData)),\n-g._setter(d,l)):d[h]=l;h++};if(f)for(;f;){var v=f.nodeName.toUpperCase();if(\"TD\"==v||\"TH\"==v)t(f),e.push(f);f=f.nextSibling}else for(e=b.anCells,f=0,v=e.length;f\u003Cv;f++)t(e[f]);(b=b.firstChild?b:b.nTr)&&(b=b.getAttribute(\"id\"))&&da(a.rowId)(d,b);return{data:d,cells:e}}function $a(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],h,l;if(null===e.nTr){var n=c||z.createElement(\"tr\");e.nTr=n;e.anCells=g;n._DT_RowIndex=b;db(a,e);var m=0;for(h=a.aoColumns.length;m\u003Ch;m++){var p=a.aoColumns[m];e=(l=c?!1:!0)?z.createElement(p.sCellType):\n-d[m];e._DT_CellIndex={row:b,column:m};g.push(e);if(l||!(!p.mRender&&p.mData===m||k.isPlainObject(p.mData)&&p.mData._===m+\".display\"))e.innerHTML=S(a,b,m,\"display\");p.sClass&&(e.className+=\" \"+p.sClass);p.bVisible&&!c?n.appendChild(e):!p.bVisible&&c&&e.parentNode.removeChild(e);p.fnCreatedCell&&p.fnCreatedCell.call(a.oInstance,e,S(a,b,m),f,b,m)}H(a,\"aoRowCreatedCallback\",null,[n,f,b,g])}}function db(a,b){var c=b.nTr,d=b._aData;if(c){if(a=a.rowIdFn(d))c.id=a;d.DT_RowClass&&(a=d.DT_RowClass.split(\" \"),\n-b.__rowc=b.__rowc?Ka(b.__rowc.concat(a)):a,k(c).removeClass(b.__rowc.join(\" \")).addClass(d.DT_RowClass));d.DT_RowAttr&&k(c).attr(d.DT_RowAttr);d.DT_RowData&&k(c).data(d.DT_RowData)}}function Fb(a){var b,c,d=a.nTHead,e=a.nTFoot,f=0===k(\"th, td\",d).length,g=a.oClasses,h=a.aoColumns;f&&(c=k(\"\u003Ctr\u002F>\").appendTo(d));var l=0;for(b=h.length;l\u003Cb;l++){var n=h[l];var m=k(n.nTh).addClass(n.sClass);f&&m.appendTo(c);a.oFeatures.bSort&&(m.addClass(n.sSortingClass),!1!==n.bSortable&&(m.attr(\"tabindex\",a.iTabIndex).attr(\"aria-controls\",\n-a.sTableId),eb(a,n.nTh,l)));n.sTitle!=m[0].innerHTML&&m.html(n.sTitle);fb(a,\"header\")(a,m,n,g)}f&&wa(a.aoHeader,d);k(d).children(\"tr\").attr(\"role\",\"row\");k(d).children(\"tr\").children(\"th, td\").addClass(g.sHeaderTH);k(e).children(\"tr\").children(\"th, td\").addClass(g.sFooterTH);if(null!==e)for(a=a.aoFooter[0],l=0,b=a.length;l\u003Cb;l++)n=h[l],n.nTf=a[l].cell,n.sClass&&k(n.nTf).addClass(n.sClass)}function xa(a,b,c){var d,e,f=[],g=[],h=a.aoColumns.length;if(b){c===q&&(c=!1);var l=0;for(d=b.length;l\u003Cd;l++){f[l]=\n-b[l].slice();f[l].nTr=b[l].nTr;for(e=h-1;0\u003C=e;e--)a.aoColumns[e].bVisible||c||f[l].splice(e,1);g.push([])}l=0;for(d=f.length;l\u003Cd;l++){if(a=f[l].nTr)for(;e=a.firstChild;)a.removeChild(e);e=0;for(b=f[l].length;e\u003Cb;e++){var n=h=1;if(g[l][e]===q){a.appendChild(f[l][e].cell);for(g[l][e]=1;f[l+h]!==q&&f[l][e].cell==f[l+h][e].cell;)g[l+h][e]=1,h++;for(;f[l][e+n]!==q&&f[l][e].cell==f[l][e+n].cell;){for(c=0;c\u003Ch;c++)g[l+c][e+n]=1;n++}k(f[l][e].cell).attr(\"rowspan\",h).attr(\"colspan\",n)}}}}}function fa(a,b){var c=\n-H(a,\"aoPreDrawCallback\",\"preDraw\",[a]);if(-1!==k.inArray(!1,c))U(a,!1);else{c=[];var d=0,e=a.asStripeClasses,f=e.length,g=a.oLanguage,h=a.iInitDisplayStart,l=\"ssp\"==P(a),n=a.aiDisplay;a.bDrawing=!0;h!==q&&-1!==h&&(a._iDisplayStart=l?h:h>=a.fnRecordsDisplay()?0:h,a.iInitDisplayStart=-1);h=a._iDisplayStart;var m=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,U(a,!1);else if(!l)a.iDraw++;else if(!a.bDestroying&&!b){Gb(a);return}if(0!==n.length)for(b=l?a.aoData.length:m,g=l?0:h;g\u003Cb;g++){l=\n-n[g];var p=a.aoData[l];null===p.nTr&&$a(a,l);var t=p.nTr;if(0!==f){var v=e[d%f];p._sRowStripe!=v&&(k(t).removeClass(p._sRowStripe).addClass(v),p._sRowStripe=v)}H(a,\"aoRowCallback\",null,[t,p._aData,d,g,l]);c.push(t);d++}else d=g.sZeroRecords,1==a.iDraw&&\"ajax\"==P(a)?d=g.sLoadingRecords:g.sEmptyTable&&0===a.fnRecordsTotal()&&(d=g.sEmptyTable),c[0]=k(\"\u003Ctr\u002F>\",{\"class\":f?e[0]:\"\"}).append(k(\"\u003Ctd \u002F>\",{valign:\"top\",colSpan:na(a),\"class\":a.oClasses.sRowEmpty}).html(d))[0];H(a,\"aoHeaderCallback\",\"header\",[k(a.nTHead).children(\"tr\")[0],\n-cb(a),h,m,n]);H(a,\"aoFooterCallback\",\"footer\",[k(a.nTFoot).children(\"tr\")[0],cb(a),h,m,n]);e=k(a.nTBody);e.children().detach();e.append(k(c));H(a,\"aoDrawCallback\",\"draw\",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function ja(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&Hb(a);d?ya(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;fa(a);a._drawHold=!1}function Ib(a){var b=a.oClasses,c=k(a.nTable);c=k(\"\u003Cdiv\u002F>\").insertBefore(c);var d=a.oFeatures,\n-e=k(\"\u003Cdiv\u002F>\",{id:a.sTableId+\"_wrapper\",\"class\":b.sWrapper+(a.nTFoot?\"\":\" \"+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(\"\"),g,h,l,n,m,p,t=0;t\u003Cf.length;t++){g=null;h=f[t];if(\"\u003C\"==h){l=k(\"\u003Cdiv\u002F>\")[0];n=f[t+1];if(\"'\"==n||'\"'==n){m=\"\";for(p=2;f[t+p]!=n;)m+=f[t+p],p++;\"H\"==m?m=b.sJUIHeader:\"F\"==m&&(m=b.sJUIFooter);-1!=m.indexOf(\".\")?(n=m.split(\".\"),l.id=n[0].substr(1,n[0].length-1),l.className=n[1]):\"#\"==m.charAt(0)?l.id=m.substr(1,\n-m.length-1):l.className=m;t+=p}e.append(l);e=k(l)}else if(\">\"==h)e=e.parent();else if(\"l\"==h&&d.bPaginate&&d.bLengthChange)g=Jb(a);else if(\"f\"==h&&d.bFilter)g=Kb(a);else if(\"r\"==h&&d.bProcessing)g=Lb(a);else if(\"t\"==h)g=Mb(a);else if(\"i\"==h&&d.bInfo)g=Nb(a);else if(\"p\"==h&&d.bPaginate)g=Ob(a);else if(0!==u.ext.feature.length)for(l=u.ext.feature,p=0,n=l.length;p\u003Cn;p++)if(h==l[p].cFeature){g=l[p].fnInit(a);break}g&&(l=a.aanFeatures,l[h]||(l[h]=[]),l[h].push(g),e.append(g))}c.replaceWith(e);a.nHolding=\n-null}function wa(a,b){b=k(b).children(\"tr\");var c,d,e;a.splice(0,a.length);var f=0;for(e=b.length;f\u003Ce;f++)a.push([]);f=0;for(e=b.length;f\u003Ce;f++){var g=b[f];for(c=g.firstChild;c;){if(\"TD\"==c.nodeName.toUpperCase()||\"TH\"==c.nodeName.toUpperCase()){var h=1*c.getAttribute(\"colspan\");var l=1*c.getAttribute(\"rowspan\");h=h&&0!==h&&1!==h?h:1;l=l&&0!==l&&1!==l?l:1;var n=0;for(d=a[f];d[n];)n++;var m=n;var p=1===h?!0:!1;for(d=0;d\u003Ch;d++)for(n=0;n\u003Cl;n++)a[f+n][m+d]={cell:c,unique:p},a[f+n].nTr=g}c=c.nextSibling}}}\n-function La(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],wa(c,b)));b=0;for(var e=c.length;b\u003Ce;b++)for(var f=0,g=c[b].length;f\u003Cg;f++)!c[b][f].unique||d[f]&&a.bSortCellsTop||(d[f]=c[b][f].cell);return d}function Ma(a,b,c){H(a,\"aoServerParams\",\"serverParams\",[b]);if(b&&Array.isArray(b)){var d={},e=\u002F(.*?)\\[\\]$\u002F;k.each(b,function(m,p){(m=p.name.match(e))?(m=m[0],d[m]||(d[m]=[]),d[m].push(p.value)):d[p.name]=p.value});b=d}var f=a.ajax,g=a.oInstance,h=function(m){H(a,null,\"xhr\",[a,m,a.jqXHR]);c(m)};if(k.isPlainObject(f)&&\n-f.data){var l=f.data;var n=\"function\"===typeof l?l(b,a):l;b=\"function\"===typeof l&&n?n:k.extend(!0,b,n);delete f.data}n={data:b,success:function(m){var p=m.error||m.sError;p&&ca(a,0,p);a.json=m;h(m)},dataType:\"json\",cache:!1,type:a.sServerMethod,error:function(m,p,t){t=H(a,null,\"xhr\",[a,null,a.jqXHR]);-1===k.inArray(!0,t)&&(\"parsererror\"==p?ca(a,0,\"Invalid JSON response\",1):4===m.readyState&&ca(a,0,\"Ajax error\",7));U(a,!1)}};a.oAjaxData=b;H(a,null,\"preXhr\",[a,b]);a.fnServerData?a.fnServerData.call(g,\n-a.sAjaxSource,k.map(b,function(m,p){return{name:p,value:m}}),h,a):a.sAjaxSource||\"string\"===typeof f?a.jqXHR=k.ajax(k.extend(n,{url:f||a.sAjaxSource})):\"function\"===typeof f?a.jqXHR=f.call(g,b,h,a):(a.jqXHR=k.ajax(k.extend(n,f)),f.data=l)}function Gb(a){a.iDraw++;U(a,!0);Ma(a,Pb(a),function(b){Qb(a,b)})}function Pb(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g=[],h=pa(a);var l=a._iDisplayStart;var n=!1!==d.bPaginate?a._iDisplayLength:-1;var m=function(x,r){g.push({name:x,\n-value:r})};m(\"sEcho\",a.iDraw);m(\"iColumns\",c);m(\"sColumns\",T(b,\"sName\").join(\",\"));m(\"iDisplayStart\",l);m(\"iDisplayLength\",n);var p={draw:a.iDraw,columns:[],order:[],start:l,length:n,search:{value:e.sSearch,regex:e.bRegex}};for(l=0;l\u003Cc;l++){var t=b[l];var v=f[l];n=\"function\"==typeof t.mData?\"function\":t.mData;p.columns.push({data:n,name:t.sName,searchable:t.bSearchable,orderable:t.bSortable,search:{value:v.sSearch,regex:v.bRegex}});m(\"mDataProp_\"+l,n);d.bFilter&&(m(\"sSearch_\"+l,v.sSearch),m(\"bRegex_\"+\n-l,v.bRegex),m(\"bSearchable_\"+l,t.bSearchable));d.bSort&&m(\"bSortable_\"+l,t.bSortable)}d.bFilter&&(m(\"sSearch\",e.sSearch),m(\"bRegex\",e.bRegex));d.bSort&&(k.each(h,function(x,r){p.order.push({column:r.col,dir:r.dir});m(\"iSortCol_\"+x,r.col);m(\"sSortDir_\"+x,r.dir)}),m(\"iSortingCols\",h.length));b=u.ext.legacy.ajax;return null===b?a.sAjaxSource?g:p:b?g:p}function Qb(a,b){var c=function(g,h){return b[g]!==q?b[g]:b[h]},d=Na(a,b),e=c(\"sEcho\",\"draw\"),f=c(\"iTotalRecords\",\"recordsTotal\");c=c(\"iTotalDisplayRecords\",\n-\"recordsFiltered\");if(e!==q){if(1*e\u003Ca.iDraw)return;a.iDraw=1*e}Ia(a);a._iRecordsTotal=parseInt(f,10);a._iRecordsDisplay=parseInt(c,10);e=0;for(f=d.length;e\u003Cf;e++)ea(a,d[e]);a.aiDisplay=a.aiDisplayMaster.slice();fa(a,!0);a._bInitComplete||Oa(a,b);U(a,!1)}function Na(a,b){a=k.isPlainObject(a.ajax)&&a.ajax.dataSrc!==q?a.ajax.dataSrc:a.sAjaxDataProp;return\"data\"===a?b.aaData||b[a]:\"\"!==a?ia(a)(b):b}function Kb(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='\u003Cinput type=\"search\" class=\"'+\n-b.sFilterInput+'\"\u002F>',h=d.sSearch;h=h.match(\u002F_INPUT_\u002F)?h.replace(\"_INPUT_\",g):h+g;b=k(\"\u003Cdiv\u002F>\",{id:f.f?null:c+\"_filter\",\"class\":b.sFilter}).append(k(\"\u003Clabel\u002F>\").append(h));var l=function(){var m=this.value?this.value:\"\";m!=e.sSearch&&(ya(a,{sSearch:m,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,fa(a))};f=null!==a.searchDelay?a.searchDelay:\"ssp\"===P(a)?400:0;var n=k(\"input\",b).val(e.sSearch).attr(\"placeholder\",d.sSearchPlaceholder).on(\"keyup.DT search.DT input.DT paste.DT cut.DT\",\n-f?gb(l,f):l).on(\"mouseup\",function(m){setTimeout(function(){l.call(n[0])},10)}).on(\"keypress.DT\",function(m){if(13==m.keyCode)return!1}).attr(\"aria-controls\",c);k(a.nTable).on(\"search.dt.DT\",function(m,p){if(a===p)try{n[0]!==z.activeElement&&n.val(e.sSearch)}catch(t){}});return b[0]}function ya(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(h){d.sSearch=h.sSearch;d.bRegex=h.bRegex;d.bSmart=h.bSmart;d.bCaseInsensitive=h.bCaseInsensitive},g=function(h){return h.bEscapeRegex!==q?!h.bEscapeRegex:\n-h.bRegex};Za(a);if(\"ssp\"!=P(a)){Rb(a,b.sSearch,c,g(b),b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b\u003Ce.length;b++)Sb(a,e[b].sSearch,b,g(e[b]),e[b].bSmart,e[b].bCaseInsensitive);Tb(a)}else f(b);a.bFiltered=!0;H(a,null,\"search\",[a])}function Tb(a){for(var b=u.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f\u003Cg;f++){for(var h=[],l=0,n=c.length;l\u003Cn;l++)e=c[l],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,l)&&h.push(e);c.length=0;k.merge(c,h)}}function Sb(a,b,c,d,e,f){if(\"\"!==b){var g=[],h=a.aiDisplay;d=hb(b,\n-d,e,f);for(e=0;e\u003Ch.length;e++)b=a.aoData[h[e]]._aFilterData[c],d.test(b)&&g.push(h[e]);a.aiDisplay=g}}function Rb(a,b,c,d,e,f){e=hb(b,d,e,f);var g=a.oPreviousSearch.sSearch,h=a.aiDisplayMaster;f=[];0!==u.ext.search.length&&(c=!0);var l=Ub(a);if(0>=b.length)a.aiDisplay=h.slice();else{if(l||c||d||g.length>b.length||0!==b.indexOf(g)||a.bSorted)a.aiDisplay=h.slice();b=a.aiDisplay;for(c=0;c\u003Cb.length;c++)e.test(a.aoData[b[c]]._sFilterRow)&&f.push(b[c]);a.aiDisplay=f}}function hb(a,b,c,d){a=b?a:ib(a);c&&\n-(a=\"^(?=.*?\"+k.map(a.match(\u002F\"[^\"]+\"|[^ ]+\u002Fg)||[\"\"],function(e){if('\"'===e.charAt(0)){var f=e.match(\u002F^\"(.*)\"$\u002F);e=f?f[1]:e}return e.replace('\"',\"\")}).join(\")(?=.*?\")+\").*$\");return new RegExp(a,d?\"i\":\"\")}function Ub(a){var b=a.aoColumns,c,d,e=u.ext.type.search;var f=!1;var g=0;for(c=a.aoData.length;g\u003Cc;g++){var h=a.aoData[g];if(!h._aFilterData){var l=[];var n=0;for(d=b.length;n\u003Cd;n++){f=b[n];if(f.bSearchable){var m=S(a,g,n,\"filter\");e[f.sType]&&(m=e[f.sType](m));null===m&&(m=\"\");\"string\"!==typeof m&&\n-m.toString&&(m=m.toString())}else m=\"\";m.indexOf&&-1!==m.indexOf(\"&\")&&(Pa.innerHTML=m,m=rc?Pa.textContent:Pa.innerText);m.replace&&(m=m.replace(\u002F[\\r\\n\\u2028]\u002Fg,\"\"));l.push(m)}h._aFilterData=l;h._sFilterRow=l.join(\"  \");f=!0}}return f}function Vb(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,caseInsensitive:a.bCaseInsensitive}}function Wb(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function Nb(a){var b=a.sTableId,c=a.aanFeatures.i,d=k(\"\u003Cdiv\u002F>\",\n-{\"class\":a.oClasses.sInfo,id:c?null:b+\"_info\"});c||(a.aoDrawCallback.push({fn:Xb,sName:\"information\"}),d.attr(\"role\",\"status\").attr(\"aria-live\",\"polite\"),k(a.nTable).attr(\"aria-describedby\",b+\"_info\"));return d[0]}function Xb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),h=g?c.sInfo:c.sInfoEmpty;g!==f&&(h+=\" \"+c.sInfoFiltered);h+=c.sInfoPostFix;h=Yb(a,h);c=c.fnInfoCallback;null!==c&&(h=c.call(a.oInstance,\n-a,d,e,f,g,h));k(b).html(h)}}function Yb(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(\u002F_START_\u002Fg,c.call(a,d)).replace(\u002F_END_\u002Fg,c.call(a,a.fnDisplayEnd())).replace(\u002F_MAX_\u002Fg,c.call(a,a.fnRecordsTotal())).replace(\u002F_TOTAL_\u002Fg,c.call(a,f)).replace(\u002F_PAGE_\u002Fg,c.call(a,g?1:Math.ceil(d\u002Fe))).replace(\u002F_PAGES_\u002Fg,c.call(a,g?1:Math.ceil(f\u002Fe)))}function za(a){var b=a.iInitDisplayStart,c=a.aoColumns;var d=a.oFeatures;var e=a.bDeferLoading;if(a.bInitialised){Ib(a);\n-Fb(a);xa(a,a.aoHeader);xa(a,a.aoFooter);U(a,!0);d.bAutoWidth&&Ya(a);var f=0;for(d=c.length;f\u003Cd;f++){var g=c[f];g.sWidth&&(g.nTh.style.width=K(g.sWidth))}H(a,null,\"preInit\",[a]);ja(a);c=P(a);if(\"ssp\"!=c||e)\"ajax\"==c?Ma(a,[],function(h){var l=Na(a,h);for(f=0;f\u003Cl.length;f++)ea(a,l[f]);a.iInitDisplayStart=b;ja(a);U(a,!1);Oa(a,h)},a):(U(a,!1),Oa(a))}else setTimeout(function(){za(a)},200)}function Oa(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&ra(a);H(a,null,\"plugin-init\",[a,b]);H(a,\"aoInitComplete\",\n-\"init\",[a,b])}function jb(a,b){b=parseInt(b,10);a._iDisplayLength=b;kb(a);H(a,null,\"length\",[a,b])}function Jb(a){var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=Array.isArray(d[0]),f=e?d[0]:d;d=e?d[1]:d;e=k(\"\u003Cselect\u002F>\",{name:c+\"_length\",\"aria-controls\":c,\"class\":b.sLengthSelect});for(var g=0,h=f.length;g\u003Ch;g++)e[0][g]=new Option(\"number\"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],f[g]);var l=k(\"\u003Cdiv>\u003Clabel\u002F>\u003C\u002Fdiv>\").addClass(b.sLength);a.aanFeatures.l||(l[0].id=c+\"_length\");l.children().append(a.oLanguage.sLengthMenu.replace(\"_MENU_\",\n-e[0].outerHTML));k(\"select\",l).val(a._iDisplayLength).on(\"change.DT\",function(n){jb(a,k(this).val());fa(a)});k(a.nTable).on(\"length.dt.DT\",function(n,m,p){a===m&&k(\"select\",l).val(p)});return l[0]}function Ob(a){var b=a.sPaginationType,c=u.ext.pager[b],d=\"function\"===typeof c,e=function(g){fa(g)};b=k(\"\u003Cdiv\u002F>\").addClass(a.oClasses.sPaging+b)[0];var f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+\"_paginate\",a.aoDrawCallback.push({fn:function(g){if(d){var h=g._iDisplayStart,l=g._iDisplayLength,\n-n=g.fnRecordsDisplay(),m=-1===l;h=m?0:Math.ceil(h\u002Fl);l=m?1:Math.ceil(n\u002Fl);n=c(h,l);var p;m=0;for(p=f.p.length;m\u003Cp;m++)fb(g,\"pageButton\")(g,f.p[m],m,n,h,l)}else c.fnUpdate(g,e)},sName:\"pagination\"}));return b}function lb(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===e?d=0:\"number\"===typeof b?(d=b*e,d>f&&(d=0)):\"first\"==b?d=0:\"previous\"==b?(d=0\u003C=e?d-e:0,0>d&&(d=0)):\"next\"==b?d+e\u003Cf&&(d+=e):\"last\"==b?d=Math.floor((f-1)\u002Fe)*e:ca(a,0,\"Unknown paging action: \"+b,5);\n-b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(H(a,null,\"page\",[a]),c&&fa(a));return b}function Lb(a){return k(\"\u003Cdiv\u002F>\",{id:a.aanFeatures.r?null:a.sTableId+\"_processing\",\"class\":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function U(a,b){a.oFeatures.bProcessing&&k(a.aanFeatures.r).css(\"display\",b?\"block\":\"none\");H(a,null,\"processing\",[a,b])}function Mb(a){var b=k(a.nTable);b.attr(\"role\",\"grid\");var c=a.oScroll;if(\"\"===c.sX&&\"\"===c.sY)return a.nTable;var d=c.sX,\n-e=c.sY,f=a.oClasses,g=b.children(\"caption\"),h=g.length?g[0]._captionSide:null,l=k(b[0].cloneNode(!1)),n=k(b[0].cloneNode(!1)),m=b.children(\"tfoot\");m.length||(m=null);l=k(\"\u003Cdiv\u002F>\",{\"class\":f.sScrollWrapper}).append(k(\"\u003Cdiv\u002F>\",{\"class\":f.sScrollHead}).css({overflow:\"hidden\",position:\"relative\",border:0,width:d?d?K(d):null:\"100%\"}).append(k(\"\u003Cdiv\u002F>\",{\"class\":f.sScrollHeadInner}).css({\"box-sizing\":\"content-box\",width:c.sXInner||\"100%\"}).append(l.removeAttr(\"id\").css(\"margin-left\",0).append(\"top\"===h?\n-g:null).append(b.children(\"thead\"))))).append(k(\"\u003Cdiv\u002F>\",{\"class\":f.sScrollBody}).css({position:\"relative\",overflow:\"auto\",width:d?K(d):null}).append(b));m&&l.append(k(\"\u003Cdiv\u002F>\",{\"class\":f.sScrollFoot}).css({overflow:\"hidden\",border:0,width:d?d?K(d):null:\"100%\"}).append(k(\"\u003Cdiv\u002F>\",{\"class\":f.sScrollFootInner}).append(n.removeAttr(\"id\").css(\"margin-left\",0).append(\"bottom\"===h?g:null).append(b.children(\"tfoot\")))));b=l.children();var p=b[0];f=b[1];var t=m?b[2]:null;if(d)k(f).on(\"scroll.DT\",function(v){v=\n-this.scrollLeft;p.scrollLeft=v;m&&(t.scrollLeft=v)});k(f).css(\"max-height\",e);c.bCollapse||k(f).css(\"height\",e);a.nScrollHead=p;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:Fa,sName:\"scrolling\"});return l[0]}function Fa(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY;b=b.iBarWidth;var f=k(a.nScrollHead),g=f[0].style,h=f.children(\"div\"),l=h[0].style,n=h.children(\"table\");h=a.nScrollBody;var m=k(h),p=h.style,t=k(a.nScrollFoot).children(\"div\"),v=t.children(\"table\"),x=k(a.nTHead),r=k(a.nTable),\n-A=r[0],D=A.style,I=a.nTFoot?k(a.nTFoot):null,W=a.oBrowser,M=W.bScrollOversize,B=T(a.aoColumns,\"nTh\"),E=[],aa=[],X=[],Aa=[],mb,Ba=function(F){F=F.style;F.paddingTop=\"0\";F.paddingBottom=\"0\";F.borderTopWidth=\"0\";F.borderBottomWidth=\"0\";F.height=0};var ha=h.scrollHeight>h.clientHeight;if(a.scrollBarVis!==ha&&a.scrollBarVis!==q)a.scrollBarVis=ha,ra(a);else{a.scrollBarVis=ha;r.children(\"thead, tfoot\").remove();if(I){var ka=I.clone().prependTo(r);var la=I.find(\"tr\");ka=ka.find(\"tr\")}var nb=x.clone().prependTo(r);\n-x=x.find(\"tr\");ha=nb.find(\"tr\");nb.find(\"th, td\").removeAttr(\"tabindex\");c||(p.width=\"100%\",f[0].style.width=\"100%\");k.each(La(a,nb),function(F,Y){mb=sa(a,F);Y.style.width=a.aoColumns[mb].sWidth});I&&ba(function(F){F.style.width=\"\"},ka);f=r.outerWidth();\"\"===c?(D.width=\"100%\",M&&(r.find(\"tbody\").height()>h.offsetHeight||\"scroll\"==m.css(\"overflow-y\"))&&(D.width=K(r.outerWidth()-b)),f=r.outerWidth()):\"\"!==d&&(D.width=K(d),f=r.outerWidth());ba(Ba,ha);ba(function(F){X.push(F.innerHTML);E.push(K(k(F).css(\"width\")))},\n-ha);ba(function(F,Y){-1!==k.inArray(F,B)&&(F.style.width=E[Y])},x);k(ha).height(0);I&&(ba(Ba,ka),ba(function(F){Aa.push(F.innerHTML);aa.push(K(k(F).css(\"width\")))},ka),ba(function(F,Y){F.style.width=aa[Y]},la),k(ka).height(0));ba(function(F,Y){F.innerHTML='\u003Cdiv class=\"dataTables_sizing\">'+X[Y]+\"\u003C\u002Fdiv>\";F.childNodes[0].style.height=\"0\";F.childNodes[0].style.overflow=\"hidden\";F.style.width=E[Y]},ha);I&&ba(function(F,Y){F.innerHTML='\u003Cdiv class=\"dataTables_sizing\">'+Aa[Y]+\"\u003C\u002Fdiv>\";F.childNodes[0].style.height=\n-\"0\";F.childNodes[0].style.overflow=\"hidden\";F.style.width=aa[Y]},ka);r.outerWidth()\u003Cf?(la=h.scrollHeight>h.offsetHeight||\"scroll\"==m.css(\"overflow-y\")?f+b:f,M&&(h.scrollHeight>h.offsetHeight||\"scroll\"==m.css(\"overflow-y\"))&&(D.width=K(la-b)),\"\"!==c&&\"\"===d||ca(a,1,\"Possible column misalignment\",6)):la=\"100%\";p.width=K(la);g.width=K(la);I&&(a.nScrollFoot.style.width=K(la));!e&&M&&(p.height=K(A.offsetHeight+b));c=r.outerWidth();n[0].style.width=K(c);l.width=K(c);d=r.height()>h.clientHeight||\"scroll\"==\n-m.css(\"overflow-y\");e=\"padding\"+(W.bScrollbarLeft?\"Left\":\"Right\");l[e]=d?b+\"px\":\"0px\";I&&(v[0].style.width=K(c),t[0].style.width=K(c),t[0].style[e]=d?b+\"px\":\"0px\");r.children(\"colgroup\").insertBefore(r.children(\"thead\"));m.trigger(\"scroll\");!a.bSorted&&!a.bFiltered||a._drawHold||(h.scrollTop=0)}}function ba(a,b,c){for(var d=0,e=0,f=b.length,g,h;e\u003Cf;){g=b[e].firstChild;for(h=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,h,d):a(g,d),d++),g=g.nextSibling,h=c?h.nextSibling:null;e++}}function Ya(a){var b=\n-a.nTable,c=a.aoColumns,d=a.oScroll,e=d.sY,f=d.sX,g=d.sXInner,h=c.length,l=Ga(a,\"bVisible\"),n=k(\"th\",a.nTHead),m=b.getAttribute(\"width\"),p=b.parentNode,t=!1,v,x=a.oBrowser;d=x.bScrollOversize;(v=b.style.width)&&-1!==v.indexOf(\"%\")&&(m=v);for(v=0;v\u003Cl.length;v++){var r=c[l[v]];null!==r.sWidth&&(r.sWidth=Zb(r.sWidthOrig,p),t=!0)}if(d||!t&&!f&&!e&&h==na(a)&&h==n.length)for(v=0;v\u003Ch;v++)l=sa(a,v),null!==l&&(c[l].sWidth=K(n.eq(v).width()));else{h=k(b).clone().css(\"visibility\",\"hidden\").removeAttr(\"id\");h.find(\"tbody tr\").remove();\n-var A=k(\"\u003Ctr\u002F>\").appendTo(h.find(\"tbody\"));h.find(\"thead, tfoot\").remove();h.append(k(a.nTHead).clone()).append(k(a.nTFoot).clone());h.find(\"tfoot th, tfoot td\").css(\"width\",\"\");n=La(a,h.find(\"thead\")[0]);for(v=0;v\u003Cl.length;v++)r=c[l[v]],n[v].style.width=null!==r.sWidthOrig&&\"\"!==r.sWidthOrig?K(r.sWidthOrig):\"\",r.sWidthOrig&&f&&k(n[v]).append(k(\"\u003Cdiv\u002F>\").css({width:r.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(v=0;v\u003Cl.length;v++)t=l[v],r=c[t],k($b(a,t)).clone(!1).append(r.sContentPadding).appendTo(A);\n-k(\"[name]\",h).removeAttr(\"name\");r=k(\"\u003Cdiv\u002F>\").css(f||e?{position:\"absolute\",top:0,left:0,height:1,right:0,overflow:\"hidden\"}:{}).append(h).appendTo(p);f&&g?h.width(g):f?(h.css(\"width\",\"auto\"),h.removeAttr(\"width\"),h.width()\u003Cp.clientWidth&&m&&h.width(p.clientWidth)):e?h.width(p.clientWidth):m&&h.width(m);for(v=e=0;v\u003Cl.length;v++)p=k(n[v]),g=p.outerWidth()-p.width(),p=x.bBounding?Math.ceil(n[v].getBoundingClientRect().width):p.outerWidth(),e+=p,c[l[v]].sWidth=K(p-g);b.style.width=K(e);r.remove()}m&&\n-(b.style.width=K(m));!m&&!f||a._reszEvt||(b=function(){k(y).on(\"resize.DT-\"+a.sInstance,gb(function(){ra(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0)}function Zb(a,b){if(!a)return 0;a=k(\"\u003Cdiv\u002F>\").css(\"width\",K(a)).appendTo(b||z.body);b=a[0].offsetWidth;a.remove();return b}function $b(a,b){var c=ac(a,b);if(0>c)return null;var d=a.aoData[c];return d.nTr?d.anCells[b]:k(\"\u003Ctd\u002F>\").html(S(a,c,b,\"display\"))[0]}function ac(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f\u003Cg;f++)c=S(a,f,b,\"display\")+\"\",c=c.replace(sc,\n-\"\"),c=c.replace(\u002F&nbsp;\u002Fg,\" \"),c.length>d&&(d=c.length,e=f);return e}function K(a){return null===a?\"0px\":\"number\"==typeof a?0>a?\"0px\":a+\"px\":a.match(\u002F\\d$\u002F)?a+\"px\":a}function pa(a){var b=[],c=a.aoColumns;var d=a.aaSortingFixed;var e=k.isPlainObject(d);var f=[];var g=function(m){m.length&&!Array.isArray(m[0])?f.push(m):k.merge(f,m)};Array.isArray(d)&&g(d);e&&d.pre&&g(d.pre);g(a.aaSorting);e&&d.post&&g(d.post);for(a=0;a\u003Cf.length;a++){var h=f[a][0];g=c[h].aDataSort;d=0;for(e=g.length;d\u003Ce;d++){var l=g[d];\n-var n=c[l].sType||\"string\";f[a]._idx===q&&(f[a]._idx=k.inArray(f[a][1],c[l].asSorting));b.push({src:h,col:l,dir:f[a][1],index:f[a]._idx,type:n,formatter:u.ext.type.order[n+\"-pre\"]})}}return b}function Hb(a){var b,c=[],d=u.ext.type.order,e=a.aoData,f=0,g=a.aiDisplayMaster;Za(a);var h=pa(a);var l=0;for(b=h.length;l\u003Cb;l++){var n=h[l];n.formatter&&f++;bc(a,n.col)}if(\"ssp\"!=P(a)&&0!==h.length){l=0;for(b=g.length;l\u003Cb;l++)c[g[l]]=l;f===h.length?g.sort(function(m,p){var t,v=h.length,x=e[m]._aSortData,r=e[p]._aSortData;\n-for(t=0;t\u003Cv;t++){var A=h[t];var D=x[A.col];var I=r[A.col];D=D\u003CI?-1:D>I?1:0;if(0!==D)return\"asc\"===A.dir?D:-D}D=c[m];I=c[p];return D\u003CI?-1:D>I?1:0}):g.sort(function(m,p){var t,v=h.length,x=e[m]._aSortData,r=e[p]._aSortData;for(t=0;t\u003Cv;t++){var A=h[t];var D=x[A.col];var I=r[A.col];A=d[A.type+\"-\"+A.dir]||d[\"string-\"+A.dir];D=A(D,I);if(0!==D)return D}D=c[m];I=c[p];return D\u003CI?-1:D>I?1:0})}a.bSorted=!0}function cc(a){var b=a.aoColumns,c=pa(a);a=a.oLanguage.oAria;for(var d=0,e=b.length;d\u003Ce;d++){var f=b[d];\n-var g=f.asSorting;var h=f.ariaTitle||f.sTitle.replace(\u002F\u003C.*?>\u002Fg,\"\");var l=f.nTh;l.removeAttribute(\"aria-sort\");f.bSortable&&(0\u003Cc.length&&c[0].col==d?(l.setAttribute(\"aria-sort\",\"asc\"==c[0].dir?\"ascending\":\"descending\"),f=g[c[0].index+1]||g[0]):f=g[0],h+=\"asc\"===f?a.sSortAscending:a.sSortDescending);l.setAttribute(\"aria-label\",h)}}function ob(a,b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(h,l){var n=h._idx;n===q&&(n=k.inArray(h[1],f));return n+1\u003Cf.length?n+1:l?null:0};\"number\"===typeof e[0]&&\n-(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=k.inArray(b,T(e,\"0\")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);ja(a);\"function\"==typeof d&&d(a)}function eb(a,b,c,d){var e=a.aoColumns[c];pb(b,{},function(f){!1!==e.bSortable&&(a.oFeatures.bProcessing?(U(a,!0),setTimeout(function(){ob(a,\n-c,f.shiftKey,d);\"ssp\"!==P(a)&&U(a,!1)},0)):ob(a,c,f.shiftKey,d))})}function Qa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=pa(a),e=a.oFeatures,f;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e\u003Cf;e++){var g=b[e].src;k(T(a.aoData,\"anCells\",g)).removeClass(c+(2>e?e+1:3))}e=0;for(f=d.length;e\u003Cf;e++)g=d[e].src,k(T(a.aoData,\"anCells\",g)).addClass(c+(2>e?e+1:3))}a.aLastSort=d}function bc(a,b){var c=a.aoColumns[b],d=u.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ta(a,b)));for(var f,g=u.ext.type.order[c.sType+\n-\"-pre\"],h=0,l=a.aoData.length;h\u003Cl;h++)if(c=a.aoData[h],c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[h]:S(a,h,b,\"sort\"),c._aSortData[b]=g?g(f):f}function Ra(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:k.extend(!0,[],a.aaSorting),search:Vb(a.oPreviousSearch),columns:k.map(a.aoColumns,function(c,d){return{visible:c.bVisible,search:Vb(a.aoPreSearchCols[d])}})};H(a,\"aoStateSaveParams\",\"stateSaveParams\",[a,b]);a.oSavedState=\n-b;a.fnStateSaveCallback.call(a.oInstance,a,b)}}function dc(a,b,c){var d,e,f=a.aoColumns;b=function(h){if(h&&h.time){var l=H(a,\"aoStateLoadParams\",\"stateLoadParams\",[a,h]);if(-1===k.inArray(!1,l)&&(l=a.iStateDuration,!(0\u003Cl&&h.time\u003C+new Date-1E3*l||h.columns&&f.length!==h.columns.length))){a.oLoadedState=k.extend(!0,{},h);h.start!==q&&(a._iDisplayStart=h.start,a.iInitDisplayStart=h.start);h.length!==q&&(a._iDisplayLength=h.length);h.order!==q&&(a.aaSorting=[],k.each(h.order,function(n,m){a.aaSorting.push(m[0]>=\n-f.length?[0,m[1]]:m)}));h.search!==q&&k.extend(a.oPreviousSearch,Wb(h.search));if(h.columns)for(d=0,e=h.columns.length;d\u003Ce;d++)l=h.columns[d],l.visible!==q&&(f[d].bVisible=l.visible),l.search!==q&&k.extend(a.aoPreSearchCols[d],Wb(l.search));H(a,\"aoStateLoaded\",\"stateLoaded\",[a,h])}}c()};if(a.oFeatures.bStateSave){var g=a.fnStateLoadCallback.call(a.oInstance,a,b);g!==q&&b(g)}else c()}function Sa(a){var b=u.settings;a=k.inArray(a,T(b,\"nTable\"));return-1!==a?b[a]:null}function ca(a,b,c,d){c=\"DataTables warning: \"+\n-(a?\"table id=\"+a.sTableId+\" - \":\"\")+c;d&&(c+=\". For more information about this error, please see http:\u002F\u002Fdatatables.net\u002Ftn\u002F\"+d);if(b)y.console&&console.log&&console.log(c);else if(b=u.ext,b=b.sErrMode||b.errMode,a&&H(a,null,\"error\",[a,d,c]),\"alert\"==b)alert(c);else{if(\"throw\"==b)throw Error(c);\"function\"==typeof b&&b(a,d,c)}}function V(a,b,c,d){Array.isArray(c)?k.each(c,function(e,f){Array.isArray(f)?V(a,b,f[0],f[1]):V(a,b,f)}):(d===q&&(d=c),b[c]!==q&&(a[d]=b[c]))}function qb(a,b,c){var d;for(d in b)if(b.hasOwnProperty(d)){var e=\n-b[d];k.isPlainObject(e)?(k.isPlainObject(a[d])||(a[d]={}),k.extend(!0,a[d],e)):c&&\"data\"!==d&&\"aaData\"!==d&&Array.isArray(e)?a[d]=e.slice():a[d]=e}return a}function pb(a,b,c){k(a).on(\"click.DT\",b,function(d){k(a).trigger(\"blur\");c(d)}).on(\"keypress.DT\",b,function(d){13===d.which&&(d.preventDefault(),c(d))}).on(\"selectstart.DT\",function(){return!1})}function Q(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function H(a,b,c,d){var e=[];b&&(e=k.map(a[b].slice().reverse(),function(f,g){return f.fn.apply(a.oInstance,\n-d)}));null!==c&&(b=k.Event(c+\".dt\"),k(a.nTable).trigger(b,d),e.push(b.result));return e}function kb(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function fb(a,b){a=a.renderer;var c=u.ext.renderer[b];return k.isPlainObject(a)&&a[b]?c[a[b]]||c._:\"string\"===typeof a?c[a]||c._:c._}function P(a){return a.oFeatures.bServerSide?\"ssp\":a.ajax||a.sAjaxSource?\"ajax\":\"dom\"}function Ca(a,b){var c=ec.numbers_length,d=Math.floor(c\u002F2);\n-b\u003C=c?a=qa(0,b):a\u003C=d?(a=qa(0,c-2),a.push(\"ellipsis\"),a.push(b-1)):(a>=b-1-d?a=qa(b-(c-2),b):(a=qa(a-d+2,a+d-1),a.push(\"ellipsis\"),a.push(b-1)),a.splice(0,0,\"ellipsis\"),a.splice(0,0,0));a.DT_el=\"span\";return a}function Wa(a){k.each({num:function(b){return Ta(b,a)},\"num-fmt\":function(b){return Ta(b,a,rb)},\"html-num\":function(b){return Ta(b,a,Ua)},\"html-num-fmt\":function(b){return Ta(b,a,Ua,rb)}},function(b,c){L.type.order[b+a+\"-pre\"]=c;b.match(\u002F^html\\-\u002F)&&(L.type.search[b+a]=L.type.search.html)})}function fc(a){return function(){var b=\n-[Sa(this[u.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return u.ext.internal[a].apply(this,b)}}var u=function(a){this.$=function(f,g){return this.api(!0).$(f,g)};this._=function(f,g){return this.api(!0).rows(f,g).data()};this.api=function(f){return f?new C(Sa(this[L.iApiIndex])):new C(this)};this.fnAddData=function(f,g){var h=this.api(!0);f=Array.isArray(f)&&(Array.isArray(f[0])||k.isPlainObject(f[0]))?h.rows.add(f):h.row.add(f);(g===q||g)&&h.draw();return f.flatten().toArray()};\n-this.fnAdjustColumnSizing=function(f){var g=this.api(!0).columns.adjust(),h=g.settings()[0],l=h.oScroll;f===q||f?g.draw(!1):(\"\"!==l.sX||\"\"!==l.sY)&&Fa(h)};this.fnClearTable=function(f){var g=this.api(!0).clear();(f===q||f)&&g.draw()};this.fnClose=function(f){this.api(!0).row(f).child.hide()};this.fnDeleteRow=function(f,g,h){var l=this.api(!0);f=l.rows(f);var n=f.settings()[0],m=n.aoData[f[0][0]];f.remove();g&&g.call(this,n,m);(h===q||h)&&l.draw();return m};this.fnDestroy=function(f){this.api(!0).destroy(f)};\n-this.fnDraw=function(f){this.api(!0).draw(f)};this.fnFilter=function(f,g,h,l,n,m){n=this.api(!0);null===g||g===q?n.search(f,h,l,m):n.column(g).search(f,h,l,m);n.draw()};this.fnGetData=function(f,g){var h=this.api(!0);if(f!==q){var l=f.nodeName?f.nodeName.toLowerCase():\"\";return g!==q||\"td\"==l||\"th\"==l?h.cell(f,g).data():h.row(f).data()||null}return h.data().toArray()};this.fnGetNodes=function(f){var g=this.api(!0);return f!==q?g.row(f).node():g.rows().nodes().flatten().toArray()};this.fnGetPosition=\n-function(f){var g=this.api(!0),h=f.nodeName.toUpperCase();return\"TR\"==h?g.row(f).index():\"TD\"==h||\"TH\"==h?(f=g.cell(f).index(),[f.row,f.columnVisible,f.column]):null};this.fnIsOpen=function(f){return this.api(!0).row(f).child.isShown()};this.fnOpen=function(f,g,h){return this.api(!0).row(f).child(g,h).show().child()[0]};this.fnPageChange=function(f,g){f=this.api(!0).page(f);(g===q||g)&&f.draw(!1)};this.fnSetColumnVis=function(f,g,h){f=this.api(!0).column(f).visible(g);(h===q||h)&&f.columns.adjust().draw()};\n-this.fnSettings=function(){return Sa(this[L.iApiIndex])};this.fnSort=function(f){this.api(!0).order(f).draw()};this.fnSortListener=function(f,g,h){this.api(!0).order.listener(f,g,h)};this.fnUpdate=function(f,g,h,l,n){var m=this.api(!0);h===q||null===h?m.row(g).data(f):m.cell(g,h).data(f);(n===q||n)&&m.columns.adjust();(l===q||l)&&m.draw();return 0};this.fnVersionCheck=L.fnVersionCheck;var b=this,c=a===q,d=this.length;c&&(a={});this.oApi=this.internal=L.internal;for(var e in u.ext.internal)e&&(this[e]=\n-fc(e));this.each(function(){var f={},g=1\u003Cd?qb(f,a,!0):a,h=0,l;f=this.getAttribute(\"id\");var n=!1,m=u.defaults,p=k(this);if(\"table\"!=this.nodeName.toLowerCase())ca(null,0,\"Non-table node initialisation (\"+this.nodeName+\")\",2);else{zb(m);Ab(m.column);O(m,m,!0);O(m.column,m.column,!0);O(m,k.extend(g,p.data()),!0);var t=u.settings;h=0;for(l=t.length;h\u003Cl;h++){var v=t[h];if(v.nTable==this||v.nTHead&&v.nTHead.parentNode==this||v.nTFoot&&v.nTFoot.parentNode==this){var x=g.bRetrieve!==q?g.bRetrieve:m.bRetrieve;\n-if(c||x)return v.oInstance;if(g.bDestroy!==q?g.bDestroy:m.bDestroy){v.oInstance.fnDestroy();break}else{ca(v,0,\"Cannot reinitialise DataTable\",3);return}}if(v.sTableId==this.id){t.splice(h,1);break}}if(null===f||\"\"===f)this.id=f=\"DataTables_Table_\"+u.ext._unique++;var r=k.extend(!0,{},u.models.oSettings,{sDestroyWidth:p[0].style.width,sInstance:f,sTableId:f});r.nTable=this;r.oApi=b.internal;r.oInit=g;t.push(r);r.oInstance=1===b.length?b:p.dataTable();zb(g);ma(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&\n-(g.iDisplayLength=Array.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);g=qb(k.extend(!0,{},m),g);V(r.oFeatures,g,\"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender\".split(\" \"));V(r,g,[\"asStripeClasses\",\"ajax\",\"fnServerData\",\"fnFormatNumber\",\"sServerMethod\",\"aaSorting\",\"aaSortingFixed\",\"aLengthMenu\",\"sPaginationType\",\"sAjaxSource\",\"sAjaxDataProp\",\"iStateDuration\",\"sDom\",\"bSortCellsTop\",\"iTabIndex\",\"fnStateLoadCallback\",\n-\"fnStateSaveCallback\",\"renderer\",\"searchDelay\",\"rowId\",[\"iCookieDuration\",\"iStateDuration\"],[\"oSearch\",\"oPreviousSearch\"],[\"aoSearchCols\",\"aoPreSearchCols\"],[\"iDisplayLength\",\"_iDisplayLength\"]]);V(r.oScroll,g,[[\"sScrollX\",\"sX\"],[\"sScrollXInner\",\"sXInner\"],[\"sScrollY\",\"sY\"],[\"bScrollCollapse\",\"bCollapse\"]]);V(r.oLanguage,g,\"fnInfoCallback\");Q(r,\"aoDrawCallback\",g.fnDrawCallback,\"user\");Q(r,\"aoServerParams\",g.fnServerParams,\"user\");Q(r,\"aoStateSaveParams\",g.fnStateSaveParams,\"user\");Q(r,\"aoStateLoadParams\",\n-g.fnStateLoadParams,\"user\");Q(r,\"aoStateLoaded\",g.fnStateLoaded,\"user\");Q(r,\"aoRowCallback\",g.fnRowCallback,\"user\");Q(r,\"aoRowCreatedCallback\",g.fnCreatedRow,\"user\");Q(r,\"aoHeaderCallback\",g.fnHeaderCallback,\"user\");Q(r,\"aoFooterCallback\",g.fnFooterCallback,\"user\");Q(r,\"aoInitComplete\",g.fnInitComplete,\"user\");Q(r,\"aoPreDrawCallback\",g.fnPreDrawCallback,\"user\");r.rowIdFn=ia(g.rowId);Bb(r);var A=r.oClasses;k.extend(A,u.ext.classes,g.oClasses);p.addClass(A.sTable);r.iInitDisplayStart===q&&(r.iInitDisplayStart=\n-g.iDisplayStart,r._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(r.bDeferLoading=!0,f=Array.isArray(g.iDeferLoading),r._iRecordsDisplay=f?g.iDeferLoading[0]:g.iDeferLoading,r._iRecordsTotal=f?g.iDeferLoading[1]:g.iDeferLoading);var D=r.oLanguage;k.extend(!0,D,g.oLanguage);D.sUrl?(k.ajax({dataType:\"json\",url:D.sUrl,success:function(B){ma(B);O(m.oLanguage,B);k.extend(!0,D,B);H(r,null,\"i18n\",[r]);za(r)},error:function(){za(r)}}),n=!0):H(r,null,\"i18n\",[r]);null===g.asStripeClasses&&(r.asStripeClasses=\n-[A.sStripeOdd,A.sStripeEven]);f=r.asStripeClasses;var I=p.children(\"tbody\").find(\"tr\").eq(0);-1!==k.inArray(!0,k.map(f,function(B,E){return I.hasClass(B)}))&&(k(\"tbody tr\",this).removeClass(f.join(\" \")),r.asDestroyStripes=f.slice());f=[];t=this.getElementsByTagName(\"thead\");0!==t.length&&(wa(r.aoHeader,t[0]),f=La(r));if(null===g.aoColumns)for(t=[],h=0,l=f.length;h\u003Cl;h++)t.push(null);else t=g.aoColumns;h=0;for(l=t.length;h\u003Cl;h++)Xa(r,f?f[h]:null);Db(r,g.aoColumnDefs,t,function(B,E){Ea(r,B,E)});if(I.length){var W=\n-function(B,E){return null!==B.getAttribute(\"data-\"+E)?E:null};k(I[0]).children(\"th, td\").each(function(B,E){var aa=r.aoColumns[B];if(aa.mData===B){var X=W(E,\"sort\")||W(E,\"order\");E=W(E,\"filter\")||W(E,\"search\");if(null!==X||null!==E)aa.mData={_:B+\".display\",sort:null!==X?B+\".@data-\"+X:q,type:null!==X?B+\".@data-\"+X:q,filter:null!==E?B+\".@data-\"+E:q},Ea(r,B)}})}var M=r.oFeatures;f=function(){if(g.aaSorting===q){var B=r.aaSorting;h=0;for(l=B.length;h\u003Cl;h++)B[h][1]=r.aoColumns[h].asSorting[0]}Qa(r);M.bSort&&\n-Q(r,\"aoDrawCallback\",function(){if(r.bSorted){var X=pa(r),Aa={};k.each(X,function(mb,Ba){Aa[Ba.src]=Ba.dir});H(r,null,\"order\",[r,X,Aa]);cc(r)}});Q(r,\"aoDrawCallback\",function(){(r.bSorted||\"ssp\"===P(r)||M.bDeferRender)&&Qa(r)},\"sc\");B=p.children(\"caption\").each(function(){this._captionSide=k(this).css(\"caption-side\")});var E=p.children(\"thead\");0===E.length&&(E=k(\"\u003Cthead\u002F>\").appendTo(p));r.nTHead=E[0];var aa=p.children(\"tbody\");0===aa.length&&(aa=k(\"\u003Ctbody\u002F>\").insertAfter(E));r.nTBody=aa[0];E=p.children(\"tfoot\");\n-0===E.length&&0\u003CB.length&&(\"\"!==r.oScroll.sX||\"\"!==r.oScroll.sY)&&(E=k(\"\u003Ctfoot\u002F>\").appendTo(p));0===E.length||0===E.children().length?p.addClass(A.sNoFooter):0\u003CE.length&&(r.nTFoot=E[0],wa(r.aoFooter,r.nTFoot));if(g.aaData)for(h=0;h\u003Cg.aaData.length;h++)ea(r,g.aaData[h]);else(r.bDeferLoading||\"dom\"==P(r))&&Ha(r,k(r.nTBody).children(\"tr\"));r.aiDisplay=r.aiDisplayMaster.slice();r.bInitialised=!0;!1===n&&za(r)};g.bStateSave?(M.bStateSave=!0,Q(r,\"aoDrawCallback\",Ra,\"state_save\"),dc(r,g,f)):f()}});b=null;\n-return this},L,w,J,sb={},gc=\u002F[\\r\\n\\u2028]\u002Fg,Ua=\u002F\u003C.*?>\u002Fg,tc=\u002F^\\d{2,4}[\\.\\\u002F\\-]\\d{1,2}[\\.\\\u002F\\-]\\d{1,2}([T ]{1}\\d{1,2}[:\\.]\\d{2}([\\.:]\\d{2})?)?$\u002F,uc=\u002F(\\\u002F|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)\u002Fg,rb=\u002F['\\u00A0,$£€¥%\\u2009\\u202F\\u20BD\\u20a9\\u20BArfkɃΞ]\u002Fgi,Z=function(a){return a&&!0!==a&&\"-\"!==a?!1:!0},hc=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},ic=function(a,b){sb[b]||(sb[b]=new RegExp(ib(b),\"g\"));return\"string\"===typeof a&&\".\"!==b?a.replace(\u002F\\.\u002Fg,\"\").replace(sb[b],\".\"):\n-a},tb=function(a,b,c){var d=\"string\"===typeof a;if(Z(a))return!0;b&&d&&(a=ic(a,b));c&&d&&(a=a.replace(rb,\"\"));return!isNaN(parseFloat(a))&&isFinite(a)},jc=function(a,b,c){return Z(a)?!0:Z(a)||\"string\"===typeof a?tb(a.replace(Ua,\"\"),b,c)?!0:null:null},T=function(a,b,c){var d=[],e=0,f=a.length;if(c!==q)for(;e\u003Cf;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e\u003Cf;e++)a[e]&&d.push(a[e][b]);return d},Da=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==q)for(;f\u003Cg;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f\u003C\n-g;f++)e.push(a[b[f]][c]);return e},qa=function(a,b){var c=[];if(b===q){b=0;var d=a}else d=b,b=a;for(a=b;a\u003Cd;a++)c.push(a);return c},kc=function(a){for(var b=[],c=0,d=a.length;c\u003Cd;c++)a[c]&&b.push(a[c]);return b},Ka=function(a){a:{if(!(2>a.length)){var b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d\u003Ce;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();b=[];e=a.length;var f,g=0;d=0;a:for(;d\u003Ce;d++){c=a[d];for(f=0;f\u003Cg;f++)if(b[f]===c)continue a;b.push(c);g++}return b},lc=function(a,\n-b){if(Array.isArray(b))for(var c=0;c\u003Cb.length;c++)lc(a,b[c]);else a.push(b);return a};Array.isArray||(Array.isArray=function(a){return\"[object Array]\"===Object.prototype.toString.call(a)});String.prototype.trim||(String.prototype.trim=function(){return this.replace(\u002F^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$\u002Fg,\"\")});u.util={throttle:function(a,b){var c=b!==q?b:200,d,e;return function(){var f=this,g=+new Date,h=arguments;d&&g\u003Cd+c?(clearTimeout(e),e=setTimeout(function(){d=q;a.apply(f,h)},c)):(d=g,a.apply(f,\n-h))}},escapeRegex:function(a){return a.replace(uc,\"\\\\$1\")}};var R=function(a,b,c){a[b]!==q&&(a[c]=a[b])},ua=\u002F\\[.*?\\]$\u002F,oa=\u002F\\(\\)$\u002F,ib=u.util.escapeRegex,Pa=k(\"\u003Cdiv>\")[0],rc=Pa.textContent!==q,sc=\u002F\u003C.*?>\u002Fg,gb=u.util.throttle,mc=[],N=Array.prototype,vc=function(a){var b,c=u.settings,d=k.map(c,function(f,g){return f.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&\"table\"===a.nodeName.toLowerCase()){var e=k.inArray(a,d);return-1!==e?[c[e]]:null}if(a&&\"function\"===typeof a.settings)return a.settings().toArray();\n-\"string\"===typeof a?b=k(a):a instanceof k&&(b=a)}else return[];if(b)return b.map(function(f){e=k.inArray(this,d);return-1!==e?c[e]:null}).toArray()};var C=function(a,b){if(!(this instanceof C))return new C(a,b);var c=[],d=function(g){(g=vc(g))&&c.push.apply(c,g)};if(Array.isArray(a))for(var e=0,f=a.length;e\u003Cf;e++)d(a[e]);else d(a);this.context=Ka(c);b&&k.merge(this,b);this.selector={rows:null,cols:null,opts:null};C.extend(this,this,mc)};u.Api=C;k.extend(C.prototype,{any:function(){return 0!==this.count()},\n-concat:N.concat,context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b\u003Cc;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=this.context;return b.length>a?new C(b[a],this[a]):null},filter:function(a){var b=[];if(N.filter)b=N.filter.call(this,a,this);else for(var c=0,d=this.length;c\u003Cd;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new C(this.context,b)},flatten:function(){var a=[];return new C(this.context,a.concat.apply(a,this.toArray()))},\n-join:N.join,indexOf:N.indexOf||function(a,b){b=b||0;for(var c=this.length;b\u003Cc;b++)if(this[b]===a)return b;return-1},iterator:function(a,b,c,d){var e=[],f,g,h=this.context,l,n=this.selector;\"string\"===typeof a&&(d=c,c=b,b=a,a=!1);var m=0;for(f=h.length;m\u003Cf;m++){var p=new C(h[m]);if(\"table\"===b){var t=c.call(p,h[m],m);t!==q&&e.push(t)}else if(\"columns\"===b||\"rows\"===b)t=c.call(p,h[m],this[m],m),t!==q&&e.push(t);else if(\"column\"===b||\"column-rows\"===b||\"row\"===b||\"cell\"===b){var v=this[m];\"column-rows\"===\n-b&&(l=Va(h[m],n.opts));var x=0;for(g=v.length;x\u003Cg;x++)t=v[x],t=\"cell\"===b?c.call(p,h[m],t.row,t.column,m,x):c.call(p,h[m],t,m,x,l),t!==q&&e.push(t)}}return e.length||d?(a=new C(h,a?e.concat.apply([],e):e),b=a.selector,b.rows=n.rows,b.cols=n.cols,b.opts=n.opts,a):this},lastIndexOf:N.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(N.map)b=N.map.call(this,a,this);else for(var c=0,d=this.length;c\u003Cd;c++)b.push(a.call(this,this[c],\n-c));return new C(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:N.pop,push:N.push,reduce:N.reduce||function(a,b){return Cb(this,a,b,0,this.length,1)},reduceRight:N.reduceRight||function(a,b){return Cb(this,a,b,this.length-1,-1,-1)},reverse:N.reverse,selector:null,shift:N.shift,slice:function(){return new C(this.context,this)},sort:N.sort,splice:N.splice,toArray:function(){return N.slice.call(this)},to$:function(){return k(this)},toJQuery:function(){return k(this)},\n-unique:function(){return new C(this.context,Ka(this))},unshift:N.unshift});C.extend=function(a,b,c){if(c.length&&b&&(b instanceof C||b.__dt_wrapper)){var d,e=function(h,l,n){return function(){var m=l.apply(h,arguments);C.extend(m,m,n.methodExt);return m}};var f=0;for(d=c.length;f\u003Cd;f++){var g=c[f];b[g.name]=\"function\"===g.type?e(a,g.val,g):\"object\"===g.type?{}:g.val;b[g.name].__dt_wrapper=!0;C.extend(a,b[g.name],g.propExt)}}};C.register=w=function(a,b){if(Array.isArray(a))for(var c=0,d=a.length;c\u003C\n-d;c++)C.register(a[c],b);else{d=a.split(\".\");var e=mc,f;a=0;for(c=d.length;a\u003Cc;a++){var g=(f=-1!==d[a].indexOf(\"()\"))?d[a].replace(\"()\",\"\"):d[a];a:{var h=0;for(var l=e.length;h\u003Cl;h++)if(e[h].name===g){h=e[h];break a}h=null}h||(h={name:g,val:{},methodExt:[],propExt:[],type:\"object\"},e.push(h));a===c-1?(h.val=b,h.type=\"function\"===typeof b?\"function\":k.isPlainObject(b)?\"object\":\"other\"):e=f?h.methodExt:h.propExt}}};C.registerPlural=J=function(a,b,c){C.register(a,c);C.register(b,function(){var d=c.apply(this,\n-arguments);return d===this?this:d instanceof C?d.length?Array.isArray(d[0])?new C(d.context,d[0]):d[0]:q:d})};var nc=function(a,b){if(Array.isArray(a))return k.map(a,function(d){return nc(d,b)});if(\"number\"===typeof a)return[b[a]];var c=k.map(b,function(d,e){return d.nTable});return k(c).filter(a).map(function(d){d=k.inArray(this,c);return b[d]}).toArray()};w(\"tables()\",function(a){return a!==q&&null!==a?new C(nc(a,this.context)):this});w(\"table()\",function(a){a=this.tables(a);var b=a.context;return b.length?\n-new C(b[0]):a});J(\"tables().nodes()\",\"table().node()\",function(){return this.iterator(\"table\",function(a){return a.nTable},1)});J(\"tables().body()\",\"table().body()\",function(){return this.iterator(\"table\",function(a){return a.nTBody},1)});J(\"tables().header()\",\"table().header()\",function(){return this.iterator(\"table\",function(a){return a.nTHead},1)});J(\"tables().footer()\",\"table().footer()\",function(){return this.iterator(\"table\",function(a){return a.nTFoot},1)});J(\"tables().containers()\",\"table().container()\",\n-function(){return this.iterator(\"table\",function(a){return a.nTableWrapper},1)});w(\"draw()\",function(a){return this.iterator(\"table\",function(b){\"page\"===a?fa(b):(\"string\"===typeof a&&(a=\"full-hold\"===a?!1:!0),ja(b,!1===a))})});w(\"page()\",function(a){return a===q?this.page.info().page:this.iterator(\"table\",function(b){lb(b,a)})});w(\"page.info()\",function(a){if(0===this.context.length)return q;a=this.context[0];var b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),\n-e=-1===c;return{page:e?0:Math.floor(b\u002Fc),pages:e?1:Math.ceil(d\u002Fc),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:\"ssp\"===P(a)}});w(\"page.len()\",function(a){return a===q?0!==this.context.length?this.context[0]._iDisplayLength:q:this.iterator(\"table\",function(b){jb(b,a)})});var oc=function(a,b,c){if(c){var d=new C(a);d.one(\"draw\",function(){c(d.ajax.json())})}if(\"ssp\"==P(a))ja(a,b);else{U(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();Ma(a,[],function(f){Ia(a);\n-f=Na(a,f);for(var g=0,h=f.length;g\u003Ch;g++)ea(a,f[g]);ja(a,b);U(a,!1)})}};w(\"ajax.json()\",function(){var a=this.context;if(0\u003Ca.length)return a[0].json});w(\"ajax.params()\",function(){var a=this.context;if(0\u003Ca.length)return a[0].oAjaxData});w(\"ajax.reload()\",function(a,b){return this.iterator(\"table\",function(c){oc(c,!1===b,a)})});w(\"ajax.url()\",function(a){var b=this.context;if(a===q){if(0===b.length)return q;b=b[0];return b.ajax?k.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator(\"table\",\n-function(c){k.isPlainObject(c.ajax)?c.ajax.url=a:c.ajax=a})});w(\"ajax.url().load()\",function(a,b){return this.iterator(\"table\",function(c){oc(c,!1===b,a)})});var ub=function(a,b,c,d,e){var f=[],g,h,l;var n=typeof b;b&&\"string\"!==n&&\"function\"!==n&&b.length!==q||(b=[b]);n=0;for(h=b.length;n\u003Ch;n++){var m=b[n]&&b[n].split&&!b[n].match(\u002F[\\[\\(:]\u002F)?b[n].split(\",\"):[b[n]];var p=0;for(l=m.length;p\u003Cl;p++)(g=c(\"string\"===typeof m[p]?m[p].trim():m[p]))&&g.length&&(f=f.concat(g))}a=L.selector[a];if(a.length)for(n=\n-0,h=a.length;n\u003Ch;n++)f=a[n](d,e,f);return Ka(f)},vb=function(a){a||(a={});a.filter&&a.search===q&&(a.search=a.filter);return k.extend({search:\"none\",order:\"current\",page:\"all\"},a)},wb=function(a){for(var b=0,c=a.length;b\u003Cc;b++)if(0\u003Ca[b].length)return a[0]=a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Va=function(a,b){var c=[],d=a.aiDisplay;var e=a.aiDisplayMaster;var f=b.search;var g=b.order;b=b.page;if(\"ssp\"==P(a))return\"removed\"===f?[]:qa(0,e.length);if(\"current\"==\n-b)for(g=a._iDisplayStart,a=a.fnDisplayEnd();g\u003Ca;g++)c.push(d[g]);else if(\"current\"==g||\"applied\"==g)if(\"none\"==f)c=e.slice();else if(\"applied\"==f)c=d.slice();else{if(\"removed\"==f){var h={};g=0;for(a=d.length;g\u003Ca;g++)h[d[g]]=null;c=k.map(e,function(l){return h.hasOwnProperty(l)?null:l})}}else if(\"index\"==g||\"original\"==g)for(g=0,a=a.aoData.length;g\u003Ca;g++)\"none\"==f?c.push(g):(e=k.inArray(g,d),(-1===e&&\"removed\"==f||0\u003C=e&&\"applied\"==f)&&c.push(g));return c},wc=function(a,b,c){var d;return ub(\"row\",b,\n-function(e){var f=hc(e),g=a.aoData;if(null!==f&&!c)return[f];d||(d=Va(a,c));if(null!==f&&-1!==k.inArray(f,d))return[f];if(null===e||e===q||\"\"===e)return d;if(\"function\"===typeof e)return k.map(d,function(l){var n=g[l];return e(l,n._aData,n.nTr)?l:null});if(e.nodeName){f=e._DT_RowIndex;var h=e._DT_CellIndex;if(f!==q)return g[f]&&g[f].nTr===e?[f]:[];if(h)return g[h.row]&&g[h.row].nTr===e.parentNode?[h.row]:[];f=k(e).closest(\"*[data-dt-row]\");return f.length?[f.data(\"dt-row\")]:[]}if(\"string\"===typeof e&&\n-\"#\"===e.charAt(0)&&(f=a.aIds[e.replace(\u002F^#\u002F,\"\")],f!==q))return[f.idx];f=kc(Da(a.aoData,d,\"nTr\"));return k(f).filter(e).map(function(){return this._DT_RowIndex}).toArray()},a,c)};w(\"rows()\",function(a,b){a===q?a=\"\":k.isPlainObject(a)&&(b=a,a=\"\");b=vb(b);var c=this.iterator(\"table\",function(d){return wc(d,a,b)},1);c.selector.rows=a;c.selector.opts=b;return c});w(\"rows().nodes()\",function(){return this.iterator(\"row\",function(a,b){return a.aoData[b].nTr||q},1)});w(\"rows().data()\",function(){return this.iterator(!0,\n-\"rows\",function(a,b){return Da(a.aoData,b,\"_aData\")},1)});J(\"rows().cache()\",\"row().cache()\",function(a){return this.iterator(\"row\",function(b,c){b=b.aoData[c];return\"search\"===a?b._aFilterData:b._aSortData},1)});J(\"rows().invalidate()\",\"row().invalidate()\",function(a){return this.iterator(\"row\",function(b,c){va(b,c,a)})});J(\"rows().indexes()\",\"row().index()\",function(){return this.iterator(\"row\",function(a,b){return b},1)});J(\"rows().ids()\",\"row().id()\",function(a){for(var b=[],c=this.context,d=\n-0,e=c.length;d\u003Ce;d++)for(var f=0,g=this[d].length;f\u003Cg;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?\"#\":\"\")+h)}return new C(c,b)});J(\"rows().remove()\",\"row().remove()\",function(){var a=this;this.iterator(\"row\",function(b,c,d){var e=b.aoData,f=e[c],g,h;e.splice(c,1);var l=0;for(g=e.length;l\u003Cg;l++){var n=e[l];var m=n.anCells;null!==n.nTr&&(n.nTr._DT_RowIndex=l);if(null!==m)for(n=0,h=m.length;n\u003Ch;n++)m[n]._DT_CellIndex.row=l}Ja(b.aiDisplayMaster,c);Ja(b.aiDisplay,c);Ja(a[d],\n-c,!1);0\u003Cb._iRecordsDisplay&&b._iRecordsDisplay--;kb(b);c=b.rowIdFn(f._aData);c!==q&&delete b.aIds[c]});this.iterator(\"table\",function(b){for(var c=0,d=b.aoData.length;c\u003Cd;c++)b.aoData[c].idx=c});return this});w(\"rows.add()\",function(a){var b=this.iterator(\"table\",function(d){var e,f=[];var g=0;for(e=a.length;g\u003Ce;g++){var h=a[g];h.nodeName&&\"TR\"===h.nodeName.toUpperCase()?f.push(Ha(d,h)[0]):f.push(ea(d,h))}return f},1),c=this.rows(-1);c.pop();k.merge(c,b);return c});w(\"row()\",function(a,b){return wb(this.rows(a,\n-b))});w(\"row().data()\",function(a){var b=this.context;if(a===q)return b.length&&this.length?b[0].aoData[this[0]]._aData:q;var c=b[0].aoData[this[0]];c._aData=a;Array.isArray(a)&&c.nTr&&c.nTr.id&&da(b[0].rowId)(a,c.nTr.id);va(b[0],this[0],\"data\");return this});w(\"row().node()\",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});w(\"row.add()\",function(a){a instanceof k&&a.length&&(a=a[0]);var b=this.iterator(\"table\",function(c){return a.nodeName&&\"TR\"===\n-a.nodeName.toUpperCase()?Ha(c,a)[0]:ea(c,a)});return this.row(b[0])});var xc=function(a,b,c,d){var e=[],f=function(g,h){if(Array.isArray(g)||g instanceof k)for(var l=0,n=g.length;l\u003Cn;l++)f(g[l],h);else g.nodeName&&\"tr\"===g.nodeName.toLowerCase()?e.push(g):(l=k(\"\u003Ctr>\u003Ctd>\u003C\u002Ftd>\u003C\u002Ftr>\").addClass(h),k(\"td\",l).addClass(h).html(g)[0].colSpan=na(a),e.push(l[0]))};f(c,d);b._details&&b._details.detach();b._details=k(e);b._detailsShow&&b._details.insertAfter(b.nTr)},xb=function(a,b){var c=a.context;c.length&&\n-(a=c[0].aoData[b!==q?b:a[0]])&&a._details&&(a._details.remove(),a._detailsShow=q,a._details=q)},pc=function(a,b){var c=a.context;c.length&&a.length&&(a=c[0].aoData[a[0]],a._details&&((a._detailsShow=b)?a._details.insertAfter(a.nTr):a._details.detach(),yc(c[0])))},yc=function(a){var b=new C(a),c=a.aoData;b.off(\"draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details\");0\u003CT(c,\"_details\").length&&(b.on(\"draw.dt.DT_details\",function(d,e){a===e&&b.rows({page:\"current\"}).eq(0).each(function(f){f=\n-c[f];f._detailsShow&&f._details.insertAfter(f.nTr)})}),b.on(\"column-visibility.dt.DT_details\",function(d,e,f,g){if(a===e)for(e=na(e),f=0,g=c.length;f\u003Cg;f++)d=c[f],d._details&&d._details.children(\"td[colspan]\").attr(\"colspan\",e)}),b.on(\"destroy.dt.DT_details\",function(d,e){if(a===e)for(d=0,e=c.length;d\u003Ce;d++)c[d]._details&&xb(b,d)}))};w(\"row().child()\",function(a,b){var c=this.context;if(a===q)return c.length&&this.length?c[0].aoData[this[0]]._details:q;!0===a?this.child.show():!1===a?xb(this):c.length&&\n-this.length&&xc(c[0],c[0].aoData[this[0]],a,b);return this});w([\"row().child.show()\",\"row().child().show()\"],function(a){pc(this,!0);return this});w([\"row().child.hide()\",\"row().child().hide()\"],function(){pc(this,!1);return this});w([\"row().child.remove()\",\"row().child().remove()\"],function(){xb(this);return this});w(\"row().child.isShown()\",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var zc=\u002F^([^:]+):(name|visIdx|visible)$\u002F,qc=function(a,\n-b,c,d,e){c=[];d=0;for(var f=e.length;d\u003Cf;d++)c.push(S(a,e[d],b));return c},Ac=function(a,b,c){var d=a.aoColumns,e=T(d,\"sName\"),f=T(d,\"nTh\");return ub(\"column\",b,function(g){var h=hc(g);if(\"\"===g)return qa(d.length);if(null!==h)return[0\u003C=h?h:d.length+h];if(\"function\"===typeof g){var l=Va(a,c);return k.map(d,function(p,t){return g(t,qc(a,t,0,0,l),f[t])?t:null})}var n=\"string\"===typeof g?g.match(zc):\"\";if(n)switch(n[2]){case \"visIdx\":case \"visible\":h=parseInt(n[1],10);if(0>h){var m=k.map(d,function(p,\n-t){return p.bVisible?t:null});return[m[m.length+h]]}return[sa(a,h)];case \"name\":return k.map(e,function(p,t){return p===n[1]?t:null});default:return[]}if(g.nodeName&&g._DT_CellIndex)return[g._DT_CellIndex.column];h=k(f).filter(g).map(function(){return k.inArray(this,f)}).toArray();if(h.length||!g.nodeName)return h;h=k(g).closest(\"*[data-dt-column]\");return h.length?[h.data(\"dt-column\")]:[]},a,c)};w(\"columns()\",function(a,b){a===q?a=\"\":k.isPlainObject(a)&&(b=a,a=\"\");b=vb(b);var c=this.iterator(\"table\",\n-function(d){return Ac(d,a,b)},1);c.selector.cols=a;c.selector.opts=b;return c});J(\"columns().header()\",\"column().header()\",function(a,b){return this.iterator(\"column\",function(c,d){return c.aoColumns[d].nTh},1)});J(\"columns().footer()\",\"column().footer()\",function(a,b){return this.iterator(\"column\",function(c,d){return c.aoColumns[d].nTf},1)});J(\"columns().data()\",\"column().data()\",function(){return this.iterator(\"column-rows\",qc,1)});J(\"columns().dataSrc()\",\"column().dataSrc()\",function(){return this.iterator(\"column\",\n-function(a,b){return a.aoColumns[b].mData},1)});J(\"columns().cache()\",\"column().cache()\",function(a){return this.iterator(\"column-rows\",function(b,c,d,e,f){return Da(b.aoData,f,\"search\"===a?\"_aFilterData\":\"_aSortData\",c)},1)});J(\"columns().nodes()\",\"column().nodes()\",function(){return this.iterator(\"column-rows\",function(a,b,c,d,e){return Da(a.aoData,e,\"anCells\",b)},1)});J(\"columns().visible()\",\"column().visible()\",function(a,b){var c=this,d=this.iterator(\"column\",function(e,f){if(a===q)return e.aoColumns[f].bVisible;\n-var g=e.aoColumns,h=g[f],l=e.aoData,n;if(a!==q&&h.bVisible!==a){if(a){var m=k.inArray(!0,T(g,\"bVisible\"),f+1);g=0;for(n=l.length;g\u003Cn;g++){var p=l[g].nTr;e=l[g].anCells;p&&p.insertBefore(e[f],e[m]||null)}}else k(T(e.aoData,\"anCells\",f)).detach();h.bVisible=a}});a!==q&&this.iterator(\"table\",function(e){xa(e,e.aoHeader);xa(e,e.aoFooter);e.aiDisplay.length||k(e.nTBody).find(\"td[colspan]\").attr(\"colspan\",na(e));Ra(e);c.iterator(\"column\",function(f,g){H(f,null,\"column-visibility\",[f,g,a,b])});(b===q||b)&&\n-c.columns.adjust()});return d});J(\"columns().indexes()\",\"column().index()\",function(a){return this.iterator(\"column\",function(b,c){return\"visible\"===a?ta(b,c):c},1)});w(\"columns.adjust()\",function(){return this.iterator(\"table\",function(a){ra(a)},1)});w(\"column.index()\",function(a,b){if(0!==this.context.length){var c=this.context[0];if(\"fromVisible\"===a||\"toData\"===a)return sa(c,b);if(\"fromData\"===a||\"toVisible\"===a)return ta(c,b)}});w(\"column()\",function(a,b){return wb(this.columns(a,b))});var Bc=\n-function(a,b,c){var d=a.aoData,e=Va(a,c),f=kc(Da(d,e,\"anCells\")),g=k(lc([],f)),h,l=a.aoColumns.length,n,m,p,t,v,x;return ub(\"cell\",b,function(r){var A=\"function\"===typeof r;if(null===r||r===q||A){n=[];m=0;for(p=e.length;m\u003Cp;m++)for(h=e[m],t=0;t\u003Cl;t++)v={row:h,column:t},A?(x=d[h],r(v,S(a,h,t),x.anCells?x.anCells[t]:null)&&n.push(v)):n.push(v);return n}if(k.isPlainObject(r))return r.column!==q&&r.row!==q&&-1!==k.inArray(r.row,e)?[r]:[];A=g.filter(r).map(function(D,I){return{row:I._DT_CellIndex.row,\n-column:I._DT_CellIndex.column}}).toArray();if(A.length||!r.nodeName)return A;x=k(r).closest(\"*[data-dt-row]\");return x.length?[{row:x.data(\"dt-row\"),column:x.data(\"dt-column\")}]:[]},a,c)};w(\"cells()\",function(a,b,c){k.isPlainObject(a)&&(a.row===q?(c=a,a=null):(c=b,b=null));k.isPlainObject(b)&&(c=b,b=null);if(null===b||b===q)return this.iterator(\"table\",function(m){return Bc(m,a,vb(c))});var d=c?{page:c.page,order:c.order,search:c.search}:{},e=this.columns(b,d),f=this.rows(a,d),g,h,l,n;d=this.iterator(\"table\",\n-function(m,p){m=[];g=0;for(h=f[p].length;g\u003Ch;g++)for(l=0,n=e[p].length;l\u003Cn;l++)m.push({row:f[p][g],column:e[p][l]});return m},1);d=c&&c.selected?this.cells(d,c):d;k.extend(d.selector,{cols:b,rows:a,opts:c});return d});J(\"cells().nodes()\",\"cell().node()\",function(){return this.iterator(\"cell\",function(a,b,c){return(a=a.aoData[b])&&a.anCells?a.anCells[c]:q},1)});w(\"cells().data()\",function(){return this.iterator(\"cell\",function(a,b,c){return S(a,b,c)},1)});J(\"cells().cache()\",\"cell().cache()\",function(a){a=\n-\"search\"===a?\"_aFilterData\":\"_aSortData\";return this.iterator(\"cell\",function(b,c,d){return b.aoData[c][a][d]},1)});J(\"cells().render()\",\"cell().render()\",function(a){return this.iterator(\"cell\",function(b,c,d){return S(b,c,d,a)},1)});J(\"cells().indexes()\",\"cell().index()\",function(){return this.iterator(\"cell\",function(a,b,c){return{row:b,column:c,columnVisible:ta(a,c)}},1)});J(\"cells().invalidate()\",\"cell().invalidate()\",function(a){return this.iterator(\"cell\",function(b,c,d){va(b,c,a,d)})});w(\"cell()\",\n-function(a,b,c){return wb(this.cells(a,b,c))});w(\"cell().data()\",function(a){var b=this.context,c=this[0];if(a===q)return b.length&&c.length?S(b[0],c[0].row,c[0].column):q;Eb(b[0],c[0].row,c[0].column,a);va(b[0],c[0].row,\"data\",c[0].column);return this});w(\"order()\",function(a,b){var c=this.context;if(a===q)return 0!==c.length?c[0].aaSorting:q;\"number\"===typeof a?a=[[a,b]]:a.length&&!Array.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator(\"table\",function(d){d.aaSorting=\n-a.slice()})});w(\"order.listener()\",function(a,b,c){return this.iterator(\"table\",function(d){eb(d,a,b,c)})});w(\"order.fixed()\",function(a){if(!a){var b=this.context;b=b.length?b[0].aaSortingFixed:q;return Array.isArray(b)?{pre:b}:b}return this.iterator(\"table\",function(c){c.aaSortingFixed=k.extend(!0,{},a)})});w([\"columns().order()\",\"column().order()\"],function(a){var b=this;return this.iterator(\"table\",function(c,d){var e=[];k.each(b[d],function(f,g){e.push([g,a])});c.aaSorting=e})});w(\"search()\",\n-function(a,b,c,d){var e=this.context;return a===q?0!==e.length?e[0].oPreviousSearch.sSearch:q:this.iterator(\"table\",function(f){f.oFeatures.bFilter&&ya(f,k.extend({},f.oPreviousSearch,{sSearch:a+\"\",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});J(\"columns().search()\",\"column().search()\",function(a,b,c,d){return this.iterator(\"column\",function(e,f){var g=e.aoPreSearchCols;if(a===q)return g[f].sSearch;e.oFeatures.bFilter&&(k.extend(g[f],{sSearch:a+\"\",bRegex:null===\n-b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),ya(e,e.oPreviousSearch,1))})});w(\"state()\",function(){return this.context.length?this.context[0].oSavedState:null});w(\"state.clear()\",function(){return this.iterator(\"table\",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});w(\"state.loaded()\",function(){return this.context.length?this.context[0].oLoadedState:null});w(\"state.save()\",function(){return this.iterator(\"table\",function(a){Ra(a)})});u.versionCheck=u.fnVersionCheck=function(a){var b=\n-u.version.split(\".\");a=a.split(\".\");for(var c,d,e=0,f=a.length;e\u003Cf;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};u.isDataTable=u.fnIsDataTable=function(a){var b=k(a).get(0),c=!1;if(a instanceof u.Api)return!0;k.each(u.settings,function(d,e){d=e.nScrollHead?k(\"table\",e.nScrollHead)[0]:null;var f=e.nScrollFoot?k(\"table\",e.nScrollFoot)[0]:null;if(e.nTable===b||d===b||f===b)c=!0});return c};u.tables=u.fnTables=function(a){var b=!1;k.isPlainObject(a)&&(b=a.api,a=a.visible);\n-var c=k.map(u.settings,function(d){if(!a||a&&k(d.nTable).is(\":visible\"))return d.nTable});return b?new C(c):c};u.camelToHungarian=O;w(\"$()\",function(a,b){b=this.rows(b).nodes();b=k(b);return k([].concat(b.filter(a).toArray(),b.find(a).toArray()))});k.each([\"on\",\"one\",\"off\"],function(a,b){w(b+\"()\",function(){var c=Array.prototype.slice.call(arguments);c[0]=k.map(c[0].split(\u002F\\s\u002F),function(e){return e.match(\u002F\\.dt\\b\u002F)?e:e+\".dt\"}).join(\" \");var d=k(this.tables().nodes());d[b].apply(d,c);return this})});\n-w(\"clear()\",function(){return this.iterator(\"table\",function(a){Ia(a)})});w(\"settings()\",function(){return new C(this.context,this.context)});w(\"init()\",function(){var a=this.context;return a.length?a[0].oInit:null});w(\"data()\",function(){return this.iterator(\"table\",function(a){return T(a.aoData,\"_aData\")}).flatten()});w(\"destroy()\",function(a){a=a||!1;return this.iterator(\"table\",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,h=b.nTFoot,l=k(e);f=k(f);\n-var n=k(b.nTableWrapper),m=k.map(b.aoData,function(t){return t.nTr}),p;b.bDestroying=!0;H(b,\"aoDestroyCallback\",\"destroy\",[b]);a||(new C(b)).columns().visible(!0);n.off(\".DT\").find(\":not(tbody *)\").off(\".DT\");k(y).off(\".DT-\"+b.sInstance);e!=g.parentNode&&(l.children(\"thead\").detach(),l.append(g));h&&e!=h.parentNode&&(l.children(\"tfoot\").detach(),l.append(h));b.aaSorting=[];b.aaSortingFixed=[];Qa(b);k(m).removeClass(b.asStripeClasses.join(\" \"));k(\"th, td\",g).removeClass(d.sSortable+\" \"+d.sSortableAsc+\n-\" \"+d.sSortableDesc+\" \"+d.sSortableNone);f.children().detach();f.append(m);g=a?\"remove\":\"detach\";l[g]();n[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),l.css(\"width\",b.sDestroyWidth).removeClass(d.sTable),(p=b.asDestroyStripes.length)&&f.children().each(function(t){k(this).addClass(b.asDestroyStripes[t%p])}));c=k.inArray(b,u.settings);-1!==c&&u.settings.splice(c,1)})});k.each([\"column\",\"row\",\"cell\"],function(a,b){w(b+\"s().every()\",function(c){var d=this.selector.opts,e=this;return this.iterator(b,\n-function(f,g,h,l,n){c.call(e[b](g,\"cell\"===b?h:d,\"cell\"===b?d:q),g,h,l,n)})})});w(\"i18n()\",function(a,b,c){var d=this.context[0];a=ia(a)(d.oLanguage);a===q&&(a=b);c!==q&&k.isPlainObject(a)&&(a=a[c]!==q?a[c]:a._);return a.replace(\"%d\",c)});u.version=\"1.10.25\";u.settings=[];u.models={};u.models.oSearch={bCaseInsensitive:!0,sSearch:\"\",bRegex:!1,bSmart:!0};u.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:\"\",src:null,idx:-1};u.models.oColumn=\n-{idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:\"std\",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};u.defaults={aaData:null,aaSorting:[[0,\"asc\"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,\n-aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(\u002F\\B(?=(\\d{3})+(?!\\d))\u002Fg,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,\n-fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem(\"DataTables_\"+a.sInstance+\"_\"+location.pathname))}catch(b){return{}}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem(\"DataTables_\"+a.sInstance+\"_\"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,\n-iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:\": activate to sort column ascending\",sSortDescending:\": activate to sort column descending\"},oPaginate:{sFirst:\"First\",sLast:\"Last\",sNext:\"Next\",sPrevious:\"Previous\"},sEmptyTable:\"No data available in table\",sInfo:\"Showing _START_ to _END_ of _TOTAL_ entries\",sInfoEmpty:\"Showing 0 to 0 of 0 entries\",sInfoFiltered:\"(filtered from _MAX_ total entries)\",sInfoPostFix:\"\",sDecimal:\"\",\n-sThousands:\",\",sLengthMenu:\"Show _MENU_ entries\",sLoadingRecords:\"Loading...\",sProcessing:\"Processing...\",sSearch:\"Search:\",sSearchPlaceholder:\"\",sUrl:\"\",sZeroRecords:\"No matching records found\"},oSearch:k.extend({},u.models.oSearch),sAjaxDataProp:\"data\",sAjaxSource:null,sDom:\"lfrtip\",searchDelay:null,sPaginationType:\"simple_numbers\",sScrollX:\"\",sScrollXInner:\"\",sScrollY:\"\",sServerMethod:\"GET\",renderer:null,rowId:\"DT_RowId\"};G(u.defaults);u.defaults.column={aDataSort:null,iDataSort:-1,asSorting:[\"asc\",\n-\"desc\"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:\"td\",sClass:\"\",sContentPadding:\"\",sDefaultContent:null,sName:\"\",sSortDataType:\"std\",sTitle:null,sType:null,sWidth:null};G(u.defaults.column);u.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,\n-sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],\n-aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:\"\",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:\"two_button\",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,jqXHR:null,json:q,oAjaxData:q,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,\n-iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return\"ssp\"==P(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return\"ssp\"==P(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;\n-return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};u.ext=L={buttons:{},classes:{},build:\"dt\u002Fdt-1.10.25\",errMode:\"alert\",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:u.fnVersionCheck,\n-iApiIndex:0,oJUIClasses:{},sVersion:u.version};k.extend(L,{afnFiltering:L.search,aTypes:L.type.detect,ofnSearch:L.type.search,oSort:L.type.order,afnSortData:L.order,aoFeatures:L.feature,oApi:L.internal,oStdClasses:L.classes,oPagination:L.pager});k.extend(u.ext.classes,{sTable:\"dataTable\",sNoFooter:\"no-footer\",sPageButton:\"paginate_button\",sPageButtonActive:\"current\",sPageButtonDisabled:\"disabled\",sStripeOdd:\"odd\",sStripeEven:\"even\",sRowEmpty:\"dataTables_empty\",sWrapper:\"dataTables_wrapper\",sFilter:\"dataTables_filter\",\n-sInfo:\"dataTables_info\",sPaging:\"dataTables_paginate paging_\",sLength:\"dataTables_length\",sProcessing:\"dataTables_processing\",sSortAsc:\"sorting_asc\",sSortDesc:\"sorting_desc\",sSortable:\"sorting\",sSortableAsc:\"sorting_desc_disabled\",sSortableDesc:\"sorting_asc_disabled\",sSortableNone:\"sorting_disabled\",sSortColumn:\"sorting_\",sFilterInput:\"\",sLengthSelect:\"\",sScrollWrapper:\"dataTables_scroll\",sScrollHead:\"dataTables_scrollHead\",sScrollHeadInner:\"dataTables_scrollHeadInner\",sScrollBody:\"dataTables_scrollBody\",\n-sScrollFoot:\"dataTables_scrollFoot\",sScrollFootInner:\"dataTables_scrollFootInner\",sHeaderTH:\"\",sFooterTH:\"\",sSortJUIAsc:\"\",sSortJUIDesc:\"\",sSortJUI:\"\",sSortJUIAscAllowed:\"\",sSortJUIDescAllowed:\"\",sSortJUIWrapper:\"\",sSortIcon:\"\",sJUIHeader:\"\",sJUIFooter:\"\"});var ec=u.ext.pager;k.extend(ec,{simple:function(a,b){return[\"previous\",\"next\"]},full:function(a,b){return[\"first\",\"previous\",\"next\",\"last\"]},numbers:function(a,b){return[Ca(a,b)]},simple_numbers:function(a,b){return[\"previous\",Ca(a,b),\"next\"]},\n-full_numbers:function(a,b){return[\"first\",\"previous\",Ca(a,b),\"next\",\"last\"]},first_last_numbers:function(a,b){return[\"first\",Ca(a,b),\"last\"]},_numbers:Ca,numbers_length:7});k.extend(!0,u.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,h=a.oLanguage.oPaginate,l=a.oLanguage.oAria.paginate||{},n,m,p=0,t=function(x,r){var A,D=g.sPageButtonDisabled,I=function(E){lb(a,E.data.action,!0)};var W=0;for(A=r.length;W\u003CA;W++){var M=r[W];if(Array.isArray(M)){var B=k(\"\u003C\"+(M.DT_el||\"div\")+\"\u002F>\").appendTo(x);\n-t(B,M)}else{n=null;m=M;B=a.iTabIndex;switch(M){case \"ellipsis\":x.append('\u003Cspan class=\"ellipsis\">&#x2026;\u003C\u002Fspan>');break;case \"first\":n=h.sFirst;0===e&&(B=-1,m+=\" \"+D);break;case \"previous\":n=h.sPrevious;0===e&&(B=-1,m+=\" \"+D);break;case \"next\":n=h.sNext;if(0===f||e===f-1)B=-1,m+=\" \"+D;break;case \"last\":n=h.sLast;if(0===f||e===f-1)B=-1,m+=\" \"+D;break;default:n=a.fnFormatNumber(M+1),m=e===M?g.sPageButtonActive:\"\"}null!==n&&(B=k(\"\u003Ca>\",{\"class\":g.sPageButton+\" \"+m,\"aria-controls\":a.sTableId,\"aria-label\":l[M],\n-\"data-dt-idx\":p,tabindex:B,id:0===c&&\"string\"===typeof M?a.sTableId+\"_\"+M:null}).html(n).appendTo(x),pb(B,{action:M},I),p++)}}};try{var v=k(b).find(z.activeElement).data(\"dt-idx\")}catch(x){}t(k(b).empty(),d);v!==q&&k(b).find(\"[data-dt-idx=\"+v+\"]\").trigger(\"focus\")}}});k.extend(u.ext.type.detect,[function(a,b){b=b.oLanguage.sDecimal;return tb(a,b)?\"num\"+b:null},function(a,b){if(a&&!(a instanceof Date)&&!tc.test(a))return null;b=Date.parse(a);return null!==b&&!isNaN(b)||Z(a)?\"date\":null},function(a,\n-b){b=b.oLanguage.sDecimal;return tb(a,b,!0)?\"num-fmt\"+b:null},function(a,b){b=b.oLanguage.sDecimal;return jc(a,b)?\"html-num\"+b:null},function(a,b){b=b.oLanguage.sDecimal;return jc(a,b,!0)?\"html-num-fmt\"+b:null},function(a,b){return Z(a)||\"string\"===typeof a&&-1!==a.indexOf(\"\u003C\")?\"html\":null}]);k.extend(u.ext.type.search,{html:function(a){return Z(a)?a:\"string\"===typeof a?a.replace(gc,\" \").replace(Ua,\"\"):\"\"},string:function(a){return Z(a)?a:\"string\"===typeof a?a.replace(gc,\" \"):a}});var Ta=function(a,\n-b,c,d){if(0!==a&&(!a||\"-\"===a))return-Infinity;b&&(a=ic(a,b));a.replace&&(c&&(a=a.replace(c,\"\")),d&&(a=a.replace(d,\"\")));return 1*a};k.extend(L.type.order,{\"date-pre\":function(a){a=Date.parse(a);return isNaN(a)?-Infinity:a},\"html-pre\":function(a){return Z(a)?\"\":a.replace?a.replace(\u002F\u003C.*?>\u002Fg,\"\").toLowerCase():a+\"\"},\"string-pre\":function(a){return Z(a)?\"\":\"string\"===typeof a?a.toLowerCase():a.toString?a.toString():\"\"},\"string-asc\":function(a,b){return a\u003Cb?-1:a>b?1:0},\"string-desc\":function(a,b){return a\u003C\n-b?1:a>b?-1:0}});Wa(\"\");k.extend(!0,u.ext.renderer,{header:{_:function(a,b,c,d){k(a.nTable).on(\"order.dt.DT\",function(e,f,g,h){a===f&&(e=c.idx,b.removeClass(d.sSortAsc+\" \"+d.sSortDesc).addClass(\"asc\"==h[e]?d.sSortAsc:\"desc\"==h[e]?d.sSortDesc:c.sSortingClass))})},jqueryui:function(a,b,c,d){k(\"\u003Cdiv\u002F>\").addClass(d.sSortJUIWrapper).append(b.contents()).append(k(\"\u003Cspan\u002F>\").addClass(d.sSortIcon+\" \"+c.sSortingClassJUI)).appendTo(b);k(a.nTable).on(\"order.dt.DT\",function(e,f,g,h){a===f&&(e=c.idx,b.removeClass(d.sSortAsc+\n-\" \"+d.sSortDesc).addClass(\"asc\"==h[e]?d.sSortAsc:\"desc\"==h[e]?d.sSortDesc:c.sSortingClass),b.find(\"span.\"+d.sSortIcon).removeClass(d.sSortJUIAsc+\" \"+d.sSortJUIDesc+\" \"+d.sSortJUI+\" \"+d.sSortJUIAscAllowed+\" \"+d.sSortJUIDescAllowed).addClass(\"asc\"==h[e]?d.sSortJUIAsc:\"desc\"==h[e]?d.sSortJUIDesc:c.sSortingClassJUI))})}}});var yb=function(a){return\"string\"===typeof a?a.replace(\u002F&\u002Fg,\"&amp;\").replace(\u002F\u003C\u002Fg,\"&lt;\").replace(\u002F>\u002Fg,\"&gt;\").replace(\u002F\"\u002Fg,\"&quot;\"):a};u.render={number:function(a,b,c,d,e){return{display:function(f){if(\"number\"!==\n-typeof f&&\"string\"!==typeof f)return f;var g=0>f?\"-\":\"\",h=parseFloat(f);if(isNaN(h))return yb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):\"\";0===h&&0===parseFloat(f)&&(g=\"\");return g+(d||\"\")+h.toString().replace(\u002F\\B(?=(\\d{3})+(?!\\d))\u002Fg,a)+f+(e||\"\")}}},text:function(){return{display:yb,filter:yb}}};k.extend(u.ext.internal,{_fnExternApiFunc:fc,_fnBuildAjax:Ma,_fnAjaxUpdate:Gb,_fnAjaxParameters:Pb,_fnAjaxUpdateDraw:Qb,_fnAjaxDataSrc:Na,_fnAddColumn:Xa,_fnColumnOptions:Ea,\n-_fnAdjustColumnSizing:ra,_fnVisibleToColumnIndex:sa,_fnColumnIndexToVisible:ta,_fnVisbleColumns:na,_fnGetColumns:Ga,_fnColumnTypes:Za,_fnApplyColumnDefs:Db,_fnHungarianMap:G,_fnCamelToHungarian:O,_fnLanguageCompat:ma,_fnBrowserDetect:Bb,_fnAddData:ea,_fnAddTr:Ha,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==q?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return k.inArray(c,a.aoData[b].anCells)},_fnGetCellData:S,_fnSetCellData:Eb,_fnSplitObjNotation:bb,_fnGetObjectDataFn:ia,\n-_fnSetObjectDataFn:da,_fnGetDataMaster:cb,_fnClearTable:Ia,_fnDeleteIndex:Ja,_fnInvalidate:va,_fnGetRowElements:ab,_fnCreateTr:$a,_fnBuildHead:Fb,_fnDrawHead:xa,_fnDraw:fa,_fnReDraw:ja,_fnAddOptionsHtml:Ib,_fnDetectHeader:wa,_fnGetUniqueThs:La,_fnFeatureHtmlFilter:Kb,_fnFilterComplete:ya,_fnFilterCustom:Tb,_fnFilterColumn:Sb,_fnFilter:Rb,_fnFilterCreateSearch:hb,_fnEscapeRegex:ib,_fnFilterData:Ub,_fnFeatureHtmlInfo:Nb,_fnUpdateInfo:Xb,_fnInfoMacros:Yb,_fnInitialise:za,_fnInitComplete:Oa,_fnLengthChange:jb,\n-_fnFeatureHtmlLength:Jb,_fnFeatureHtmlPaginate:Ob,_fnPageChange:lb,_fnFeatureHtmlProcessing:Lb,_fnProcessingDisplay:U,_fnFeatureHtmlTable:Mb,_fnScrollDraw:Fa,_fnApplyToChildren:ba,_fnCalculateColumnWidths:Ya,_fnThrottle:gb,_fnConvertToWidth:Zb,_fnGetWidestNode:$b,_fnGetMaxLenString:ac,_fnStringToCss:K,_fnSortFlatten:pa,_fnSort:Hb,_fnSortAria:cc,_fnSortListener:ob,_fnSortAttachListener:eb,_fnSortingClasses:Qa,_fnSortData:bc,_fnSaveState:Ra,_fnLoadState:dc,_fnSettingsFromNode:Sa,_fnLog:ca,_fnMap:V,\n-_fnBindAction:pb,_fnCallbackReg:Q,_fnCallbackFire:H,_fnLengthOverflow:kb,_fnRenderer:fb,_fnDataSource:P,_fnRowAttributes:db,_fnExtend:qb,_fnCalculateEnd:function(){}});k.fn.dataTable=u;u.$=k;k.fn.dataTableSettings=u.settings;k.fn.dataTableExt=u.ext;k.fn.DataTable=function(a){return k(this).dataTable(a).api()};k.each(u,function(a,b){k.fn.DataTable[a]=b});return k.fn.dataTable});\n-\n-\n-\u002F*!\n- DataTables styling integration\n- ©2018 SpryMedia Ltd - datatables.net\u002Flicense\n-*\u002F\n-(function(c){\"function\"===typeof define&&define.amd?define([\"jquery\",\"datatables.net\"],function(a){return c(a,window,document)}):\"object\"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require(\"datatables.net\")(a,b).$);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){return c.fn.dataTable});\n-\n-\n+\u002F*\r\n+ * This combined file was created by the DataTables downloader builder:\r\n+ *   https:\u002F\u002Fdatatables.net\u002Fdownload\r\n+ *\r\n+ * To rebuild or modify this file with the latest versions of the included\r\n+ * software please visit:\r\n+ *   https:\u002F\u002Fdatatables.net\u002Fdownload\u002F#dt\u002Fdt-1.10.25\r\n+ *\r\n+ * Included libraries:\r\n+ *   DataTables 1.10.25\r\n+ *\u002F\r\n+\r\n+\u002F*!\r\n+   Copyright 2008-2021 SpryMedia Ltd.\r\n+\r\n+ This source file is free software, available under the following license:\r\n+   MIT license - http:\u002F\u002Fdatatables.net\u002Flicense\r\n+\r\n+ This source file is distributed in the hope that it will be useful, but\r\n+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r\n+ or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.\r\n+\r\n+ For details please refer to: http:\u002F\u002Fwww.datatables.net\r\n+ DataTables 1.10.25\r\n+ ©2008-2021 SpryMedia Ltd - datatables.net\u002Flicense\r\n+*\u002F\r\n+var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(k,y,z){k instanceof String&&(k=String(k));for(var q=k.length,G=0;G\u003Cq;G++){var O=k[G];if(y.call(z,O,G,k))return{i:G,v:O}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;\r\n+$jscomp.defineProperty=$jscomp.ASSUME_ES5||\"function\"==typeof Object.defineProperties?Object.defineProperty:function(k,y,z){if(k==Array.prototype||k==Object.prototype)return k;k[y]=z.value;return k};$jscomp.getGlobal=function(k){k=[\"object\"==typeof globalThis&&globalThis,k,\"object\"==typeof window&&window,\"object\"==typeof self&&self,\"object\"==typeof global&&global];for(var y=0;y\u003Ck.length;++y){var z=k[y];if(z&&z.Math==Math)return z}throw Error(\"Cannot find global object\");};$jscomp.global=$jscomp.getGlobal(this);\r\n+$jscomp.IS_SYMBOL_NATIVE=\"function\"===typeof Symbol&&\"symbol\"===typeof Symbol(\"x\");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX=\"$jscp$\";var $jscomp$lookupPolyfilledValue=function(k,y){var z=$jscomp.propertyToPolyfillSymbol[y];if(null==z)return k[y];z=k[z];return void 0!==z?z:k[y]};\r\n+$jscomp.polyfill=function(k,y,z,q){y&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(k,y,z,q):$jscomp.polyfillUnisolated(k,y,z,q))};$jscomp.polyfillUnisolated=function(k,y,z,q){z=$jscomp.global;k=k.split(\".\");for(q=0;q\u003Ck.length-1;q++){var G=k[q];if(!(G in z))return;z=z[G]}k=k[k.length-1];q=z[k];y=y(q);y!=q&&null!=y&&$jscomp.defineProperty(z,k,{configurable:!0,writable:!0,value:y})};\r\n+$jscomp.polyfillIsolated=function(k,y,z,q){var G=k.split(\".\");k=1===G.length;q=G[0];q=!k&&q in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var O=0;O\u003CG.length-1;O++){var ma=G[O];if(!(ma in q))return;q=q[ma]}G=G[G.length-1];z=$jscomp.IS_SYMBOL_NATIVE&&\"es6\"===z?q[G]:null;y=y(z);null!=y&&(k?$jscomp.defineProperty($jscomp.polyfills,G,{configurable:!0,writable:!0,value:y}):y!==z&&($jscomp.propertyToPolyfillSymbol[G]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global.Symbol(G):$jscomp.POLYFILL_PREFIX+G,\r\n+G=$jscomp.propertyToPolyfillSymbol[G],$jscomp.defineProperty(q,G,{configurable:!0,writable:!0,value:y})))};$jscomp.polyfill(\"Array.prototype.find\",function(k){return k?k:function(y,z){return $jscomp.findInternal(this,y,z).v}},\"es6\",\"es3\");\r\n+(function(k){\"function\"===typeof define&&define.amd?define([\"jquery\"],function(y){return k(y,window,document)}):\"object\"===typeof exports?module.exports=function(y,z){y||(y=window);z||(z=\"undefined\"!==typeof window?require(\"jquery\"):require(\"jquery\")(y));return k(z,y,y.document)}:k(jQuery,window,document)})(function(k,y,z,q){function G(a){var b,c,d={};k.each(a,function(e,f){(b=e.match(\u002F^([^A-Z]+?)([A-Z])\u002F))&&-1!==\"a aa ai ao as b fn i m o s \".indexOf(b[1]+\" \")&&(c=e.replace(b[0],b[2].toLowerCase()),\r\n+d[c]=e,\"o\"===b[1]&&G(a[e]))});a._hungarianMap=d}function O(a,b,c){a._hungarianMap||G(a);var d;k.each(b,function(e,f){d=a._hungarianMap[e];d===q||!c&&b[d]!==q||(\"o\"===d.charAt(0)?(b[d]||(b[d]={}),k.extend(!0,b[d],b[e]),O(a[d],b[d],c)):b[d]=b[e])})}function ma(a){var b=u.defaults.oLanguage,c=b.sDecimal;c&&Wa(c);if(a){var d=a.sZeroRecords;!a.sEmptyTable&&d&&\"No data available in table\"===b.sEmptyTable&&V(a,a,\"sZeroRecords\",\"sEmptyTable\");!a.sLoadingRecords&&d&&\"Loading...\"===b.sLoadingRecords&&V(a,a,\r\n+\"sZeroRecords\",\"sLoadingRecords\");a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&c!==a&&Wa(a)}}function zb(a){R(a,\"ordering\",\"bSort\");R(a,\"orderMulti\",\"bSortMulti\");R(a,\"orderClasses\",\"bSortClasses\");R(a,\"orderCellsTop\",\"bSortCellsTop\");R(a,\"order\",\"aaSorting\");R(a,\"orderFixed\",\"aaSortingFixed\");R(a,\"paging\",\"bPaginate\");R(a,\"pagingType\",\"sPaginationType\");R(a,\"pageLength\",\"iDisplayLength\");R(a,\"searching\",\"bFilter\");\"boolean\"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?\"100%\":\r\n+\"\");\"boolean\"===typeof a.scrollX&&(a.scrollX=a.scrollX?\"100%\":\"\");if(a=a.aoSearchCols)for(var b=0,c=a.length;b\u003Cc;b++)a[b]&&O(u.models.oSearch,a[b])}function Ab(a){R(a,\"orderable\",\"bSortable\");R(a,\"orderData\",\"aDataSort\");R(a,\"orderSequence\",\"asSorting\");R(a,\"orderDataType\",\"sortDataType\");var b=a.aDataSort;\"number\"!==typeof b||Array.isArray(b)||(a.aDataSort=[b])}function Bb(a){if(!u.__browser){var b={};u.__browser=b;var c=k(\"\u003Cdiv\u002F>\").css({position:\"fixed\",top:0,left:-1*k(y).scrollLeft(),height:1,\r\n+width:1,overflow:\"hidden\"}).append(k(\"\u003Cdiv\u002F>\").css({position:\"absolute\",top:1,left:1,width:100,overflow:\"scroll\"}).append(k(\"\u003Cdiv\u002F>\").css({width:\"100%\",height:10}))).appendTo(\"body\"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}k.extend(a.oBrowser,u.__browser);a.oScroll.iBarWidth=u.__browser.barWidth}\r\n+function Cb(a,b,c,d,e,f){var g=!1;if(c!==q){var h=c;g=!0}for(;d!==e;)a.hasOwnProperty(d)&&(h=g?b(h,a[d],d,a):a[d],g=!0,d+=f);return h}function Xa(a,b){var c=u.defaults.column,d=a.aoColumns.length;c=k.extend({},u.models.oColumn,c,{nTh:b?b:z.createElement(\"th\"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:\"\",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=k.extend({},u.models.oSearch,c[d]);Ea(a,d,k(b).data())}function Ea(a,b,c){b=a.aoColumns[b];\r\n+var d=a.oClasses,e=k(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr(\"width\")||null;var f=(e.attr(\"style\")||\"\").match(\u002Fwidth:\\s*(\\d+[pxem%]+)\u002F);f&&(b.sWidthOrig=f[1])}c!==q&&null!==c&&(Ab(c),O(u.defaults.column,c,!0),c.mDataProp===q||c.mData||(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),k.extend(b,c),V(b,c,\"sWidth\",\"sWidthOrig\"),c.iDataSort!==q&&(b.aDataSort=[c.iDataSort]),V(b,c,\"aDataSort\"));var g=b.mData,h=ia(g),\r\n+l=b.mRender?ia(b.mRender):null;c=function(n){return\"string\"===typeof n&&-1!==n.indexOf(\"@\")};b._bAttrSrc=k.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(n,m,p){var t=h(n,m,q,p);return l&&m?l(t,m,n,p):t};b.fnSetData=function(n,m,p){return da(g)(n,m,p)};\"number\"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==k.inArray(\"asc\",b.asSorting);c=-1!==k.inArray(\"desc\",b.asSorting);b.bSortable&&(a||c)?a&&!c?\r\n+(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI):(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=\"\")}function ra(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ya(a);for(var c=0,d=b.length;c\u003Cd;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;\"\"===b.sY&&\"\"===b.sX||Fa(a);H(a,null,\"column-sizing\",[a])}function sa(a,b){a=Ga(a,\"bVisible\");\r\n+return\"number\"===typeof a[b]?a[b]:null}function ta(a,b){a=Ga(a,\"bVisible\");b=k.inArray(b,a);return-1!==b?b:null}function na(a){var b=0;k.each(a.aoColumns,function(c,d){d.bVisible&&\"none\"!==k(d.nTh).css(\"display\")&&b++});return b}function Ga(a,b){var c=[];k.map(a.aoColumns,function(d,e){d[b]&&c.push(e)});return c}function Za(a){var b=a.aoColumns,c=a.aoData,d=u.ext.type.detect,e,f,g;var h=0;for(e=b.length;h\u003Ce;h++){var l=b[h];var n=[];if(!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){var m=\r\n+0;for(f=d.length;m\u003Cf;m++){var p=0;for(g=c.length;p\u003Cg;p++){n[p]===q&&(n[p]=S(a,p,h,\"type\"));var t=d[m](n[p],a);if(!t&&m!==d.length-1)break;if(\"html\"===t&&!Z(n[p]))break}if(t){l.sType=t;break}}l.sType||(l.sType=\"string\")}}}function Db(a,b,c,d){var e,f,g,h=a.aoColumns;if(b)for(e=b.length-1;0\u003C=e;e--){var l=b[e];var n=l.targets!==q?l.targets:l.aTargets;Array.isArray(n)||(n=[n]);var m=0;for(f=n.length;m\u003Cf;m++)if(\"number\"===typeof n[m]&&0\u003C=n[m]){for(;h.length\u003C=n[m];)Xa(a);d(n[m],l)}else if(\"number\"===typeof n[m]&&\r\n+0>n[m])d(h.length+n[m],l);else if(\"string\"===typeof n[m]){var p=0;for(g=h.length;p\u003Cg;p++)(\"_all\"==n[m]||k(h[p].nTh).hasClass(n[m]))&&d(p,l)}}if(c)for(e=0,a=c.length;e\u003Ca;e++)d(e,c[e])}function ea(a,b,c,d){var e=a.aoData.length,f=k.extend(!0,{},u.models.oRow,{src:c?\"dom\":\"data\",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,h=0,l=g.length;h\u003Cl;h++)g[h].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==q&&(a.aIds[b]=f);!c&&a.oFeatures.bDeferRender||$a(a,e,c,d);return e}function Ha(a,\r\n+b){var c;b instanceof k||(b=k(b));return b.map(function(d,e){c=ab(a,e);return ea(a,c.data,e,c.cells)})}function S(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,h=f.sDefaultContent,l=f.fnGetData(g,d,{settings:a,row:b,col:c});if(l===q)return a.iDrawError!=e&&null===h&&(ca(a,0,\"Requested unknown parameter \"+(\"function\"==typeof f.mData?\"{function}\":\"'\"+f.mData+\"'\")+\" for row \"+b+\", column \"+c,4),a.iDrawError=e),h;if((l===g||null===l)&&null!==h&&d!==q)l=h;else if(\"function\"===typeof l)return l.call(g);\r\n+return null===l&&\"display\"==d?\"\":l}function Eb(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})}function bb(a){return k.map(a.match(\u002F(\\\\.|[^\\.])+\u002Fg)||[\"\"],function(b){return b.replace(\u002F\\\\\\.\u002Fg,\".\")})}function ia(a){if(k.isPlainObject(a)){var b={};k.each(a,function(d,e){e&&(b[d]=ia(e))});return function(d,e,f,g){var h=b[e]||b._;return h!==q?h(d,e,f,g):d}}if(null===a)return function(d){return d};if(\"function\"===typeof a)return function(d,e,f,g){return a(d,e,f,g)};if(\"string\"!==\r\n+typeof a||-1===a.indexOf(\".\")&&-1===a.indexOf(\"[\")&&-1===a.indexOf(\"(\"))return function(d,e){return d[a]};var c=function(d,e,f){if(\"\"!==f){var g=bb(f);for(var h=0,l=g.length;h\u003Cl;h++){f=g[h].match(ua);var n=g[h].match(oa);if(f){g[h]=g[h].replace(ua,\"\");\"\"!==g[h]&&(d=d[g[h]]);n=[];g.splice(0,h+1);g=g.join(\".\");if(Array.isArray(d))for(h=0,l=d.length;h\u003Cl;h++)n.push(c(d[h],e,g));d=f[0].substring(1,f[0].length-1);d=\"\"===d?n:n.join(d);break}else if(n){g[h]=g[h].replace(oa,\"\");d=d[g[h]]();continue}if(null===\r\n+d||d[g[h]]===q)return q;d=d[g[h]]}}return d};return function(d,e){return c(d,e,a)}}function da(a){if(k.isPlainObject(a))return da(a._);if(null===a)return function(){};if(\"function\"===typeof a)return function(c,d,e){a(c,\"set\",d,e)};if(\"string\"!==typeof a||-1===a.indexOf(\".\")&&-1===a.indexOf(\"[\")&&-1===a.indexOf(\"(\"))return function(c,d){c[a]=d};var b=function(c,d,e){e=bb(e);var f=e[e.length-1];for(var g,h,l=0,n=e.length-1;l\u003Cn;l++){if(\"__proto__\"===e[l]||\"constructor\"===e[l])throw Error(\"Cannot set prototype values\");\r\n+g=e[l].match(ua);h=e[l].match(oa);if(g){e[l]=e[l].replace(ua,\"\");c[e[l]]=[];f=e.slice();f.splice(0,l+1);g=f.join(\".\");if(Array.isArray(d))for(h=0,n=d.length;h\u003Cn;h++)f={},b(f,d[h],g),c[e[l]].push(f);else c[e[l]]=d;return}h&&(e[l]=e[l].replace(oa,\"\"),c=c[e[l]](d));if(null===c[e[l]]||c[e[l]]===q)c[e[l]]={};c=c[e[l]]}if(f.match(oa))c[f.replace(oa,\"\")](d);else c[f.replace(ua,\"\")]=d};return function(c,d){return b(c,d,a)}}function cb(a){return T(a.aoData,\"_aData\")}function Ia(a){a.aoData.length=0;a.aiDisplayMaster.length=\r\n+0;a.aiDisplay.length=0;a.aIds={}}function Ja(a,b,c){for(var d=-1,e=0,f=a.length;e\u003Cf;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===q&&a.splice(d,1)}function va(a,b,c,d){var e=a.aoData[b],f,g=function(l,n){for(;l.childNodes.length;)l.removeChild(l.firstChild);l.innerHTML=S(a,b,n,\"display\")};if(\"dom\"!==c&&(c&&\"auto\"!==c||\"dom\"!==e.src)){var h=e.anCells;if(h)if(d!==q)g(h[d],d);else for(c=0,f=h.length;c\u003Cf;c++)g(h[c],c)}else e._aData=ab(a,e,d,d===q?q:e._aData).data;e._aSortData=null;e._aFilterData=null;g=\r\n+a.aoColumns;if(d!==q)g[d].sType=null;else{c=0;for(f=g.length;c\u003Cf;c++)g[c].sType=null;db(a,e)}}function ab(a,b,c,d){var e=[],f=b.firstChild,g,h=0,l,n=a.aoColumns,m=a._rowReadObject;d=d!==q?d:m?{}:[];var p=function(x,r){if(\"string\"===typeof x){var A=x.indexOf(\"@\");-1!==A&&(A=x.substring(A+1),da(x)(d,r.getAttribute(A)))}},t=function(x){if(c===q||c===h)g=n[h],l=x.innerHTML.trim(),g&&g._bAttrSrc?(da(g.mData._)(d,l),p(g.mData.sort,x),p(g.mData.type,x),p(g.mData.filter,x)):m?(g._setter||(g._setter=da(g.mData)),\r\n+g._setter(d,l)):d[h]=l;h++};if(f)for(;f;){var v=f.nodeName.toUpperCase();if(\"TD\"==v||\"TH\"==v)t(f),e.push(f);f=f.nextSibling}else for(e=b.anCells,f=0,v=e.length;f\u003Cv;f++)t(e[f]);(b=b.firstChild?b:b.nTr)&&(b=b.getAttribute(\"id\"))&&da(a.rowId)(d,b);return{data:d,cells:e}}function $a(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],h,l;if(null===e.nTr){var n=c||z.createElement(\"tr\");e.nTr=n;e.anCells=g;n._DT_RowIndex=b;db(a,e);var m=0;for(h=a.aoColumns.length;m\u003Ch;m++){var p=a.aoColumns[m];e=(l=c?!1:!0)?z.createElement(p.sCellType):\r\n+d[m];e._DT_CellIndex={row:b,column:m};g.push(e);if(l||!(!p.mRender&&p.mData===m||k.isPlainObject(p.mData)&&p.mData._===m+\".display\"))e.innerHTML=S(a,b,m,\"display\");p.sClass&&(e.className+=\" \"+p.sClass);p.bVisible&&!c?n.appendChild(e):!p.bVisible&&c&&e.parentNode.removeChild(e);p.fnCreatedCell&&p.fnCreatedCell.call(a.oInstance,e,S(a,b,m),f,b,m)}H(a,\"aoRowCreatedCallback\",null,[n,f,b,g])}}function db(a,b){var c=b.nTr,d=b._aData;if(c){if(a=a.rowIdFn(d))c.id=a;d.DT_RowClass&&(a=d.DT_RowClass.split(\" \"),\r\n+b.__rowc=b.__rowc?Ka(b.__rowc.concat(a)):a,k(c).removeClass(b.__rowc.join(\" \")).addClass(d.DT_RowClass));d.DT_RowAttr&&k(c).attr(d.DT_RowAttr);d.DT_RowData&&k(c).data(d.DT_RowData)}}function Fb(a){var b,c,d=a.nTHead,e=a.nTFoot,f=0===k(\"th, td\",d).length,g=a.oClasses,h=a.aoColumns;f&&(c=k(\"\u003Ctr\u002F>\").appendTo(d));var l=0;for(b=h.length;l\u003Cb;l++){var n=h[l];var m=k(n.nTh).addClass(n.sClass);f&&m.appendTo(c);a.oFeatures.bSort&&(m.addClass(n.sSortingClass),!1!==n.bSortable&&(m.attr(\"tabindex\",a.iTabIndex).attr(\"aria-controls\",\r\n+a.sTableId),eb(a,n.nTh,l)));n.sTitle!=m[0].innerHTML&&m.html(n.sTitle);fb(a,\"header\")(a,m,n,g)}f&&wa(a.aoHeader,d);k(d).children(\"tr\").attr(\"role\",\"row\");k(d).children(\"tr\").children(\"th, td\").addClass(g.sHeaderTH);k(e).children(\"tr\").children(\"th, td\").addClass(g.sFooterTH);if(null!==e)for(a=a.aoFooter[0],l=0,b=a.length;l\u003Cb;l++)n=h[l],n.nTf=a[l].cell,n.sClass&&k(n.nTf).addClass(n.sClass)}function xa(a,b,c){var d,e,f=[],g=[],h=a.aoColumns.length;if(b){c===q&&(c=!1);var l=0;for(d=b.length;l\u003Cd;l++){f[l]=\r\n+b[l].slice();f[l].nTr=b[l].nTr;for(e=h-1;0\u003C=e;e--)a.aoColumns[e].bVisible||c||f[l].splice(e,1);g.push([])}l=0;for(d=f.length;l\u003Cd;l++){if(a=f[l].nTr)for(;e=a.firstChild;)a.removeChild(e);e=0;for(b=f[l].length;e\u003Cb;e++){var n=h=1;if(g[l][e]===q){a.appendChild(f[l][e].cell);for(g[l][e]=1;f[l+h]!==q&&f[l][e].cell==f[l+h][e].cell;)g[l+h][e]=1,h++;for(;f[l][e+n]!==q&&f[l][e].cell==f[l][e+n].cell;){for(c=0;c\u003Ch;c++)g[l+c][e+n]=1;n++}k(f[l][e].cell).attr(\"rowspan\",h).attr(\"colspan\",n)}}}}}function fa(a,b){var c=\r\n+H(a,\"aoPreDrawCallback\",\"preDraw\",[a]);if(-1!==k.inArray(!1,c))U(a,!1);else{c=[];var d=0,e=a.asStripeClasses,f=e.length,g=a.oLanguage,h=a.iInitDisplayStart,l=\"ssp\"==P(a),n=a.aiDisplay;a.bDrawing=!0;h!==q&&-1!==h&&(a._iDisplayStart=l?h:h>=a.fnRecordsDisplay()?0:h,a.iInitDisplayStart=-1);h=a._iDisplayStart;var m=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,U(a,!1);else if(!l)a.iDraw++;else if(!a.bDestroying&&!b){Gb(a);return}if(0!==n.length)for(b=l?a.aoData.length:m,g=l?0:h;g\u003Cb;g++){l=\r\n+n[g];var p=a.aoData[l];null===p.nTr&&$a(a,l);var t=p.nTr;if(0!==f){var v=e[d%f];p._sRowStripe!=v&&(k(t).removeClass(p._sRowStripe).addClass(v),p._sRowStripe=v)}H(a,\"aoRowCallback\",null,[t,p._aData,d,g,l]);c.push(t);d++}else d=g.sZeroRecords,1==a.iDraw&&\"ajax\"==P(a)?d=g.sLoadingRecords:g.sEmptyTable&&0===a.fnRecordsTotal()&&(d=g.sEmptyTable),c[0]=k(\"\u003Ctr\u002F>\",{\"class\":f?e[0]:\"\"}).append(k(\"\u003Ctd \u002F>\",{valign:\"top\",colSpan:na(a),\"class\":a.oClasses.sRowEmpty}).html(d))[0];H(a,\"aoHeaderCallback\",\"header\",[k(a.nTHead).children(\"tr\")[0],\r\n+cb(a),h,m,n]);H(a,\"aoFooterCallback\",\"footer\",[k(a.nTFoot).children(\"tr\")[0],cb(a),h,m,n]);e=k(a.nTBody);e.children().detach();e.append(k(c));H(a,\"aoDrawCallback\",\"draw\",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function ja(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&Hb(a);d?ya(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;fa(a);a._drawHold=!1}function Ib(a){var b=a.oClasses,c=k(a.nTable);c=k(\"\u003Cdiv\u002F>\").insertBefore(c);var d=a.oFeatures,\r\n+e=k(\"\u003Cdiv\u002F>\",{id:a.sTableId+\"_wrapper\",\"class\":b.sWrapper+(a.nTFoot?\"\":\" \"+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(\"\"),g,h,l,n,m,p,t=0;t\u003Cf.length;t++){g=null;h=f[t];if(\"\u003C\"==h){l=k(\"\u003Cdiv\u002F>\")[0];n=f[t+1];if(\"'\"==n||'\"'==n){m=\"\";for(p=2;f[t+p]!=n;)m+=f[t+p],p++;\"H\"==m?m=b.sJUIHeader:\"F\"==m&&(m=b.sJUIFooter);-1!=m.indexOf(\".\")?(n=m.split(\".\"),l.id=n[0].substr(1,n[0].length-1),l.className=n[1]):\"#\"==m.charAt(0)?l.id=m.substr(1,\r\n+m.length-1):l.className=m;t+=p}e.append(l);e=k(l)}else if(\">\"==h)e=e.parent();else if(\"l\"==h&&d.bPaginate&&d.bLengthChange)g=Jb(a);else if(\"f\"==h&&d.bFilter)g=Kb(a);else if(\"r\"==h&&d.bProcessing)g=Lb(a);else if(\"t\"==h)g=Mb(a);else if(\"i\"==h&&d.bInfo)g=Nb(a);else if(\"p\"==h&&d.bPaginate)g=Ob(a);else if(0!==u.ext.feature.length)for(l=u.ext.feature,p=0,n=l.length;p\u003Cn;p++)if(h==l[p].cFeature){g=l[p].fnInit(a);break}g&&(l=a.aanFeatures,l[h]||(l[h]=[]),l[h].push(g),e.append(g))}c.replaceWith(e);a.nHolding=\r\n+null}function wa(a,b){b=k(b).children(\"tr\");var c,d,e;a.splice(0,a.length);var f=0;for(e=b.length;f\u003Ce;f++)a.push([]);f=0;for(e=b.length;f\u003Ce;f++){var g=b[f];for(c=g.firstChild;c;){if(\"TD\"==c.nodeName.toUpperCase()||\"TH\"==c.nodeName.toUpperCase()){var h=1*c.getAttribute(\"colspan\");var l=1*c.getAttribute(\"rowspan\");h=h&&0!==h&&1!==h?h:1;l=l&&0!==l&&1!==l?l:1;var n=0;for(d=a[f];d[n];)n++;var m=n;var p=1===h?!0:!1;for(d=0;d\u003Ch;d++)for(n=0;n\u003Cl;n++)a[f+n][m+d]={cell:c,unique:p},a[f+n].nTr=g}c=c.nextSibling}}}\r\n+function La(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],wa(c,b)));b=0;for(var e=c.length;b\u003Ce;b++)for(var f=0,g=c[b].length;f\u003Cg;f++)!c[b][f].unique||d[f]&&a.bSortCellsTop||(d[f]=c[b][f].cell);return d}function Ma(a,b,c){H(a,\"aoServerParams\",\"serverParams\",[b]);if(b&&Array.isArray(b)){var d={},e=\u002F(.*?)\\[\\]$\u002F;k.each(b,function(m,p){(m=p.name.match(e))?(m=m[0],d[m]||(d[m]=[]),d[m].push(p.value)):d[p.name]=p.value});b=d}var f=a.ajax,g=a.oInstance,h=function(m){H(a,null,\"xhr\",[a,m,a.jqXHR]);c(m)};if(k.isPlainObject(f)&&\r\n+f.data){var l=f.data;var n=\"function\"===typeof l?l(b,a):l;b=\"function\"===typeof l&&n?n:k.extend(!0,b,n);delete f.data}n={data:b,success:function(m){var p=m.error||m.sError;p&&ca(a,0,p);a.json=m;h(m)},dataType:\"json\",cache:!1,type:a.sServerMethod,error:function(m,p,t){t=H(a,null,\"xhr\",[a,null,a.jqXHR]);-1===k.inArray(!0,t)&&(\"parsererror\"==p?ca(a,0,\"Invalid JSON response\",1):4===m.readyState&&ca(a,0,\"Ajax error\",7));U(a,!1)}};a.oAjaxData=b;H(a,null,\"preXhr\",[a,b]);a.fnServerData?a.fnServerData.call(g,\r\n+a.sAjaxSource,k.map(b,function(m,p){return{name:p,value:m}}),h,a):a.sAjaxSource||\"string\"===typeof f?a.jqXHR=k.ajax(k.extend(n,{url:f||a.sAjaxSource})):\"function\"===typeof f?a.jqXHR=f.call(g,b,h,a):(a.jqXHR=k.ajax(k.extend(n,f)),f.data=l)}function Gb(a){a.iDraw++;U(a,!0);Ma(a,Pb(a),function(b){Qb(a,b)})}function Pb(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g=[],h=pa(a);var l=a._iDisplayStart;var n=!1!==d.bPaginate?a._iDisplayLength:-1;var m=function(x,r){g.push({name:x,\r\n+value:r})};m(\"sEcho\",a.iDraw);m(\"iColumns\",c);m(\"sColumns\",T(b,\"sName\").join(\",\"));m(\"iDisplayStart\",l);m(\"iDisplayLength\",n);var p={draw:a.iDraw,columns:[],order:[],start:l,length:n,search:{value:e.sSearch,regex:e.bRegex}};for(l=0;l\u003Cc;l++){var t=b[l];var v=f[l];n=\"function\"==typeof t.mData?\"function\":t.mData;p.columns.push({data:n,name:t.sName,searchable:t.bSearchable,orderable:t.bSortable,search:{value:v.sSearch,regex:v.bRegex}});m(\"mDataProp_\"+l,n);d.bFilter&&(m(\"sSearch_\"+l,v.sSearch),m(\"bRegex_\"+\r\n+l,v.bRegex),m(\"bSearchable_\"+l,t.bSearchable));d.bSort&&m(\"bSortable_\"+l,t.bSortable)}d.bFilter&&(m(\"sSearch\",e.sSearch),m(\"bRegex\",e.bRegex));d.bSort&&(k.each(h,function(x,r){p.order.push({column:r.col,dir:r.dir});m(\"iSortCol_\"+x,r.col);m(\"sSortDir_\"+x,r.dir)}),m(\"iSortingCols\",h.length));b=u.ext.legacy.ajax;return null===b?a.sAjaxSource?g:p:b?g:p}function Qb(a,b){var c=function(g,h){return b[g]!==q?b[g]:b[h]},d=Na(a,b),e=c(\"sEcho\",\"draw\"),f=c(\"iTotalRecords\",\"recordsTotal\");c=c(\"iTotalDisplayRecords\",\r\n+\"recordsFiltered\");if(e!==q){if(1*e\u003Ca.iDraw)return;a.iDraw=1*e}Ia(a);a._iRecordsTotal=parseInt(f,10);a._iRecordsDisplay=parseInt(c,10);e=0;for(f=d.length;e\u003Cf;e++)ea(a,d[e]);a.aiDisplay=a.aiDisplayMaster.slice();fa(a,!0);a._bInitComplete||Oa(a,b);U(a,!1)}function Na(a,b){a=k.isPlainObject(a.ajax)&&a.ajax.dataSrc!==q?a.ajax.dataSrc:a.sAjaxDataProp;return\"data\"===a?b.aaData||b[a]:\"\"!==a?ia(a)(b):b}function Kb(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='\u003Cinput type=\"search\" class=\"'+\r\n+b.sFilterInput+'\"\u002F>',h=d.sSearch;h=h.match(\u002F_INPUT_\u002F)?h.replace(\"_INPUT_\",g):h+g;b=k(\"\u003Cdiv\u002F>\",{id:f.f?null:c+\"_filter\",\"class\":b.sFilter}).append(k(\"\u003Clabel\u002F>\").append(h));var l=function(){var m=this.value?this.value:\"\";m!=e.sSearch&&(ya(a,{sSearch:m,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,fa(a))};f=null!==a.searchDelay?a.searchDelay:\"ssp\"===P(a)?400:0;var n=k(\"input\",b).val(e.sSearch).attr(\"placeholder\",d.sSearchPlaceholder).on(\"keyup.DT search.DT input.DT paste.DT cut.DT\",\r\n+f?gb(l,f):l).on(\"mouseup\",function(m){setTimeout(function(){l.call(n[0])},10)}).on(\"keypress.DT\",function(m){if(13==m.keyCode)return!1}).attr(\"aria-controls\",c);k(a.nTable).on(\"search.dt.DT\",function(m,p){if(a===p)try{n[0]!==z.activeElement&&n.val(e.sSearch)}catch(t){}});return b[0]}function ya(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(h){d.sSearch=h.sSearch;d.bRegex=h.bRegex;d.bSmart=h.bSmart;d.bCaseInsensitive=h.bCaseInsensitive},g=function(h){return h.bEscapeRegex!==q?!h.bEscapeRegex:\r\n+h.bRegex};Za(a);if(\"ssp\"!=P(a)){Rb(a,b.sSearch,c,g(b),b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b\u003Ce.length;b++)Sb(a,e[b].sSearch,b,g(e[b]),e[b].bSmart,e[b].bCaseInsensitive);Tb(a)}else f(b);a.bFiltered=!0;H(a,null,\"search\",[a])}function Tb(a){for(var b=u.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f\u003Cg;f++){for(var h=[],l=0,n=c.length;l\u003Cn;l++)e=c[l],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,l)&&h.push(e);c.length=0;k.merge(c,h)}}function Sb(a,b,c,d,e,f){if(\"\"!==b){var g=[],h=a.aiDisplay;d=hb(b,\r\n+d,e,f);for(e=0;e\u003Ch.length;e++)b=a.aoData[h[e]]._aFilterData[c],d.test(b)&&g.push(h[e]);a.aiDisplay=g}}function Rb(a,b,c,d,e,f){e=hb(b,d,e,f);var g=a.oPreviousSearch.sSearch,h=a.aiDisplayMaster;f=[];0!==u.ext.search.length&&(c=!0);var l=Ub(a);if(0>=b.length)a.aiDisplay=h.slice();else{if(l||c||d||g.length>b.length||0!==b.indexOf(g)||a.bSorted)a.aiDisplay=h.slice();b=a.aiDisplay;for(c=0;c\u003Cb.length;c++)e.test(a.aoData[b[c]]._sFilterRow)&&f.push(b[c]);a.aiDisplay=f}}function hb(a,b,c,d){a=b?a:ib(a);c&&\r\n+(a=\"^(?=.*?\"+k.map(a.match(\u002F\"[^\"]+\"|[^ ]+\u002Fg)||[\"\"],function(e){if('\"'===e.charAt(0)){var f=e.match(\u002F^\"(.*)\"$\u002F);e=f?f[1]:e}return e.replace('\"',\"\")}).join(\")(?=.*?\")+\").*$\");return new RegExp(a,d?\"i\":\"\")}function Ub(a){var b=a.aoColumns,c,d,e=u.ext.type.search;var f=!1;var g=0;for(c=a.aoData.length;g\u003Cc;g++){var h=a.aoData[g];if(!h._aFilterData){var l=[];var n=0;for(d=b.length;n\u003Cd;n++){f=b[n];if(f.bSearchable){var m=S(a,g,n,\"filter\");e[f.sType]&&(m=e[f.sType](m));null===m&&(m=\"\");\"string\"!==typeof m&&\r\n+m.toString&&(m=m.toString())}else m=\"\";m.indexOf&&-1!==m.indexOf(\"&\")&&(Pa.innerHTML=m,m=rc?Pa.textContent:Pa.innerText);m.replace&&(m=m.replace(\u002F[\\r\\n\\u2028]\u002Fg,\"\"));l.push(m)}h._aFilterData=l;h._sFilterRow=l.join(\"  \");f=!0}}return f}function Vb(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,caseInsensitive:a.bCaseInsensitive}}function Wb(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function Nb(a){var b=a.sTableId,c=a.aanFeatures.i,d=k(\"\u003Cdiv\u002F>\",\r\n+{\"class\":a.oClasses.sInfo,id:c?null:b+\"_info\"});c||(a.aoDrawCallback.push({fn:Xb,sName:\"information\"}),d.attr(\"role\",\"status\").attr(\"aria-live\",\"polite\"),k(a.nTable).attr(\"aria-describedby\",b+\"_info\"));return d[0]}function Xb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),h=g?c.sInfo:c.sInfoEmpty;g!==f&&(h+=\" \"+c.sInfoFiltered);h+=c.sInfoPostFix;h=Yb(a,h);c=c.fnInfoCallback;null!==c&&(h=c.call(a.oInstance,\r\n+a,d,e,f,g,h));k(b).html(h)}}function Yb(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(\u002F_START_\u002Fg,c.call(a,d)).replace(\u002F_END_\u002Fg,c.call(a,a.fnDisplayEnd())).replace(\u002F_MAX_\u002Fg,c.call(a,a.fnRecordsTotal())).replace(\u002F_TOTAL_\u002Fg,c.call(a,f)).replace(\u002F_PAGE_\u002Fg,c.call(a,g?1:Math.ceil(d\u002Fe))).replace(\u002F_PAGES_\u002Fg,c.call(a,g?1:Math.ceil(f\u002Fe)))}function za(a){var b=a.iInitDisplayStart,c=a.aoColumns;var d=a.oFeatures;var e=a.bDeferLoading;if(a.bInitialised){Ib(a);\r\n+Fb(a);xa(a,a.aoHeader);xa(a,a.aoFooter);U(a,!0);d.bAutoWidth&&Ya(a);var f=0;for(d=c.length;f\u003Cd;f++){var g=c[f];g.sWidth&&(g.nTh.style.width=K(g.sWidth))}H(a,null,\"preInit\",[a]);ja(a);c=P(a);if(\"ssp\"!=c||e)\"ajax\"==c?Ma(a,[],function(h){var l=Na(a,h);for(f=0;f\u003Cl.length;f++)ea(a,l[f]);a.iInitDisplayStart=b;ja(a);U(a,!1);Oa(a,h)},a):(U(a,!1),Oa(a))}else setTimeout(function(){za(a)},200)}function Oa(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&ra(a);H(a,null,\"plugin-init\",[a,b]);H(a,\"aoInitComplete\",\r\n+\"init\",[a,b])}function jb(a,b){b=parseInt(b,10);a._iDisplayLength=b;kb(a);H(a,null,\"length\",[a,b])}function Jb(a){var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=Array.isArray(d[0]),f=e?d[0]:d;d=e?d[1]:d;e=k(\"\u003Cselect\u002F>\",{name:c+\"_length\",\"aria-controls\":c,\"class\":b.sLengthSelect});for(var g=0,h=f.length;g\u003Ch;g++)e[0][g]=new Option(\"number\"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],f[g]);var l=k(\"\u003Cdiv>\u003Clabel\u002F>\u003C\u002Fdiv>\").addClass(b.sLength);a.aanFeatures.l||(l[0].id=c+\"_length\");l.children().append(a.oLanguage.sLengthMenu.replace(\"_MENU_\",\r\n+e[0].outerHTML));k(\"select\",l).val(a._iDisplayLength).on(\"change.DT\",function(n){jb(a,k(this).val());fa(a)});k(a.nTable).on(\"length.dt.DT\",function(n,m,p){a===m&&k(\"select\",l).val(p)});return l[0]}function Ob(a){var b=a.sPaginationType,c=u.ext.pager[b],d=\"function\"===typeof c,e=function(g){fa(g)};b=k(\"\u003Cdiv\u002F>\").addClass(a.oClasses.sPaging+b)[0];var f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+\"_paginate\",a.aoDrawCallback.push({fn:function(g){if(d){var h=g._iDisplayStart,l=g._iDisplayLength,\r\n+n=g.fnRecordsDisplay(),m=-1===l;h=m?0:Math.ceil(h\u002Fl);l=m?1:Math.ceil(n\u002Fl);n=c(h,l);var p;m=0;for(p=f.p.length;m\u003Cp;m++)fb(g,\"pageButton\")(g,f.p[m],m,n,h,l)}else c.fnUpdate(g,e)},sName:\"pagination\"}));return b}function lb(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===e?d=0:\"number\"===typeof b?(d=b*e,d>f&&(d=0)):\"first\"==b?d=0:\"previous\"==b?(d=0\u003C=e?d-e:0,0>d&&(d=0)):\"next\"==b?d+e\u003Cf&&(d+=e):\"last\"==b?d=Math.floor((f-1)\u002Fe)*e:ca(a,0,\"Unknown paging action: \"+b,5);\r\n+b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(H(a,null,\"page\",[a]),c&&fa(a));return b}function Lb(a){return k(\"\u003Cdiv\u002F>\",{id:a.aanFeatures.r?null:a.sTableId+\"_processing\",\"class\":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function U(a,b){a.oFeatures.bProcessing&&k(a.aanFeatures.r).css(\"display\",b?\"block\":\"none\");H(a,null,\"processing\",[a,b])}function Mb(a){var b=k(a.nTable);b.attr(\"role\",\"grid\");var c=a.oScroll;if(\"\"===c.sX&&\"\"===c.sY)return a.nTable;var d=c.sX,\r\n+e=c.sY,f=a.oClasses,g=b.children(\"caption\"),h=g.length?g[0]._captionSide:null,l=k(b[0].cloneNode(!1)),n=k(b[0].cloneNode(!1)),m=b.children(\"tfoot\");m.length||(m=null);l=k(\"\u003Cdiv\u002F>\",{\"class\":f.sScrollWrapper}).append(k(\"\u003Cdiv\u002F>\",{\"class\":f.sScrollHead}).css({overflow:\"hidden\",position:\"relative\",border:0,width:d?d?K(d):null:\"100%\"}).append(k(\"\u003Cdiv\u002F>\",{\"class\":f.sScrollHeadInner}).css({\"box-sizing\":\"content-box\",width:c.sXInner||\"100%\"}).append(l.removeAttr(\"id\").css(\"margin-left\",0).append(\"top\"===h?\r\n+g:null).append(b.children(\"thead\"))))).append(k(\"\u003Cdiv\u002F>\",{\"class\":f.sScrollBody}).css({position:\"relative\",overflow:\"auto\",width:d?K(d):null}).append(b));m&&l.append(k(\"\u003Cdiv\u002F>\",{\"class\":f.sScrollFoot}).css({overflow:\"hidden\",border:0,width:d?d?K(d):null:\"100%\"}).append(k(\"\u003Cdiv\u002F>\",{\"class\":f.sScrollFootInner}).append(n.removeAttr(\"id\").css(\"margin-left\",0).append(\"bottom\"===h?g:null).append(b.children(\"tfoot\")))));b=l.children();var p=b[0];f=b[1];var t=m?b[2]:null;if(d)k(f).on(\"scroll.DT\",function(v){v=\r\n+this.scrollLeft;p.scrollLeft=v;m&&(t.scrollLeft=v)});k(f).css(\"max-height\",e);c.bCollapse||k(f).css(\"height\",e);a.nScrollHead=p;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:Fa,sName:\"scrolling\"});return l[0]}function Fa(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY;b=b.iBarWidth;var f=k(a.nScrollHead),g=f[0].style,h=f.children(\"div\"),l=h[0].style,n=h.children(\"table\");h=a.nScrollBody;var m=k(h),p=h.style,t=k(a.nScrollFoot).children(\"div\"),v=t.children(\"table\"),x=k(a.nTHead),r=k(a.nTable),\r\n+A=r[0],D=A.style,I=a.nTFoot?k(a.nTFoot):null,W=a.oBrowser,M=W.bScrollOversize,B=T(a.aoColumns,\"nTh\"),E=[],aa=[],X=[],Aa=[],mb,Ba=function(F){F=F.style;F.paddingTop=\"0\";F.paddingBottom=\"0\";F.borderTopWidth=\"0\";F.borderBottomWidth=\"0\";F.height=0};var ha=h.scrollHeight>h.clientHeight;if(a.scrollBarVis!==ha&&a.scrollBarVis!==q)a.scrollBarVis=ha,ra(a);else{a.scrollBarVis=ha;r.children(\"thead, tfoot\").remove();if(I){var ka=I.clone().prependTo(r);var la=I.find(\"tr\");ka=ka.find(\"tr\")}var nb=x.clone().prependTo(r);\r\n+x=x.find(\"tr\");ha=nb.find(\"tr\");nb.find(\"th, td\").removeAttr(\"tabindex\");c||(p.width=\"100%\",f[0].style.width=\"100%\");k.each(La(a,nb),function(F,Y){mb=sa(a,F);Y.style.width=a.aoColumns[mb].sWidth});I&&ba(function(F){F.style.width=\"\"},ka);f=r.outerWidth();\"\"===c?(D.width=\"100%\",M&&(r.find(\"tbody\").height()>h.offsetHeight||\"scroll\"==m.css(\"overflow-y\"))&&(D.width=K(r.outerWidth()-b)),f=r.outerWidth()):\"\"!==d&&(D.width=K(d),f=r.outerWidth());ba(Ba,ha);ba(function(F){X.push(F.innerHTML);E.push(K(k(F).css(\"width\")))},\r\n+ha);ba(function(F,Y){-1!==k.inArray(F,B)&&(F.style.width=E[Y])},x);k(ha).height(0);I&&(ba(Ba,ka),ba(function(F){Aa.push(F.innerHTML);aa.push(K(k(F).css(\"width\")))},ka),ba(function(F,Y){F.style.width=aa[Y]},la),k(ka).height(0));ba(function(F,Y){F.innerHTML='\u003Cdiv class=\"dataTables_sizing\">'+X[Y]+\"\u003C\u002Fdiv>\";F.childNodes[0].style.height=\"0\";F.childNodes[0].style.overflow=\"hidden\";F.style.width=E[Y]},ha);I&&ba(function(F,Y){F.innerHTML='\u003Cdiv class=\"dataTables_sizing\">'+Aa[Y]+\"\u003C\u002Fdiv>\";F.childNodes[0].style.height=\r\n+\"0\";F.childNodes[0].style.overflow=\"hidden\";F.style.width=aa[Y]},ka);r.outerWidth()\u003Cf?(la=h.scrollHeight>h.offsetHeight||\"scroll\"==m.css(\"overflow-y\")?f+b:f,M&&(h.scrollHeight>h.offsetHeight||\"scroll\"==m.css(\"overflow-y\"))&&(D.width=K(la-b)),\"\"!==c&&\"\"===d||ca(a,1,\"Possible column misalignment\",6)):la=\"100%\";p.width=K(la);g.width=K(la);I&&(a.nScrollFoot.style.width=K(la));!e&&M&&(p.height=K(A.offsetHeight+b));c=r.outerWidth();n[0].style.width=K(c);l.width=K(c);d=r.height()>h.clientHeight||\"scroll\"==\r\n+m.css(\"overflow-y\");e=\"padding\"+(W.bScrollbarLeft?\"Left\":\"Right\");l[e]=d?b+\"px\":\"0px\";I&&(v[0].style.width=K(c),t[0].style.width=K(c),t[0].style[e]=d?b+\"px\":\"0px\");r.children(\"colgroup\").insertBefore(r.children(\"thead\"));m.trigger(\"scroll\");!a.bSorted&&!a.bFiltered||a._drawHold||(h.scrollTop=0)}}function ba(a,b,c){for(var d=0,e=0,f=b.length,g,h;e\u003Cf;){g=b[e].firstChild;for(h=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,h,d):a(g,d),d++),g=g.nextSibling,h=c?h.nextSibling:null;e++}}function Ya(a){var b=\r\n+a.nTable,c=a.aoColumns,d=a.oScroll,e=d.sY,f=d.sX,g=d.sXInner,h=c.length,l=Ga(a,\"bVisible\"),n=k(\"th\",a.nTHead),m=b.getAttribute(\"width\"),p=b.parentNode,t=!1,v,x=a.oBrowser;d=x.bScrollOversize;(v=b.style.width)&&-1!==v.indexOf(\"%\")&&(m=v);for(v=0;v\u003Cl.length;v++){var r=c[l[v]];null!==r.sWidth&&(r.sWidth=Zb(r.sWidthOrig,p),t=!0)}if(d||!t&&!f&&!e&&h==na(a)&&h==n.length)for(v=0;v\u003Ch;v++)l=sa(a,v),null!==l&&(c[l].sWidth=K(n.eq(v).width()));else{h=k(b).clone().css(\"visibility\",\"hidden\").removeAttr(\"id\");h.find(\"tbody tr\").remove();\r\n+var A=k(\"\u003Ctr\u002F>\").appendTo(h.find(\"tbody\"));h.find(\"thead, tfoot\").remove();h.append(k(a.nTHead).clone()).append(k(a.nTFoot).clone());h.find(\"tfoot th, tfoot td\").css(\"width\",\"\");n=La(a,h.find(\"thead\")[0]);for(v=0;v\u003Cl.length;v++)r=c[l[v]],n[v].style.width=null!==r.sWidthOrig&&\"\"!==r.sWidthOrig?K(r.sWidthOrig):\"\",r.sWidthOrig&&f&&k(n[v]).append(k(\"\u003Cdiv\u002F>\").css({width:r.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(v=0;v\u003Cl.length;v++)t=l[v],r=c[t],k($b(a,t)).clone(!1).append(r.sContentPadding).appendTo(A);\r\n+k(\"[name]\",h).removeAttr(\"name\");r=k(\"\u003Cdiv\u002F>\").css(f||e?{position:\"absolute\",top:0,left:0,height:1,right:0,overflow:\"hidden\"}:{}).append(h).appendTo(p);f&&g?h.width(g):f?(h.css(\"width\",\"auto\"),h.removeAttr(\"width\"),h.width()\u003Cp.clientWidth&&m&&h.width(p.clientWidth)):e?h.width(p.clientWidth):m&&h.width(m);for(v=e=0;v\u003Cl.length;v++)p=k(n[v]),g=p.outerWidth()-p.width(),p=x.bBounding?Math.ceil(n[v].getBoundingClientRect().width):p.outerWidth(),e+=p,c[l[v]].sWidth=K(p-g);b.style.width=K(e);r.remove()}m&&\r\n+(b.style.width=K(m));!m&&!f||a._reszEvt||(b=function(){k(y).on(\"resize.DT-\"+a.sInstance,gb(function(){ra(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0)}function Zb(a,b){if(!a)return 0;a=k(\"\u003Cdiv\u002F>\").css(\"width\",K(a)).appendTo(b||z.body);b=a[0].offsetWidth;a.remove();return b}function $b(a,b){var c=ac(a,b);if(0>c)return null;var d=a.aoData[c];return d.nTr?d.anCells[b]:k(\"\u003Ctd\u002F>\").html(S(a,c,b,\"display\"))[0]}function ac(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f\u003Cg;f++)c=S(a,f,b,\"display\")+\"\",c=c.replace(sc,\r\n+\"\"),c=c.replace(\u002F&nbsp;\u002Fg,\" \"),c.length>d&&(d=c.length,e=f);return e}function K(a){return null===a?\"0px\":\"number\"==typeof a?0>a?\"0px\":a+\"px\":a.match(\u002F\\d$\u002F)?a+\"px\":a}function pa(a){var b=[],c=a.aoColumns;var d=a.aaSortingFixed;var e=k.isPlainObject(d);var f=[];var g=function(m){m.length&&!Array.isArray(m[0])?f.push(m):k.merge(f,m)};Array.isArray(d)&&g(d);e&&d.pre&&g(d.pre);g(a.aaSorting);e&&d.post&&g(d.post);for(a=0;a\u003Cf.length;a++){var h=f[a][0];g=c[h].aDataSort;d=0;for(e=g.length;d\u003Ce;d++){var l=g[d];\r\n+var n=c[l].sType||\"string\";f[a]._idx===q&&(f[a]._idx=k.inArray(f[a][1],c[l].asSorting));b.push({src:h,col:l,dir:f[a][1],index:f[a]._idx,type:n,formatter:u.ext.type.order[n+\"-pre\"]})}}return b}function Hb(a){var b,c=[],d=u.ext.type.order,e=a.aoData,f=0,g=a.aiDisplayMaster;Za(a);var h=pa(a);var l=0;for(b=h.length;l\u003Cb;l++){var n=h[l];n.formatter&&f++;bc(a,n.col)}if(\"ssp\"!=P(a)&&0!==h.length){l=0;for(b=g.length;l\u003Cb;l++)c[g[l]]=l;f===h.length?g.sort(function(m,p){var t,v=h.length,x=e[m]._aSortData,r=e[p]._aSortData;\r\n+for(t=0;t\u003Cv;t++){var A=h[t];var D=x[A.col];var I=r[A.col];D=D\u003CI?-1:D>I?1:0;if(0!==D)return\"asc\"===A.dir?D:-D}D=c[m];I=c[p];return D\u003CI?-1:D>I?1:0}):g.sort(function(m,p){var t,v=h.length,x=e[m]._aSortData,r=e[p]._aSortData;for(t=0;t\u003Cv;t++){var A=h[t];var D=x[A.col];var I=r[A.col];A=d[A.type+\"-\"+A.dir]||d[\"string-\"+A.dir];D=A(D,I);if(0!==D)return D}D=c[m];I=c[p];return D\u003CI?-1:D>I?1:0})}a.bSorted=!0}function cc(a){var b=a.aoColumns,c=pa(a);a=a.oLanguage.oAria;for(var d=0,e=b.length;d\u003Ce;d++){var f=b[d];\r\n+var g=f.asSorting;var h=f.ariaTitle||f.sTitle.replace(\u002F\u003C.*?>\u002Fg,\"\");var l=f.nTh;l.removeAttribute(\"aria-sort\");f.bSortable&&(0\u003Cc.length&&c[0].col==d?(l.setAttribute(\"aria-sort\",\"asc\"==c[0].dir?\"ascending\":\"descending\"),f=g[c[0].index+1]||g[0]):f=g[0],h+=\"asc\"===f?a.sSortAscending:a.sSortDescending);l.setAttribute(\"aria-label\",h)}}function ob(a,b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(h,l){var n=h._idx;n===q&&(n=k.inArray(h[1],f));return n+1\u003Cf.length?n+1:l?null:0};\"number\"===typeof e[0]&&\r\n+(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=k.inArray(b,T(e,\"0\")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);ja(a);\"function\"==typeof d&&d(a)}function eb(a,b,c,d){var e=a.aoColumns[c];pb(b,{},function(f){!1!==e.bSortable&&(a.oFeatures.bProcessing?(U(a,!0),setTimeout(function(){ob(a,\r\n+c,f.shiftKey,d);\"ssp\"!==P(a)&&U(a,!1)},0)):ob(a,c,f.shiftKey,d))})}function Qa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=pa(a),e=a.oFeatures,f;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e\u003Cf;e++){var g=b[e].src;k(T(a.aoData,\"anCells\",g)).removeClass(c+(2>e?e+1:3))}e=0;for(f=d.length;e\u003Cf;e++)g=d[e].src,k(T(a.aoData,\"anCells\",g)).addClass(c+(2>e?e+1:3))}a.aLastSort=d}function bc(a,b){var c=a.aoColumns[b],d=u.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ta(a,b)));for(var f,g=u.ext.type.order[c.sType+\r\n+\"-pre\"],h=0,l=a.aoData.length;h\u003Cl;h++)if(c=a.aoData[h],c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[h]:S(a,h,b,\"sort\"),c._aSortData[b]=g?g(f):f}function Ra(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:k.extend(!0,[],a.aaSorting),search:Vb(a.oPreviousSearch),columns:k.map(a.aoColumns,function(c,d){return{visible:c.bVisible,search:Vb(a.aoPreSearchCols[d])}})};H(a,\"aoStateSaveParams\",\"stateSaveParams\",[a,b]);a.oSavedState=\r\n+b;a.fnStateSaveCallback.call(a.oInstance,a,b)}}function dc(a,b,c){var d,e,f=a.aoColumns;b=function(h){if(h&&h.time){var l=H(a,\"aoStateLoadParams\",\"stateLoadParams\",[a,h]);if(-1===k.inArray(!1,l)&&(l=a.iStateDuration,!(0\u003Cl&&h.time\u003C+new Date-1E3*l||h.columns&&f.length!==h.columns.length))){a.oLoadedState=k.extend(!0,{},h);h.start!==q&&(a._iDisplayStart=h.start,a.iInitDisplayStart=h.start);h.length!==q&&(a._iDisplayLength=h.length);h.order!==q&&(a.aaSorting=[],k.each(h.order,function(n,m){a.aaSorting.push(m[0]>=\r\n+f.length?[0,m[1]]:m)}));h.search!==q&&k.extend(a.oPreviousSearch,Wb(h.search));if(h.columns)for(d=0,e=h.columns.length;d\u003Ce;d++)l=h.columns[d],l.visible!==q&&(f[d].bVisible=l.visible),l.search!==q&&k.extend(a.aoPreSearchCols[d],Wb(l.search));H(a,\"aoStateLoaded\",\"stateLoaded\",[a,h])}}c()};if(a.oFeatures.bStateSave){var g=a.fnStateLoadCallback.call(a.oInstance,a,b);g!==q&&b(g)}else c()}function Sa(a){var b=u.settings;a=k.inArray(a,T(b,\"nTable\"));return-1!==a?b[a]:null}function ca(a,b,c,d){c=\"DataTables warning: \"+\r\n+(a?\"table id=\"+a.sTableId+\" - \":\"\")+c;d&&(c+=\". For more information about this error, please see http:\u002F\u002Fdatatables.net\u002Ftn\u002F\"+d);if(b)y.console&&console.log&&console.log(c);else if(b=u.ext,b=b.sErrMode||b.errMode,a&&H(a,null,\"error\",[a,d,c]),\"alert\"==b)alert(c);else{if(\"throw\"==b)throw Error(c);\"function\"==typeof b&&b(a,d,c)}}function V(a,b,c,d){Array.isArray(c)?k.each(c,function(e,f){Array.isArray(f)?V(a,b,f[0],f[1]):V(a,b,f)}):(d===q&&(d=c),b[c]!==q&&(a[d]=b[c]))}function qb(a,b,c){var d;for(d in b)if(b.hasOwnProperty(d)){var e=\r\n+b[d];k.isPlainObject(e)?(k.isPlainObject(a[d])||(a[d]={}),k.extend(!0,a[d],e)):c&&\"data\"!==d&&\"aaData\"!==d&&Array.isArray(e)?a[d]=e.slice():a[d]=e}return a}function pb(a,b,c){k(a).on(\"click.DT\",b,function(d){k(a).trigger(\"blur\");c(d)}).on(\"keypress.DT\",b,function(d){13===d.which&&(d.preventDefault(),c(d))}).on(\"selectstart.DT\",function(){return!1})}function Q(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function H(a,b,c,d){var e=[];b&&(e=k.map(a[b].slice().reverse(),function(f,g){return f.fn.apply(a.oInstance,\r\n+d)}));null!==c&&(b=k.Event(c+\".dt\"),k(a.nTable).trigger(b,d),e.push(b.result));return e}function kb(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function fb(a,b){a=a.renderer;var c=u.ext.renderer[b];return k.isPlainObject(a)&&a[b]?c[a[b]]||c._:\"string\"===typeof a?c[a]||c._:c._}function P(a){return a.oFeatures.bServerSide?\"ssp\":a.ajax||a.sAjaxSource?\"ajax\":\"dom\"}function Ca(a,b){var c=ec.numbers_length,d=Math.floor(c\u002F2);\r\n+b\u003C=c?a=qa(0,b):a\u003C=d?(a=qa(0,c-2),a.push(\"ellipsis\"),a.push(b-1)):(a>=b-1-d?a=qa(b-(c-2),b):(a=qa(a-d+2,a+d-1),a.push(\"ellipsis\"),a.push(b-1)),a.splice(0,0,\"ellipsis\"),a.splice(0,0,0));a.DT_el=\"span\";return a}function Wa(a){k.each({num:function(b){return Ta(b,a)},\"num-fmt\":function(b){return Ta(b,a,rb)},\"html-num\":function(b){return Ta(b,a,Ua)},\"html-num-fmt\":function(b){return Ta(b,a,Ua,rb)}},function(b,c){L.type.order[b+a+\"-pre\"]=c;b.match(\u002F^html\\-\u002F)&&(L.type.search[b+a]=L.type.search.html)})}function fc(a){return function(){var b=\r\n+[Sa(this[u.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return u.ext.internal[a].apply(this,b)}}var u=function(a){this.$=function(f,g){return this.api(!0).$(f,g)};this._=function(f,g){return this.api(!0).rows(f,g).data()};this.api=function(f){return f?new C(Sa(this[L.iApiIndex])):new C(this)};this.fnAddData=function(f,g){var h=this.api(!0);f=Array.isArray(f)&&(Array.isArray(f[0])||k.isPlainObject(f[0]))?h.rows.add(f):h.row.add(f);(g===q||g)&&h.draw();return f.flatten().toArray()};\r\n+this.fnAdjustColumnSizing=function(f){var g=this.api(!0).columns.adjust(),h=g.settings()[0],l=h.oScroll;f===q||f?g.draw(!1):(\"\"!==l.sX||\"\"!==l.sY)&&Fa(h)};this.fnClearTable=function(f){var g=this.api(!0).clear();(f===q||f)&&g.draw()};this.fnClose=function(f){this.api(!0).row(f).child.hide()};this.fnDeleteRow=function(f,g,h){var l=this.api(!0);f=l.rows(f);var n=f.settings()[0],m=n.aoData[f[0][0]];f.remove();g&&g.call(this,n,m);(h===q||h)&&l.draw();return m};this.fnDestroy=function(f){this.api(!0).destroy(f)};\r\n+this.fnDraw=function(f){this.api(!0).draw(f)};this.fnFilter=function(f,g,h,l,n,m){n=this.api(!0);null===g||g===q?n.search(f,h,l,m):n.column(g).search(f,h,l,m);n.draw()};this.fnGetData=function(f,g){var h=this.api(!0);if(f!==q){var l=f.nodeName?f.nodeName.toLowerCase():\"\";return g!==q||\"td\"==l||\"th\"==l?h.cell(f,g).data():h.row(f).data()||null}return h.data().toArray()};this.fnGetNodes=function(f){var g=this.api(!0);return f!==q?g.row(f).node():g.rows().nodes().flatten().toArray()};this.fnGetPosition=\r\n+function(f){var g=this.api(!0),h=f.nodeName.toUpperCase();return\"TR\"==h?g.row(f).index():\"TD\"==h||\"TH\"==h?(f=g.cell(f).index(),[f.row,f.columnVisible,f.column]):null};this.fnIsOpen=function(f){return this.api(!0).row(f).child.isShown()};this.fnOpen=function(f,g,h){return this.api(!0).row(f).child(g,h).show().child()[0]};this.fnPageChange=function(f,g){f=this.api(!0).page(f);(g===q||g)&&f.draw(!1)};this.fnSetColumnVis=function(f,g,h){f=this.api(!0).column(f).visible(g);(h===q||h)&&f.columns.adjust().draw()};\r\n+this.fnSettings=function(){return Sa(this[L.iApiIndex])};this.fnSort=function(f){this.api(!0).order(f).draw()};this.fnSortListener=function(f,g,h){this.api(!0).order.listener(f,g,h)};this.fnUpdate=function(f,g,h,l,n){var m=this.api(!0);h===q||null===h?m.row(g).data(f):m.cell(g,h).data(f);(n===q||n)&&m.columns.adjust();(l===q||l)&&m.draw();return 0};this.fnVersionCheck=L.fnVersionCheck;var b=this,c=a===q,d=this.length;c&&(a={});this.oApi=this.internal=L.internal;for(var e in u.ext.internal)e&&(this[e]=\r\n+fc(e));this.each(function(){var f={},g=1\u003Cd?qb(f,a,!0):a,h=0,l;f=this.getAttribute(\"id\");var n=!1,m=u.defaults,p=k(this);if(\"table\"!=this.nodeName.toLowerCase())ca(null,0,\"Non-table node initialisation (\"+this.nodeName+\")\",2);else{zb(m);Ab(m.column);O(m,m,!0);O(m.column,m.column,!0);O(m,k.extend(g,p.data()),!0);var t=u.settings;h=0;for(l=t.length;h\u003Cl;h++){var v=t[h];if(v.nTable==this||v.nTHead&&v.nTHead.parentNode==this||v.nTFoot&&v.nTFoot.parentNode==this){var x=g.bRetrieve!==q?g.bRetrieve:m.bRetrieve;\r\n+if(c||x)return v.oInstance;if(g.bDestroy!==q?g.bDestroy:m.bDestroy){v.oInstance.fnDestroy();break}else{ca(v,0,\"Cannot reinitialise DataTable\",3);return}}if(v.sTableId==this.id){t.splice(h,1);break}}if(null===f||\"\"===f)this.id=f=\"DataTables_Table_\"+u.ext._unique++;var r=k.extend(!0,{},u.models.oSettings,{sDestroyWidth:p[0].style.width,sInstance:f,sTableId:f});r.nTable=this;r.oApi=b.internal;r.oInit=g;t.push(r);r.oInstance=1===b.length?b:p.dataTable();zb(g);ma(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&\r\n+(g.iDisplayLength=Array.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);g=qb(k.extend(!0,{},m),g);V(r.oFeatures,g,\"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender\".split(\" \"));V(r,g,[\"asStripeClasses\",\"ajax\",\"fnServerData\",\"fnFormatNumber\",\"sServerMethod\",\"aaSorting\",\"aaSortingFixed\",\"aLengthMenu\",\"sPaginationType\",\"sAjaxSource\",\"sAjaxDataProp\",\"iStateDuration\",\"sDom\",\"bSortCellsTop\",\"iTabIndex\",\"fnStateLoadCallback\",\r\n+\"fnStateSaveCallback\",\"renderer\",\"searchDelay\",\"rowId\",[\"iCookieDuration\",\"iStateDuration\"],[\"oSearch\",\"oPreviousSearch\"],[\"aoSearchCols\",\"aoPreSearchCols\"],[\"iDisplayLength\",\"_iDisplayLength\"]]);V(r.oScroll,g,[[\"sScrollX\",\"sX\"],[\"sScrollXInner\",\"sXInner\"],[\"sScrollY\",\"sY\"],[\"bScrollCollapse\",\"bCollapse\"]]);V(r.oLanguage,g,\"fnInfoCallback\");Q(r,\"aoDrawCallback\",g.fnDrawCallback,\"user\");Q(r,\"aoServerParams\",g.fnServerParams,\"user\");Q(r,\"aoStateSaveParams\",g.fnStateSaveParams,\"user\");Q(r,\"aoStateLoadParams\",\r\n+g.fnStateLoadParams,\"user\");Q(r,\"aoStateLoaded\",g.fnStateLoaded,\"user\");Q(r,\"aoRowCallback\",g.fnRowCallback,\"user\");Q(r,\"aoRowCreatedCallback\",g.fnCreatedRow,\"user\");Q(r,\"aoHeaderCallback\",g.fnHeaderCallback,\"user\");Q(r,\"aoFooterCallback\",g.fnFooterCallback,\"user\");Q(r,\"aoInitComplete\",g.fnInitComplete,\"user\");Q(r,\"aoPreDrawCallback\",g.fnPreDrawCallback,\"user\");r.rowIdFn=ia(g.rowId);Bb(r);var A=r.oClasses;k.extend(A,u.ext.classes,g.oClasses);p.addClass(A.sTable);r.iInitDisplayStart===q&&(r.iInitDisplayStart=\r\n+g.iDisplayStart,r._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(r.bDeferLoading=!0,f=Array.isArray(g.iDeferLoading),r._iRecordsDisplay=f?g.iDeferLoading[0]:g.iDeferLoading,r._iRecordsTotal=f?g.iDeferLoading[1]:g.iDeferLoading);var D=r.oLanguage;k.extend(!0,D,g.oLanguage);D.sUrl?(k.ajax({dataType:\"json\",url:D.sUrl,success:function(B){ma(B);O(m.oLanguage,B);k.extend(!0,D,B);H(r,null,\"i18n\",[r]);za(r)},error:function(){za(r)}}),n=!0):H(r,null,\"i18n\",[r]);null===g.asStripeClasses&&(r.asStripeClasses=\r\n+[A.sStripeOdd,A.sStripeEven]);f=r.asStripeClasses;var I=p.children(\"tbody\").find(\"tr\").eq(0);-1!==k.inArray(!0,k.map(f,function(B,E){return I.hasClass(B)}))&&(k(\"tbody tr\",this).removeClass(f.join(\" \")),r.asDestroyStripes=f.slice());f=[];t=this.getElementsByTagName(\"thead\");0!==t.length&&(wa(r.aoHeader,t[0]),f=La(r));if(null===g.aoColumns)for(t=[],h=0,l=f.length;h\u003Cl;h++)t.push(null);else t=g.aoColumns;h=0;for(l=t.length;h\u003Cl;h++)Xa(r,f?f[h]:null);Db(r,g.aoColumnDefs,t,function(B,E){Ea(r,B,E)});if(I.length){var W=\r\n+function(B,E){return null!==B.getAttribute(\"data-\"+E)?E:null};k(I[0]).children(\"th, td\").each(function(B,E){var aa=r.aoColumns[B];if(aa.mData===B){var X=W(E,\"sort\")||W(E,\"order\");E=W(E,\"filter\")||W(E,\"search\");if(null!==X||null!==E)aa.mData={_:B+\".display\",sort:null!==X?B+\".@data-\"+X:q,type:null!==X?B+\".@data-\"+X:q,filter:null!==E?B+\".@data-\"+E:q},Ea(r,B)}})}var M=r.oFeatures;f=function(){if(g.aaSorting===q){var B=r.aaSorting;h=0;for(l=B.length;h\u003Cl;h++)B[h][1]=r.aoColumns[h].asSorting[0]}Qa(r);M.bSort&&\r\n+Q(r,\"aoDrawCallback\",function(){if(r.bSorted){var X=pa(r),Aa={};k.each(X,function(mb,Ba){Aa[Ba.src]=Ba.dir});H(r,null,\"order\",[r,X,Aa]);cc(r)}});Q(r,\"aoDrawCallback\",function(){(r.bSorted||\"ssp\"===P(r)||M.bDeferRender)&&Qa(r)},\"sc\");B=p.children(\"caption\").each(function(){this._captionSide=k(this).css(\"caption-side\")});var E=p.children(\"thead\");0===E.length&&(E=k(\"\u003Cthead\u002F>\").appendTo(p));r.nTHead=E[0];var aa=p.children(\"tbody\");0===aa.length&&(aa=k(\"\u003Ctbody\u002F>\").insertAfter(E));r.nTBody=aa[0];E=p.children(\"tfoot\");\r\n+0===E.length&&0\u003CB.length&&(\"\"!==r.oScroll.sX||\"\"!==r.oScroll.sY)&&(E=k(\"\u003Ctfoot\u002F>\").appendTo(p));0===E.length||0===E.children().length?p.addClass(A.sNoFooter):0\u003CE.length&&(r.nTFoot=E[0],wa(r.aoFooter,r.nTFoot));if(g.aaData)for(h=0;h\u003Cg.aaData.length;h++)ea(r,g.aaData[h]);else(r.bDeferLoading||\"dom\"==P(r))&&Ha(r,k(r.nTBody).children(\"tr\"));r.aiDisplay=r.aiDisplayMaster.slice();r.bInitialised=!0;!1===n&&za(r)};g.bStateSave?(M.bStateSave=!0,Q(r,\"aoDrawCallback\",Ra,\"state_save\"),dc(r,g,f)):f()}});b=null;\r\n+return this},L,w,J,sb={},gc=\u002F[\\r\\n\\u2028]\u002Fg,Ua=\u002F\u003C.*?>\u002Fg,tc=\u002F^\\d{2,4}[\\.\\\u002F\\-]\\d{1,2}[\\.\\\u002F\\-]\\d{1,2}([T ]{1}\\d{1,2}[:\\.]\\d{2}([\\.:]\\d{2})?)?$\u002F,uc=\u002F(\\\u002F|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)\u002Fg,rb=\u002F['\\u00A0,$£€¥%\\u2009\\u202F\\u20BD\\u20a9\\u20BArfkɃΞ]\u002Fgi,Z=function(a){return a&&!0!==a&&\"-\"!==a?!1:!0},hc=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},ic=function(a,b){sb[b]||(sb[b]=new RegExp(ib(b),\"g\"));return\"string\"===typeof a&&\".\"!==b?a.replace(\u002F\\.\u002Fg,\"\").replace(sb[b],\".\"):\r\n+a},tb=function(a,b,c){var d=\"string\"===typeof a;if(Z(a))return!0;b&&d&&(a=ic(a,b));c&&d&&(a=a.replace(rb,\"\"));return!isNaN(parseFloat(a))&&isFinite(a)},jc=function(a,b,c){return Z(a)?!0:Z(a)||\"string\"===typeof a?tb(a.replace(Ua,\"\"),b,c)?!0:null:null},T=function(a,b,c){var d=[],e=0,f=a.length;if(c!==q)for(;e\u003Cf;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e\u003Cf;e++)a[e]&&d.push(a[e][b]);return d},Da=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==q)for(;f\u003Cg;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f\u003C\r\n+g;f++)e.push(a[b[f]][c]);return e},qa=function(a,b){var c=[];if(b===q){b=0;var d=a}else d=b,b=a;for(a=b;a\u003Cd;a++)c.push(a);return c},kc=function(a){for(var b=[],c=0,d=a.length;c\u003Cd;c++)a[c]&&b.push(a[c]);return b},Ka=function(a){a:{if(!(2>a.length)){var b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d\u003Ce;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();b=[];e=a.length;var f,g=0;d=0;a:for(;d\u003Ce;d++){c=a[d];for(f=0;f\u003Cg;f++)if(b[f]===c)continue a;b.push(c);g++}return b},lc=function(a,\r\n+b){if(Array.isArray(b))for(var c=0;c\u003Cb.length;c++)lc(a,b[c]);else a.push(b);return a};Array.isArray||(Array.isArray=function(a){return\"[object Array]\"===Object.prototype.toString.call(a)});String.prototype.trim||(String.prototype.trim=function(){return this.replace(\u002F^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$\u002Fg,\"\")});u.util={throttle:function(a,b){var c=b!==q?b:200,d,e;return function(){var f=this,g=+new Date,h=arguments;d&&g\u003Cd+c?(clearTimeout(e),e=setTimeout(function(){d=q;a.apply(f,h)},c)):(d=g,a.apply(f,\r\n+h))}},escapeRegex:function(a){return a.replace(uc,\"\\\\$1\")}};var R=function(a,b,c){a[b]!==q&&(a[c]=a[b])},ua=\u002F\\[.*?\\]$\u002F,oa=\u002F\\(\\)$\u002F,ib=u.util.escapeRegex,Pa=k(\"\u003Cdiv>\")[0],rc=Pa.textContent!==q,sc=\u002F\u003C.*?>\u002Fg,gb=u.util.throttle,mc=[],N=Array.prototype,vc=function(a){var b,c=u.settings,d=k.map(c,function(f,g){return f.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&\"table\"===a.nodeName.toLowerCase()){var e=k.inArray(a,d);return-1!==e?[c[e]]:null}if(a&&\"function\"===typeof a.settings)return a.settings().toArray();\r\n+\"string\"===typeof a?b=k(a):a instanceof k&&(b=a)}else return[];if(b)return b.map(function(f){e=k.inArray(this,d);return-1!==e?c[e]:null}).toArray()};var C=function(a,b){if(!(this instanceof C))return new C(a,b);var c=[],d=function(g){(g=vc(g))&&c.push.apply(c,g)};if(Array.isArray(a))for(var e=0,f=a.length;e\u003Cf;e++)d(a[e]);else d(a);this.context=Ka(c);b&&k.merge(this,b);this.selector={rows:null,cols:null,opts:null};C.extend(this,this,mc)};u.Api=C;k.extend(C.prototype,{any:function(){return 0!==this.count()},\r\n+concat:N.concat,context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b\u003Cc;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=this.context;return b.length>a?new C(b[a],this[a]):null},filter:function(a){var b=[];if(N.filter)b=N.filter.call(this,a,this);else for(var c=0,d=this.length;c\u003Cd;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new C(this.context,b)},flatten:function(){var a=[];return new C(this.context,a.concat.apply(a,this.toArray()))},\r\n+join:N.join,indexOf:N.indexOf||function(a,b){b=b||0;for(var c=this.length;b\u003Cc;b++)if(this[b]===a)return b;return-1},iterator:function(a,b,c,d){var e=[],f,g,h=this.context,l,n=this.selector;\"string\"===typeof a&&(d=c,c=b,b=a,a=!1);var m=0;for(f=h.length;m\u003Cf;m++){var p=new C(h[m]);if(\"table\"===b){var t=c.call(p,h[m],m);t!==q&&e.push(t)}else if(\"columns\"===b||\"rows\"===b)t=c.call(p,h[m],this[m],m),t!==q&&e.push(t);else if(\"column\"===b||\"column-rows\"===b||\"row\"===b||\"cell\"===b){var v=this[m];\"column-rows\"===\r\n+b&&(l=Va(h[m],n.opts));var x=0;for(g=v.length;x\u003Cg;x++)t=v[x],t=\"cell\"===b?c.call(p,h[m],t.row,t.column,m,x):c.call(p,h[m],t,m,x,l),t!==q&&e.push(t)}}return e.length||d?(a=new C(h,a?e.concat.apply([],e):e),b=a.selector,b.rows=n.rows,b.cols=n.cols,b.opts=n.opts,a):this},lastIndexOf:N.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(N.map)b=N.map.call(this,a,this);else for(var c=0,d=this.length;c\u003Cd;c++)b.push(a.call(this,this[c],\r\n+c));return new C(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:N.pop,push:N.push,reduce:N.reduce||function(a,b){return Cb(this,a,b,0,this.length,1)},reduceRight:N.reduceRight||function(a,b){return Cb(this,a,b,this.length-1,-1,-1)},reverse:N.reverse,selector:null,shift:N.shift,slice:function(){return new C(this.context,this)},sort:N.sort,splice:N.splice,toArray:function(){return N.slice.call(this)},to$:function(){return k(this)},toJQuery:function(){return k(this)},\r\n+unique:function(){return new C(this.context,Ka(this))},unshift:N.unshift});C.extend=function(a,b,c){if(c.length&&b&&(b instanceof C||b.__dt_wrapper)){var d,e=function(h,l,n){return function(){var m=l.apply(h,arguments);C.extend(m,m,n.methodExt);return m}};var f=0;for(d=c.length;f\u003Cd;f++){var g=c[f];b[g.name]=\"function\"===g.type?e(a,g.val,g):\"object\"===g.type?{}:g.val;b[g.name].__dt_wrapper=!0;C.extend(a,b[g.name],g.propExt)}}};C.register=w=function(a,b){if(Array.isArray(a))for(var c=0,d=a.length;c\u003C\r\n+d;c++)C.register(a[c],b);else{d=a.split(\".\");var e=mc,f;a=0;for(c=d.length;a\u003Cc;a++){var g=(f=-1!==d[a].indexOf(\"()\"))?d[a].replace(\"()\",\"\"):d[a];a:{var h=0;for(var l=e.length;h\u003Cl;h++)if(e[h].name===g){h=e[h];break a}h=null}h||(h={name:g,val:{},methodExt:[],propExt:[],type:\"object\"},e.push(h));a===c-1?(h.val=b,h.type=\"function\"===typeof b?\"function\":k.isPlainObject(b)?\"object\":\"other\"):e=f?h.methodExt:h.propExt}}};C.registerPlural=J=function(a,b,c){C.register(a,c);C.register(b,function(){var d=c.apply(this,\r\n+arguments);return d===this?this:d instanceof C?d.length?Array.isArray(d[0])?new C(d.context,d[0]):d[0]:q:d})};var nc=function(a,b){if(Array.isArray(a))return k.map(a,function(d){return nc(d,b)});if(\"number\"===typeof a)return[b[a]];var c=k.map(b,function(d,e){return d.nTable});return k(c).filter(a).map(function(d){d=k.inArray(this,c);return b[d]}).toArray()};w(\"tables()\",function(a){return a!==q&&null!==a?new C(nc(a,this.context)):this});w(\"table()\",function(a){a=this.tables(a);var b=a.context;return b.length?\r\n+new C(b[0]):a});J(\"tables().nodes()\",\"table().node()\",function(){return this.iterator(\"table\",function(a){return a.nTable},1)});J(\"tables().body()\",\"table().body()\",function(){return this.iterator(\"table\",function(a){return a.nTBody},1)});J(\"tables().header()\",\"table().header()\",function(){return this.iterator(\"table\",function(a){return a.nTHead},1)});J(\"tables().footer()\",\"table().footer()\",function(){return this.iterator(\"table\",function(a){return a.nTFoot},1)});J(\"tables().containers()\",\"table().container()\",\r\n+function(){return this.iterator(\"table\",function(a){return a.nTableWrapper},1)});w(\"draw()\",function(a){return this.iterator(\"table\",function(b){\"page\"===a?fa(b):(\"string\"===typeof a&&(a=\"full-hold\"===a?!1:!0),ja(b,!1===a))})});w(\"page()\",function(a){return a===q?this.page.info().page:this.iterator(\"table\",function(b){lb(b,a)})});w(\"page.info()\",function(a){if(0===this.context.length)return q;a=this.context[0];var b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),\r\n+e=-1===c;return{page:e?0:Math.floor(b\u002Fc),pages:e?1:Math.ceil(d\u002Fc),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:\"ssp\"===P(a)}});w(\"page.len()\",function(a){return a===q?0!==this.context.length?this.context[0]._iDisplayLength:q:this.iterator(\"table\",function(b){jb(b,a)})});var oc=function(a,b,c){if(c){var d=new C(a);d.one(\"draw\",function(){c(d.ajax.json())})}if(\"ssp\"==P(a))ja(a,b);else{U(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();Ma(a,[],function(f){Ia(a);\r\n+f=Na(a,f);for(var g=0,h=f.length;g\u003Ch;g++)ea(a,f[g]);ja(a,b);U(a,!1)})}};w(\"ajax.json()\",function(){var a=this.context;if(0\u003Ca.length)return a[0].json});w(\"ajax.params()\",function(){var a=this.context;if(0\u003Ca.length)return a[0].oAjaxData});w(\"ajax.reload()\",function(a,b){return this.iterator(\"table\",function(c){oc(c,!1===b,a)})});w(\"ajax.url()\",function(a){var b=this.context;if(a===q){if(0===b.length)return q;b=b[0];return b.ajax?k.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator(\"table\",\r\n+function(c){k.isPlainObject(c.ajax)?c.ajax.url=a:c.ajax=a})});w(\"ajax.url().load()\",function(a,b){return this.iterator(\"table\",function(c){oc(c,!1===b,a)})});var ub=function(a,b,c,d,e){var f=[],g,h,l;var n=typeof b;b&&\"string\"!==n&&\"function\"!==n&&b.length!==q||(b=[b]);n=0;for(h=b.length;n\u003Ch;n++){var m=b[n]&&b[n].split&&!b[n].match(\u002F[\\[\\(:]\u002F)?b[n].split(\",\"):[b[n]];var p=0;for(l=m.length;p\u003Cl;p++)(g=c(\"string\"===typeof m[p]?m[p].trim():m[p]))&&g.length&&(f=f.concat(g))}a=L.selector[a];if(a.length)for(n=\r\n+0,h=a.length;n\u003Ch;n++)f=a[n](d,e,f);return Ka(f)},vb=function(a){a||(a={});a.filter&&a.search===q&&(a.search=a.filter);return k.extend({search:\"none\",order:\"current\",page:\"all\"},a)},wb=function(a){for(var b=0,c=a.length;b\u003Cc;b++)if(0\u003Ca[b].length)return a[0]=a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Va=function(a,b){var c=[],d=a.aiDisplay;var e=a.aiDisplayMaster;var f=b.search;var g=b.order;b=b.page;if(\"ssp\"==P(a))return\"removed\"===f?[]:qa(0,e.length);if(\"current\"==\r\n+b)for(g=a._iDisplayStart,a=a.fnDisplayEnd();g\u003Ca;g++)c.push(d[g]);else if(\"current\"==g||\"applied\"==g)if(\"none\"==f)c=e.slice();else if(\"applied\"==f)c=d.slice();else{if(\"removed\"==f){var h={};g=0;for(a=d.length;g\u003Ca;g++)h[d[g]]=null;c=k.map(e,function(l){return h.hasOwnProperty(l)?null:l})}}else if(\"index\"==g||\"original\"==g)for(g=0,a=a.aoData.length;g\u003Ca;g++)\"none\"==f?c.push(g):(e=k.inArray(g,d),(-1===e&&\"removed\"==f||0\u003C=e&&\"applied\"==f)&&c.push(g));return c},wc=function(a,b,c){var d;return ub(\"row\",b,\r\n+function(e){var f=hc(e),g=a.aoData;if(null!==f&&!c)return[f];d||(d=Va(a,c));if(null!==f&&-1!==k.inArray(f,d))return[f];if(null===e||e===q||\"\"===e)return d;if(\"function\"===typeof e)return k.map(d,function(l){var n=g[l];return e(l,n._aData,n.nTr)?l:null});if(e.nodeName){f=e._DT_RowIndex;var h=e._DT_CellIndex;if(f!==q)return g[f]&&g[f].nTr===e?[f]:[];if(h)return g[h.row]&&g[h.row].nTr===e.parentNode?[h.row]:[];f=k(e).closest(\"*[data-dt-row]\");return f.length?[f.data(\"dt-row\")]:[]}if(\"string\"===typeof e&&\r\n+\"#\"===e.charAt(0)&&(f=a.aIds[e.replace(\u002F^#\u002F,\"\")],f!==q))return[f.idx];f=kc(Da(a.aoData,d,\"nTr\"));return k(f).filter(e).map(function(){return this._DT_RowIndex}).toArray()},a,c)};w(\"rows()\",function(a,b){a===q?a=\"\":k.isPlainObject(a)&&(b=a,a=\"\");b=vb(b);var c=this.iterator(\"table\",function(d){return wc(d,a,b)},1);c.selector.rows=a;c.selector.opts=b;return c});w(\"rows().nodes()\",function(){return this.iterator(\"row\",function(a,b){return a.aoData[b].nTr||q},1)});w(\"rows().data()\",function(){return this.iterator(!0,\r\n+\"rows\",function(a,b){return Da(a.aoData,b,\"_aData\")},1)});J(\"rows().cache()\",\"row().cache()\",function(a){return this.iterator(\"row\",function(b,c){b=b.aoData[c];return\"search\"===a?b._aFilterData:b._aSortData},1)});J(\"rows().invalidate()\",\"row().invalidate()\",function(a){return this.iterator(\"row\",function(b,c){va(b,c,a)})});J(\"rows().indexes()\",\"row().index()\",function(){return this.iterator(\"row\",function(a,b){return b},1)});J(\"rows().ids()\",\"row().id()\",function(a){for(var b=[],c=this.context,d=\r\n+0,e=c.length;d\u003Ce;d++)for(var f=0,g=this[d].length;f\u003Cg;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?\"#\":\"\")+h)}return new C(c,b)});J(\"rows().remove()\",\"row().remove()\",function(){var a=this;this.iterator(\"row\",function(b,c,d){var e=b.aoData,f=e[c],g,h;e.splice(c,1);var l=0;for(g=e.length;l\u003Cg;l++){var n=e[l];var m=n.anCells;null!==n.nTr&&(n.nTr._DT_RowIndex=l);if(null!==m)for(n=0,h=m.length;n\u003Ch;n++)m[n]._DT_CellIndex.row=l}Ja(b.aiDisplayMaster,c);Ja(b.aiDisplay,c);Ja(a[d],\r\n+c,!1);0\u003Cb._iRecordsDisplay&&b._iRecordsDisplay--;kb(b);c=b.rowIdFn(f._aData);c!==q&&delete b.aIds[c]});this.iterator(\"table\",function(b){for(var c=0,d=b.aoData.length;c\u003Cd;c++)b.aoData[c].idx=c});return this});w(\"rows.add()\",function(a){var b=this.iterator(\"table\",function(d){var e,f=[];var g=0;for(e=a.length;g\u003Ce;g++){var h=a[g];h.nodeName&&\"TR\"===h.nodeName.toUpperCase()?f.push(Ha(d,h)[0]):f.push(ea(d,h))}return f},1),c=this.rows(-1);c.pop();k.merge(c,b);return c});w(\"row()\",function(a,b){return wb(this.rows(a,\r\n+b))});w(\"row().data()\",function(a){var b=this.context;if(a===q)return b.length&&this.length?b[0].aoData[this[0]]._aData:q;var c=b[0].aoData[this[0]];c._aData=a;Array.isArray(a)&&c.nTr&&c.nTr.id&&da(b[0].rowId)(a,c.nTr.id);va(b[0],this[0],\"data\");return this});w(\"row().node()\",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});w(\"row.add()\",function(a){a instanceof k&&a.length&&(a=a[0]);var b=this.iterator(\"table\",function(c){return a.nodeName&&\"TR\"===\r\n+a.nodeName.toUpperCase()?Ha(c,a)[0]:ea(c,a)});return this.row(b[0])});var xc=function(a,b,c,d){var e=[],f=function(g,h){if(Array.isArray(g)||g instanceof k)for(var l=0,n=g.length;l\u003Cn;l++)f(g[l],h);else g.nodeName&&\"tr\"===g.nodeName.toLowerCase()?e.push(g):(l=k(\"\u003Ctr>\u003Ctd>\u003C\u002Ftd>\u003C\u002Ftr>\").addClass(h),k(\"td\",l).addClass(h).html(g)[0].colSpan=na(a),e.push(l[0]))};f(c,d);b._details&&b._details.detach();b._details=k(e);b._detailsShow&&b._details.insertAfter(b.nTr)},xb=function(a,b){var c=a.context;c.length&&\r\n+(a=c[0].aoData[b!==q?b:a[0]])&&a._details&&(a._details.remove(),a._detailsShow=q,a._details=q)},pc=function(a,b){var c=a.context;c.length&&a.length&&(a=c[0].aoData[a[0]],a._details&&((a._detailsShow=b)?a._details.insertAfter(a.nTr):a._details.detach(),yc(c[0])))},yc=function(a){var b=new C(a),c=a.aoData;b.off(\"draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details\");0\u003CT(c,\"_details\").length&&(b.on(\"draw.dt.DT_details\",function(d,e){a===e&&b.rows({page:\"current\"}).eq(0).each(function(f){f=\r\n+c[f];f._detailsShow&&f._details.insertAfter(f.nTr)})}),b.on(\"column-visibility.dt.DT_details\",function(d,e,f,g){if(a===e)for(e=na(e),f=0,g=c.length;f\u003Cg;f++)d=c[f],d._details&&d._details.children(\"td[colspan]\").attr(\"colspan\",e)}),b.on(\"destroy.dt.DT_details\",function(d,e){if(a===e)for(d=0,e=c.length;d\u003Ce;d++)c[d]._details&&xb(b,d)}))};w(\"row().child()\",function(a,b){var c=this.context;if(a===q)return c.length&&this.length?c[0].aoData[this[0]]._details:q;!0===a?this.child.show():!1===a?xb(this):c.length&&\r\n+this.length&&xc(c[0],c[0].aoData[this[0]],a,b);return this});w([\"row().child.show()\",\"row().child().show()\"],function(a){pc(this,!0);return this});w([\"row().child.hide()\",\"row().child().hide()\"],function(){pc(this,!1);return this});w([\"row().child.remove()\",\"row().child().remove()\"],function(){xb(this);return this});w(\"row().child.isShown()\",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var zc=\u002F^([^:]+):(name|visIdx|visible)$\u002F,qc=function(a,\r\n+b,c,d,e){c=[];d=0;for(var f=e.length;d\u003Cf;d++)c.push(S(a,e[d],b));return c},Ac=function(a,b,c){var d=a.aoColumns,e=T(d,\"sName\"),f=T(d,\"nTh\");return ub(\"column\",b,function(g){var h=hc(g);if(\"\"===g)return qa(d.length);if(null!==h)return[0\u003C=h?h:d.length+h];if(\"function\"===typeof g){var l=Va(a,c);return k.map(d,function(p,t){return g(t,qc(a,t,0,0,l),f[t])?t:null})}var n=\"string\"===typeof g?g.match(zc):\"\";if(n)switch(n[2]){case \"visIdx\":case \"visible\":h=parseInt(n[1],10);if(0>h){var m=k.map(d,function(p,\r\n+t){return p.bVisible?t:null});return[m[m.length+h]]}return[sa(a,h)];case \"name\":return k.map(e,function(p,t){return p===n[1]?t:null});default:return[]}if(g.nodeName&&g._DT_CellIndex)return[g._DT_CellIndex.column];h=k(f).filter(g).map(function(){return k.inArray(this,f)}).toArray();if(h.length||!g.nodeName)return h;h=k(g).closest(\"*[data-dt-column]\");return h.length?[h.data(\"dt-column\")]:[]},a,c)};w(\"columns()\",function(a,b){a===q?a=\"\":k.isPlainObject(a)&&(b=a,a=\"\");b=vb(b);var c=this.iterator(\"table\",\r\n+function(d){return Ac(d,a,b)},1);c.selector.cols=a;c.selector.opts=b;return c});J(\"columns().header()\",\"column().header()\",function(a,b){return this.iterator(\"column\",function(c,d){return c.aoColumns[d].nTh},1)});J(\"columns().footer()\",\"column().footer()\",function(a,b){return this.iterator(\"column\",function(c,d){return c.aoColumns[d].nTf},1)});J(\"columns().data()\",\"column().data()\",function(){return this.iterator(\"column-rows\",qc,1)});J(\"columns().dataSrc()\",\"column().dataSrc()\",function(){return this.iterator(\"column\",\r\n+function(a,b){return a.aoColumns[b].mData},1)});J(\"columns().cache()\",\"column().cache()\",function(a){return this.iterator(\"column-rows\",function(b,c,d,e,f){return Da(b.aoData,f,\"search\"===a?\"_aFilterData\":\"_aSortData\",c)},1)});J(\"columns().nodes()\",\"column().nodes()\",function(){return this.iterator(\"column-rows\",function(a,b,c,d,e){return Da(a.aoData,e,\"anCells\",b)},1)});J(\"columns().visible()\",\"column().visible()\",function(a,b){var c=this,d=this.iterator(\"column\",function(e,f){if(a===q)return e.aoColumns[f].bVisible;\r\n+var g=e.aoColumns,h=g[f],l=e.aoData,n;if(a!==q&&h.bVisible!==a){if(a){var m=k.inArray(!0,T(g,\"bVisible\"),f+1);g=0;for(n=l.length;g\u003Cn;g++){var p=l[g].nTr;e=l[g].anCells;p&&p.insertBefore(e[f],e[m]||null)}}else k(T(e.aoData,\"anCells\",f)).detach();h.bVisible=a}});a!==q&&this.iterator(\"table\",function(e){xa(e,e.aoHeader);xa(e,e.aoFooter);e.aiDisplay.length||k(e.nTBody).find(\"td[colspan]\").attr(\"colspan\",na(e));Ra(e);c.iterator(\"column\",function(f,g){H(f,null,\"column-visibility\",[f,g,a,b])});(b===q||b)&&\r\n+c.columns.adjust()});return d});J(\"columns().indexes()\",\"column().index()\",function(a){return this.iterator(\"column\",function(b,c){return\"visible\"===a?ta(b,c):c},1)});w(\"columns.adjust()\",function(){return this.iterator(\"table\",function(a){ra(a)},1)});w(\"column.index()\",function(a,b){if(0!==this.context.length){var c=this.context[0];if(\"fromVisible\"===a||\"toData\"===a)return sa(c,b);if(\"fromData\"===a||\"toVisible\"===a)return ta(c,b)}});w(\"column()\",function(a,b){return wb(this.columns(a,b))});var Bc=\r\n+function(a,b,c){var d=a.aoData,e=Va(a,c),f=kc(Da(d,e,\"anCells\")),g=k(lc([],f)),h,l=a.aoColumns.length,n,m,p,t,v,x;return ub(\"cell\",b,function(r){var A=\"function\"===typeof r;if(null===r||r===q||A){n=[];m=0;for(p=e.length;m\u003Cp;m++)for(h=e[m],t=0;t\u003Cl;t++)v={row:h,column:t},A?(x=d[h],r(v,S(a,h,t),x.anCells?x.anCells[t]:null)&&n.push(v)):n.push(v);return n}if(k.isPlainObject(r))return r.column!==q&&r.row!==q&&-1!==k.inArray(r.row,e)?[r]:[];A=g.filter(r).map(function(D,I){return{row:I._DT_CellIndex.row,\r\n+column:I._DT_CellIndex.column}}).toArray();if(A.length||!r.nodeName)return A;x=k(r).closest(\"*[data-dt-row]\");return x.length?[{row:x.data(\"dt-row\"),column:x.data(\"dt-column\")}]:[]},a,c)};w(\"cells()\",function(a,b,c){k.isPlainObject(a)&&(a.row===q?(c=a,a=null):(c=b,b=null));k.isPlainObject(b)&&(c=b,b=null);if(null===b||b===q)return this.iterator(\"table\",function(m){return Bc(m,a,vb(c))});var d=c?{page:c.page,order:c.order,search:c.search}:{},e=this.columns(b,d),f=this.rows(a,d),g,h,l,n;d=this.iterator(\"table\",\r\n+function(m,p){m=[];g=0;for(h=f[p].length;g\u003Ch;g++)for(l=0,n=e[p].length;l\u003Cn;l++)m.push({row:f[p][g],column:e[p][l]});return m},1);d=c&&c.selected?this.cells(d,c):d;k.extend(d.selector,{cols:b,rows:a,opts:c});return d});J(\"cells().nodes()\",\"cell().node()\",function(){return this.iterator(\"cell\",function(a,b,c){return(a=a.aoData[b])&&a.anCells?a.anCells[c]:q},1)});w(\"cells().data()\",function(){return this.iterator(\"cell\",function(a,b,c){return S(a,b,c)},1)});J(\"cells().cache()\",\"cell().cache()\",function(a){a=\r\n+\"search\"===a?\"_aFilterData\":\"_aSortData\";return this.iterator(\"cell\",function(b,c,d){return b.aoData[c][a][d]},1)});J(\"cells().render()\",\"cell().render()\",function(a){return this.iterator(\"cell\",function(b,c,d){return S(b,c,d,a)},1)});J(\"cells().indexes()\",\"cell().index()\",function(){return this.iterator(\"cell\",function(a,b,c){return{row:b,column:c,columnVisible:ta(a,c)}},1)});J(\"cells().invalidate()\",\"cell().invalidate()\",function(a){return this.iterator(\"cell\",function(b,c,d){va(b,c,a,d)})});w(\"cell()\",\r\n+function(a,b,c){return wb(this.cells(a,b,c))});w(\"cell().data()\",function(a){var b=this.context,c=this[0];if(a===q)return b.length&&c.length?S(b[0],c[0].row,c[0].column):q;Eb(b[0],c[0].row,c[0].column,a);va(b[0],c[0].row,\"data\",c[0].column);return this});w(\"order()\",function(a,b){var c=this.context;if(a===q)return 0!==c.length?c[0].aaSorting:q;\"number\"===typeof a?a=[[a,b]]:a.length&&!Array.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator(\"table\",function(d){d.aaSorting=\r\n+a.slice()})});w(\"order.listener()\",function(a,b,c){return this.iterator(\"table\",function(d){eb(d,a,b,c)})});w(\"order.fixed()\",function(a){if(!a){var b=this.context;b=b.length?b[0].aaSortingFixed:q;return Array.isArray(b)?{pre:b}:b}return this.iterator(\"table\",function(c){c.aaSortingFixed=k.extend(!0,{},a)})});w([\"columns().order()\",\"column().order()\"],function(a){var b=this;return this.iterator(\"table\",function(c,d){var e=[];k.each(b[d],function(f,g){e.push([g,a])});c.aaSorting=e})});w(\"search()\",\r\n+function(a,b,c,d){var e=this.context;return a===q?0!==e.length?e[0].oPreviousSearch.sSearch:q:this.iterator(\"table\",function(f){f.oFeatures.bFilter&&ya(f,k.extend({},f.oPreviousSearch,{sSearch:a+\"\",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});J(\"columns().search()\",\"column().search()\",function(a,b,c,d){return this.iterator(\"column\",function(e,f){var g=e.aoPreSearchCols;if(a===q)return g[f].sSearch;e.oFeatures.bFilter&&(k.extend(g[f],{sSearch:a+\"\",bRegex:null===\r\n+b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),ya(e,e.oPreviousSearch,1))})});w(\"state()\",function(){return this.context.length?this.context[0].oSavedState:null});w(\"state.clear()\",function(){return this.iterator(\"table\",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});w(\"state.loaded()\",function(){return this.context.length?this.context[0].oLoadedState:null});w(\"state.save()\",function(){return this.iterator(\"table\",function(a){Ra(a)})});u.versionCheck=u.fnVersionCheck=function(a){var b=\r\n+u.version.split(\".\");a=a.split(\".\");for(var c,d,e=0,f=a.length;e\u003Cf;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};u.isDataTable=u.fnIsDataTable=function(a){var b=k(a).get(0),c=!1;if(a instanceof u.Api)return!0;k.each(u.settings,function(d,e){d=e.nScrollHead?k(\"table\",e.nScrollHead)[0]:null;var f=e.nScrollFoot?k(\"table\",e.nScrollFoot)[0]:null;if(e.nTable===b||d===b||f===b)c=!0});return c};u.tables=u.fnTables=function(a){var b=!1;k.isPlainObject(a)&&(b=a.api,a=a.visible);\r\n+var c=k.map(u.settings,function(d){if(!a||a&&k(d.nTable).is(\":visible\"))return d.nTable});return b?new C(c):c};u.camelToHungarian=O;w(\"$()\",function(a,b){b=this.rows(b).nodes();b=k(b);return k([].concat(b.filter(a).toArray(),b.find(a).toArray()))});k.each([\"on\",\"one\",\"off\"],function(a,b){w(b+\"()\",function(){var c=Array.prototype.slice.call(arguments);c[0]=k.map(c[0].split(\u002F\\s\u002F),function(e){return e.match(\u002F\\.dt\\b\u002F)?e:e+\".dt\"}).join(\" \");var d=k(this.tables().nodes());d[b].apply(d,c);return this})});\r\n+w(\"clear()\",function(){return this.iterator(\"table\",function(a){Ia(a)})});w(\"settings()\",function(){return new C(this.context,this.context)});w(\"init()\",function(){var a=this.context;return a.length?a[0].oInit:null});w(\"data()\",function(){return this.iterator(\"table\",function(a){return T(a.aoData,\"_aData\")}).flatten()});w(\"destroy()\",function(a){a=a||!1;return this.iterator(\"table\",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,h=b.nTFoot,l=k(e);f=k(f);\r\n+var n=k(b.nTableWrapper),m=k.map(b.aoData,function(t){return t.nTr}),p;b.bDestroying=!0;H(b,\"aoDestroyCallback\",\"destroy\",[b]);a||(new C(b)).columns().visible(!0);n.off(\".DT\").find(\":not(tbody *)\").off(\".DT\");k(y).off(\".DT-\"+b.sInstance);e!=g.parentNode&&(l.children(\"thead\").detach(),l.append(g));h&&e!=h.parentNode&&(l.children(\"tfoot\").detach(),l.append(h));b.aaSorting=[];b.aaSortingFixed=[];Qa(b);k(m).removeClass(b.asStripeClasses.join(\" \"));k(\"th, td\",g).removeClass(d.sSortable+\" \"+d.sSortableAsc+\r\n+\" \"+d.sSortableDesc+\" \"+d.sSortableNone);f.children().detach();f.append(m);g=a?\"remove\":\"detach\";l[g]();n[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),l.css(\"width\",b.sDestroyWidth).removeClass(d.sTable),(p=b.asDestroyStripes.length)&&f.children().each(function(t){k(this).addClass(b.asDestroyStripes[t%p])}));c=k.inArray(b,u.settings);-1!==c&&u.settings.splice(c,1)})});k.each([\"column\",\"row\",\"cell\"],function(a,b){w(b+\"s().every()\",function(c){var d=this.selector.opts,e=this;return this.iterator(b,\r\n+function(f,g,h,l,n){c.call(e[b](g,\"cell\"===b?h:d,\"cell\"===b?d:q),g,h,l,n)})})});w(\"i18n()\",function(a,b,c){var d=this.context[0];a=ia(a)(d.oLanguage);a===q&&(a=b);c!==q&&k.isPlainObject(a)&&(a=a[c]!==q?a[c]:a._);return a.replace(\"%d\",c)});u.version=\"1.10.25\";u.settings=[];u.models={};u.models.oSearch={bCaseInsensitive:!0,sSearch:\"\",bRegex:!1,bSmart:!0};u.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:\"\",src:null,idx:-1};u.models.oColumn=\r\n+{idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:\"std\",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};u.defaults={aaData:null,aaSorting:[[0,\"asc\"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,\r\n+aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(\u002F\\B(?=(\\d{3})+(?!\\d))\u002Fg,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,\r\n+fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem(\"DataTables_\"+a.sInstance+\"_\"+location.pathname))}catch(b){return{}}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem(\"DataTables_\"+a.sInstance+\"_\"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,\r\n+iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:\": activate to sort column ascending\",sSortDescending:\": activate to sort column descending\"},oPaginate:{sFirst:\"First\",sLast:\"Last\",sNext:\"Next\",sPrevious:\"Previous\"},sEmptyTable:\"No data available in table\",sInfo:\"Showing _START_ to _END_ of _TOTAL_ entries\",sInfoEmpty:\"Showing 0 to 0 of 0 entries\",sInfoFiltered:\"(filtered from _MAX_ total entries)\",sInfoPostFix:\"\",sDecimal:\"\",\r\n+sThousands:\",\",sLengthMenu:\"Show _MENU_ entries\",sLoadingRecords:\"Loading...\",sProcessing:\"Processing...\",sSearch:\"Search:\",sSearchPlaceholder:\"\",sUrl:\"\",sZeroRecords:\"No matching records found\"},oSearch:k.extend({},u.models.oSearch),sAjaxDataProp:\"data\",sAjaxSource:null,sDom:\"lfrtip\",searchDelay:null,sPaginationType:\"simple_numbers\",sScrollX:\"\",sScrollXInner:\"\",sScrollY:\"\",sServerMethod:\"GET\",renderer:null,rowId:\"DT_RowId\"};G(u.defaults);u.defaults.column={aDataSort:null,iDataSort:-1,asSorting:[\"asc\",\r\n+\"desc\"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:\"td\",sClass:\"\",sContentPadding:\"\",sDefaultContent:null,sName:\"\",sSortDataType:\"std\",sTitle:null,sType:null,sWidth:null};G(u.defaults.column);u.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,\r\n+sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],\r\n+aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:\"\",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:\"two_button\",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,jqXHR:null,json:q,oAjaxData:q,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,\r\n+iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return\"ssp\"==P(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return\"ssp\"==P(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;\r\n+return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};u.ext=L={buttons:{},classes:{},build:\"dt\u002Fdt-1.10.25\",errMode:\"alert\",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:u.fnVersionCheck,\r\n+iApiIndex:0,oJUIClasses:{},sVersion:u.version};k.extend(L,{afnFiltering:L.search,aTypes:L.type.detect,ofnSearch:L.type.search,oSort:L.type.order,afnSortData:L.order,aoFeatures:L.feature,oApi:L.internal,oStdClasses:L.classes,oPagination:L.pager});k.extend(u.ext.classes,{sTable:\"dataTable\",sNoFooter:\"no-footer\",sPageButton:\"paginate_button\",sPageButtonActive:\"current\",sPageButtonDisabled:\"disabled\",sStripeOdd:\"odd\",sStripeEven:\"even\",sRowEmpty:\"dataTables_empty\",sWrapper:\"dataTables_wrapper\",sFilter:\"dataTables_filter\",\r\n+sInfo:\"dataTables_info\",sPaging:\"dataTables_paginate paging_\",sLength:\"dataTables_length\",sProcessing:\"dataTables_processing\",sSortAsc:\"sorting_asc\",sSortDesc:\"sorting_desc\",sSortable:\"sorting\",sSortableAsc:\"sorting_desc_disabled\",sSortableDesc:\"sorting_asc_disabled\",sSortableNone:\"sorting_disabled\",sSortColumn:\"sorting_\",sFilterInput:\"\",sLengthSelect:\"\",sScrollWrapper:\"dataTables_scroll\",sScrollHead:\"dataTables_scrollHead\",sScrollHeadInner:\"dataTables_scrollHeadInner\",sScrollBody:\"dataTables_scrollBody\",\r\n+sScrollFoot:\"dataTables_scrollFoot\",sScrollFootInner:\"dataTables_scrollFootInner\",sHeaderTH:\"\",sFooterTH:\"\",sSortJUIAsc:\"\",sSortJUIDesc:\"\",sSortJUI:\"\",sSortJUIAscAllowed:\"\",sSortJUIDescAllowed:\"\",sSortJUIWrapper:\"\",sSortIcon:\"\",sJUIHeader:\"\",sJUIFooter:\"\"});var ec=u.ext.pager;k.extend(ec,{simple:function(a,b){return[\"previous\",\"next\"]},full:function(a,b){return[\"first\",\"previous\",\"next\",\"last\"]},numbers:function(a,b){return[Ca(a,b)]},simple_numbers:function(a,b){return[\"previous\",Ca(a,b),\"next\"]},\r\n+full_numbers:function(a,b){return[\"first\",\"previous\",Ca(a,b),\"next\",\"last\"]},first_last_numbers:function(a,b){return[\"first\",Ca(a,b),\"last\"]},_numbers:Ca,numbers_length:7});k.extend(!0,u.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,h=a.oLanguage.oPaginate,l=a.oLanguage.oAria.paginate||{},n,m,p=0,t=function(x,r){var A,D=g.sPageButtonDisabled,I=function(E){lb(a,E.data.action,!0)};var W=0;for(A=r.length;W\u003CA;W++){var M=r[W];if(Array.isArray(M)){var B=k(\"\u003C\"+(M.DT_el||\"div\")+\"\u002F>\").appendTo(x);\r\n+t(B,M)}else{n=null;m=M;B=a.iTabIndex;switch(M){case \"ellipsis\":x.append('\u003Cspan class=\"ellipsis\">&#x2026;\u003C\u002Fspan>');break;case \"first\":n=h.sFirst;0===e&&(B=-1,m+=\" \"+D);break;case \"previous\":n=h.sPrevious;0===e&&(B=-1,m+=\" \"+D);break;case \"next\":n=h.sNext;if(0===f||e===f-1)B=-1,m+=\" \"+D;break;case \"last\":n=h.sLast;if(0===f||e===f-1)B=-1,m+=\" \"+D;break;default:n=a.fnFormatNumber(M+1),m=e===M?g.sPageButtonActive:\"\"}null!==n&&(B=k(\"\u003Ca>\",{\"class\":g.sPageButton+\" \"+m,\"aria-controls\":a.sTableId,\"aria-label\":l[M],\r\n+\"data-dt-idx\":p,tabindex:B,id:0===c&&\"string\"===typeof M?a.sTableId+\"_\"+M:null}).html(n).appendTo(x),pb(B,{action:M},I),p++)}}};try{var v=k(b).find(z.activeElement).data(\"dt-idx\")}catch(x){}t(k(b).empty(),d);v!==q&&k(b).find(\"[data-dt-idx=\"+v+\"]\").trigger(\"focus\")}}});k.extend(u.ext.type.detect,[function(a,b){b=b.oLanguage.sDecimal;return tb(a,b)?\"num\"+b:null},function(a,b){if(a&&!(a instanceof Date)&&!tc.test(a))return null;b=Date.parse(a);return null!==b&&!isNaN(b)||Z(a)?\"date\":null},function(a,\r\n+b){b=b.oLanguage.sDecimal;return tb(a,b,!0)?\"num-fmt\"+b:null},function(a,b){b=b.oLanguage.sDecimal;return jc(a,b)?\"html-num\"+b:null},function(a,b){b=b.oLanguage.sDecimal;return jc(a,b,!0)?\"html-num-fmt\"+b:null},function(a,b){return Z(a)||\"string\"===typeof a&&-1!==a.indexOf(\"\u003C\")?\"html\":null}]);k.extend(u.ext.type.search,{html:function(a){return Z(a)?a:\"string\"===typeof a?a.replace(gc,\" \").replace(Ua,\"\"):\"\"},string:function(a){return Z(a)?a:\"string\"===typeof a?a.replace(gc,\" \"):a}});var Ta=function(a,\r\n+b,c,d){if(0!==a&&(!a||\"-\"===a))return-Infinity;b&&(a=ic(a,b));a.replace&&(c&&(a=a.replace(c,\"\")),d&&(a=a.replace(d,\"\")));return 1*a};k.extend(L.type.order,{\"date-pre\":function(a){a=Date.parse(a);return isNaN(a)?-Infinity:a},\"html-pre\":function(a){return Z(a)?\"\":a.replace?a.replace(\u002F\u003C.*?>\u002Fg,\"\").toLowerCase():a+\"\"},\"string-pre\":function(a){return Z(a)?\"\":\"string\"===typeof a?a.toLowerCase():a.toString?a.toString():\"\"},\"string-asc\":function(a,b){return a\u003Cb?-1:a>b?1:0},\"string-desc\":function(a,b){return a\u003C\r\n+b?1:a>b?-1:0}});Wa(\"\");k.extend(!0,u.ext.renderer,{header:{_:function(a,b,c,d){k(a.nTable).on(\"order.dt.DT\",function(e,f,g,h){a===f&&(e=c.idx,b.removeClass(d.sSortAsc+\" \"+d.sSortDesc).addClass(\"asc\"==h[e]?d.sSortAsc:\"desc\"==h[e]?d.sSortDesc:c.sSortingClass))})},jqueryui:function(a,b,c,d){k(\"\u003Cdiv\u002F>\").addClass(d.sSortJUIWrapper).append(b.contents()).append(k(\"\u003Cspan\u002F>\").addClass(d.sSortIcon+\" \"+c.sSortingClassJUI)).appendTo(b);k(a.nTable).on(\"order.dt.DT\",function(e,f,g,h){a===f&&(e=c.idx,b.removeClass(d.sSortAsc+\r\n+\" \"+d.sSortDesc).addClass(\"asc\"==h[e]?d.sSortAsc:\"desc\"==h[e]?d.sSortDesc:c.sSortingClass),b.find(\"span.\"+d.sSortIcon).removeClass(d.sSortJUIAsc+\" \"+d.sSortJUIDesc+\" \"+d.sSortJUI+\" \"+d.sSortJUIAscAllowed+\" \"+d.sSortJUIDescAllowed).addClass(\"asc\"==h[e]?d.sSortJUIAsc:\"desc\"==h[e]?d.sSortJUIDesc:c.sSortingClassJUI))})}}});var yb=function(a){return\"string\"===typeof a?a.replace(\u002F&\u002Fg,\"&amp;\").replace(\u002F\u003C\u002Fg,\"&lt;\").replace(\u002F>\u002Fg,\"&gt;\").replace(\u002F\"\u002Fg,\"&quot;\"):a};u.render={number:function(a,b,c,d,e){return{display:function(f){if(\"number\"!==\r\n+typeof f&&\"string\"!==typeof f)return f;var g=0>f?\"-\":\"\",h=parseFloat(f);if(isNaN(h))return yb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):\"\";0===h&&0===parseFloat(f)&&(g=\"\");return g+(d||\"\")+h.toString().replace(\u002F\\B(?=(\\d{3})+(?!\\d))\u002Fg,a)+f+(e||\"\")}}},text:function(){return{display:yb,filter:yb}}};k.extend(u.ext.internal,{_fnExternApiFunc:fc,_fnBuildAjax:Ma,_fnAjaxUpdate:Gb,_fnAjaxParameters:Pb,_fnAjaxUpdateDraw:Qb,_fnAjaxDataSrc:Na,_fnAddColumn:Xa,_fnColumnOptions:Ea,\r\n+_fnAdjustColumnSizing:ra,_fnVisibleToColumnIndex:sa,_fnColumnIndexToVisible:ta,_fnVisbleColumns:na,_fnGetColumns:Ga,_fnColumnTypes:Za,_fnApplyColumnDefs:Db,_fnHungarianMap:G,_fnCamelToHungarian:O,_fnLanguageCompat:ma,_fnBrowserDetect:Bb,_fnAddData:ea,_fnAddTr:Ha,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==q?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return k.inArray(c,a.aoData[b].anCells)},_fnGetCellData:S,_fnSetCellData:Eb,_fnSplitObjNotation:bb,_fnGetObjectDataFn:ia,\r\n+_fnSetObjectDataFn:da,_fnGetDataMaster:cb,_fnClearTable:Ia,_fnDeleteIndex:Ja,_fnInvalidate:va,_fnGetRowElements:ab,_fnCreateTr:$a,_fnBuildHead:Fb,_fnDrawHead:xa,_fnDraw:fa,_fnReDraw:ja,_fnAddOptionsHtml:Ib,_fnDetectHeader:wa,_fnGetUniqueThs:La,_fnFeatureHtmlFilter:Kb,_fnFilterComplete:ya,_fnFilterCustom:Tb,_fnFilterColumn:Sb,_fnFilter:Rb,_fnFilterCreateSearch:hb,_fnEscapeRegex:ib,_fnFilterData:Ub,_fnFeatureHtmlInfo:Nb,_fnUpdateInfo:Xb,_fnInfoMacros:Yb,_fnInitialise:za,_fnInitComplete:Oa,_fnLengthChange:jb,\r\n+_fnFeatureHtmlLength:Jb,_fnFeatureHtmlPaginate:Ob,_fnPageChange:lb,_fnFeatureHtmlProcessing:Lb,_fnProcessingDisplay:U,_fnFeatureHtmlTable:Mb,_fnScrollDraw:Fa,_fnApplyToChildren:ba,_fnCalculateColumnWidths:Ya,_fnThrottle:gb,_fnConvertToWidth:Zb,_fnGetWidestNode:$b,_fnGetMaxLenString:ac,_fnStringToCss:K,_fnSortFlatten:pa,_fnSort:Hb,_fnSortAria:cc,_fnSortListener:ob,_fnSortAttachListener:eb,_fnSortingClasses:Qa,_fnSortData:bc,_fnSaveState:Ra,_fnLoadState:dc,_fnSettingsFromNode:Sa,_fnLog:ca,_fnMap:V,\r\n+_fnBindAction:pb,_fnCallbackReg:Q,_fnCallbackFire:H,_fnLengthOverflow:kb,_fnRenderer:fb,_fnDataSource:P,_fnRowAttributes:db,_fnExtend:qb,_fnCalculateEnd:function(){}});k.fn.dataTable=u;u.$=k;k.fn.dataTableSettings=u.settings;k.fn.dataTableExt=u.ext;k.fn.DataTable=function(a){return k(this).dataTable(a).api()};k.each(u,function(a,b){k.fn.DataTable[a]=b});return k.fn.dataTable});\r\n+\r\n+\r\n+\u002F*!\r\n+ DataTables styling integration\r\n+ ©2018 SpryMedia Ltd - datatables.net\u002Flicense\r\n+*\u002F\r\n+(function(c){\"function\"===typeof define&&define.amd?define([\"jquery\",\"datatables.net\"],function(a){return c(a,window,document)}):\"object\"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require(\"datatables.net\")(a,b).$);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){return c.fn.dataTable});\r\n+\r\n+\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fflatpickr\u002Fflatpickr.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fflatpickr\u002Fflatpickr.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fflatpickr\u002Fflatpickr.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fflatpickr\u002Fflatpickr.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,2 +1,2 @@\n-\u002F* flatpickr v4.6.9,, @license MIT *\u002F\n-!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).flatpickr=t()}(this,(function(){\"use strict\";var e=function(){return(e=Object.assign||function(e){for(var t,n=1,a=arguments.length;n\u003Ca;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function t(){for(var e=0,t=0,n=arguments.length;t\u003Cn;t++)e+=arguments[t].length;var a=Array(e),i=0;for(t=0;t\u003Cn;t++)for(var o=arguments[t],r=0,l=o.length;r\u003Cl;r++,i++)a[i]=o[r];return a}var n=[\"onChange\",\"onClose\",\"onDayCreate\",\"onDestroy\",\"onKeyDown\",\"onMonthChange\",\"onOpen\",\"onParseConfig\",\"onReady\",\"onValueUpdate\",\"onYearChange\",\"onPreCalendarPosition\"],a={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:\"F j, Y\",altInput:!1,altInputClass:\"form-control input\",animate:\"object\"==typeof window&&-1===window.navigator.userAgent.indexOf(\"MSIE\"),ariaDateFormat:\"F j, Y\",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:\", \",dateFormat:\"Y-m-d\",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(e){return\"undefined\"!=typeof console&&console.warn(e)},getWeek:function(e){var t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);var n=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-n.getTime())\u002F864e5-3+(n.getDay()+6)%7)\u002F7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:\"default\",minuteIncrement:5,mode:\"single\",monthSelectorType:\"dropdown\",nextArrow:\"\u003Csvg version='1.1' xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' xmlns:xlink='http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink' viewBox='0 0 17 17'>\u003Cg>\u003C\u002Fg>\u003Cpath d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' \u002F>\u003C\u002Fsvg>\",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:\"auto\",positionElement:void 0,prevArrow:\"\u003Csvg version='1.1' xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' xmlns:xlink='http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink' viewBox='0 0 17 17'>\u003Cg>\u003C\u002Fg>\u003Cpath d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' \u002F>\u003C\u002Fsvg>\",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},i={weekdays:{shorthand:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],longhand:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]},months:{shorthand:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],longhand:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var t=e%100;if(t>3&&t\u003C21)return\"th\";switch(t%10){case 1:return\"st\";case 2:return\"nd\";case 3:return\"rd\";default:return\"th\"}},rangeSeparator:\" to \",weekAbbreviation:\"Wk\",scrollTitle:\"Scroll to increment\",toggleTitle:\"Click to toggle\",amPM:[\"AM\",\"PM\"],yearAriaLabel:\"Year\",monthAriaLabel:\"Month\",hourAriaLabel:\"Hour\",minuteAriaLabel:\"Minute\",time_24hr:!1},o=function(e,t){return void 0===t&&(t=2),(\"000\"+e).slice(-1*t)},r=function(e){return!0===e?1:0};function l(e,t){var n;return function(){var a=this;clearTimeout(n),n=setTimeout((function(){return e.apply(a,arguments)}),t)}}var c=function(e){return e instanceof Array?e:[e]};function d(e,t,n){if(!0===n)return e.classList.add(t);e.classList.remove(t)}function s(e,t,n){var a=window.document.createElement(e);return t=t||\"\",n=n||\"\",a.className=t,void 0!==n&&(a.textContent=n),a}function u(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function f(e,t){return t(e)?e:e.parentNode?f(e.parentNode,t):void 0}function m(e,t){var n=s(\"div\",\"numInputWrapper\"),a=s(\"input\",\"numInput \"+e),i=s(\"span\",\"arrowUp\"),o=s(\"span\",\"arrowDown\");if(-1===navigator.userAgent.indexOf(\"MSIE 9.0\")?a.type=\"number\":(a.type=\"text\",a.pattern=\"\\\\d*\"),void 0!==t)for(var r in t)a.setAttribute(r,t[r]);return n.appendChild(a),n.appendChild(i),n.appendChild(o),n}function g(e){try{return\"function\"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(t){return e.target}}var p=function(){},h=function(e,t,n){return n.months[t?\"shorthand\":\"longhand\"][e]},v={D:p,F:function(e,t,n){e.setMonth(n.months.longhand.indexOf(t))},G:function(e,t){e.setHours(parseFloat(t))},H:function(e,t){e.setHours(parseFloat(t))},J:function(e,t){e.setDate(parseFloat(t))},K:function(e,t,n){e.setHours(e.getHours()%12+12*r(new RegExp(n.amPM[1],\"i\").test(t)))},M:function(e,t,n){e.setMonth(n.months.shorthand.indexOf(t))},S:function(e,t){e.setSeconds(parseFloat(t))},U:function(e,t){return new Date(1e3*parseFloat(t))},W:function(e,t,n){var a=parseInt(t),i=new Date(e.getFullYear(),0,2+7*(a-1),0,0,0,0);return i.setDate(i.getDate()-i.getDay()+n.firstDayOfWeek),i},Y:function(e,t){e.setFullYear(parseFloat(t))},Z:function(e,t){return new Date(t)},d:function(e,t){e.setDate(parseFloat(t))},h:function(e,t){e.setHours(parseFloat(t))},i:function(e,t){e.setMinutes(parseFloat(t))},j:function(e,t){e.setDate(parseFloat(t))},l:p,m:function(e,t){e.setMonth(parseFloat(t)-1)},n:function(e,t){e.setMonth(parseFloat(t)-1)},s:function(e,t){e.setSeconds(parseFloat(t))},u:function(e,t){return new Date(parseFloat(t))},w:p,y:function(e,t){e.setFullYear(2e3+parseFloat(t))}},D={D:\"(\\\\w+)\",F:\"(\\\\w+)\",G:\"(\\\\d\\\\d|\\\\d)\",H:\"(\\\\d\\\\d|\\\\d)\",J:\"(\\\\d\\\\d|\\\\d)\\\\w+\",K:\"\",M:\"(\\\\w+)\",S:\"(\\\\d\\\\d|\\\\d)\",U:\"(.+)\",W:\"(\\\\d\\\\d|\\\\d)\",Y:\"(\\\\d{4})\",Z:\"(.+)\",d:\"(\\\\d\\\\d|\\\\d)\",h:\"(\\\\d\\\\d|\\\\d)\",i:\"(\\\\d\\\\d|\\\\d)\",j:\"(\\\\d\\\\d|\\\\d)\",l:\"(\\\\w+)\",m:\"(\\\\d\\\\d|\\\\d)\",n:\"(\\\\d\\\\d|\\\\d)\",s:\"(\\\\d\\\\d|\\\\d)\",u:\"(.+)\",w:\"(\\\\d\\\\d|\\\\d)\",y:\"(\\\\d{2})\"},w={Z:function(e){return e.toISOString()},D:function(e,t,n){return t.weekdays.shorthand[w.w(e,t,n)]},F:function(e,t,n){return h(w.n(e,t,n)-1,!1,t)},G:function(e,t,n){return o(w.h(e,t,n))},H:function(e){return o(e.getHours())},J:function(e,t){return void 0!==t.ordinal?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:function(e,t){return t.amPM[r(e.getHours()>11)]},M:function(e,t){return h(e.getMonth(),!0,t)},S:function(e){return o(e.getSeconds())},U:function(e){return e.getTime()\u002F1e3},W:function(e,t,n){return n.getWeek(e)},Y:function(e){return o(e.getFullYear(),4)},d:function(e){return o(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return o(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,t){return t.weekdays.longhand[e.getDay()]},m:function(e){return o(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var t=e.config,n=void 0===t?a:t,o=e.l10n,r=void 0===o?i:o,l=e.isMobile,c=void 0!==l&&l;return function(e,t,a){var i=a||r;return void 0===n.formatDate||c?t.split(\"\").map((function(t,a,o){return w[t]&&\"\\\\\"!==o[a-1]?w[t](e,i,n):\"\\\\\"!==t?t:\"\"})).join(\"\"):n.formatDate(e,t,i)}},C=function(e){var t=e.config,n=void 0===t?a:t,o=e.l10n,r=void 0===o?i:o;return function(e,t,i,o){if(0===e||e){var l,c=o||r,d=e;if(e instanceof Date)l=new Date(e.getTime());else if(\"string\"!=typeof e&&void 0!==e.toFixed)l=new Date(e);else if(\"string\"==typeof e){var s=t||(n||a).dateFormat,u=String(e).trim();if(\"today\"===u)l=new Date,i=!0;else if(\u002FZ$\u002F.test(u)||\u002FGMT$\u002F.test(u))l=new Date(e);else if(n&&n.parseDate)l=n.parseDate(e,s);else{l=n&&n.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var f=void 0,m=[],g=0,p=0,h=\"\";g\u003Cs.length;g++){var w=s[g],b=\"\\\\\"===w,C=\"\\\\\"===s[g-1]||b;if(D[w]&&!C){h+=D[w];var M=new RegExp(h).exec(e);M&&(f=!0)&&m[\"Y\"!==w?\"push\":\"unshift\"]({fn:v[w],val:M[++p]})}else b||(h+=\".\");m.forEach((function(e){var t=e.fn,n=e.val;return l=t(l,n,c)||l}))}l=f?l:void 0}}if(l instanceof Date&&!isNaN(l.getTime()))return!0===i&&l.setHours(0,0,0,0),l;n.errorHandler(new Error(\"Invalid date provided: \"+d))}}};function M(e,t,n){return void 0===n&&(n=!0),!1!==n?new Date(e.getTime()).setHours(0,0,0,0)-new Date(t.getTime()).setHours(0,0,0,0):e.getTime()-t.getTime()}var y=864e5;function x(e){var t=e.defaultHour,n=e.defaultMinute,a=e.defaultSeconds;if(void 0!==e.minDate){var i=e.minDate.getHours(),o=e.minDate.getMinutes(),r=e.minDate.getSeconds();t\u003Ci&&(t=i),t===i&&n\u003Co&&(n=o),t===i&&n===o&&a\u003Cr&&(a=e.minDate.getSeconds())}if(void 0!==e.maxDate){var l=e.maxDate.getHours(),c=e.maxDate.getMinutes();(t=Math.min(t,l))===l&&(n=Math.min(c,n)),t===l&&n===c&&(a=e.maxDate.getSeconds())}return{hours:t,minutes:n,seconds:a}}\"function\"!=typeof Object.assign&&(Object.assign=function(e){for(var t=[],n=1;n\u003Carguments.length;n++)t[n-1]=arguments[n];if(!e)throw TypeError(\"Cannot convert undefined or null to object\");for(var a=function(t){t&&Object.keys(t).forEach((function(n){return e[n]=t[n]}))},i=0,o=t;i\u003Co.length;i++){var r=o[i];a(r)}return e});function E(p,v){var w={config:e(e({},a),T.defaultConfig),l10n:i};function E(e){return e.bind(w)}function k(){var e=w.config;!1===e.weekNumbers&&1===e.showMonths||!0!==e.noCalendar&&window.requestAnimationFrame((function(){if(void 0!==w.calendarContainer&&(w.calendarContainer.style.visibility=\"hidden\",w.calendarContainer.style.display=\"block\"),void 0!==w.daysContainer){var t=(w.days.offsetWidth+1)*e.showMonths;w.daysContainer.style.width=t+\"px\",w.calendarContainer.style.width=t+(void 0!==w.weekWrapper?w.weekWrapper.offsetWidth:0)+\"px\",w.calendarContainer.style.removeProperty(\"visibility\"),w.calendarContainer.style.removeProperty(\"display\")}}))}function I(e){if(0===w.selectedDates.length){var t=void 0===w.config.minDate||M(new Date,w.config.minDate)>=0?new Date:new Date(w.config.minDate.getTime()),n=x(w.config);t.setHours(n.hours,n.minutes,n.seconds,t.getMilliseconds()),w.selectedDates=[t],w.latestSelectedDateObj=t}void 0!==e&&\"blur\"!==e.type&&function(e){e.preventDefault();var t=\"keydown\"===e.type,n=g(e),a=n;void 0!==w.amPM&&n===w.amPM&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]);var i=parseFloat(a.getAttribute(\"min\")),l=parseFloat(a.getAttribute(\"max\")),c=parseFloat(a.getAttribute(\"step\")),d=parseInt(a.value,10),s=e.delta||(t?38===e.which?1:-1:0),u=d+c*s;if(void 0!==a.value&&2===a.value.length){var f=a===w.hourElement,m=a===w.minuteElement;u\u003Ci?(u=l+u+r(!f)+(r(f)&&r(!w.amPM)),m&&j(void 0,-1,w.hourElement)):u>l&&(u=a===w.hourElement?u-l-r(!w.amPM):i,m&&j(void 0,1,w.hourElement)),w.amPM&&f&&(1===c?u+d===23:Math.abs(u-d)>c)&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]),a.value=o(u)}}(e);var a=w._input.value;S(),be(),w._input.value!==a&&w._debouncedChange()}function S(){if(void 0!==w.hourElement&&void 0!==w.minuteElement){var e,t,n=(parseInt(w.hourElement.value.slice(-2),10)||0)%24,a=(parseInt(w.minuteElement.value,10)||0)%60,i=void 0!==w.secondElement?(parseInt(w.secondElement.value,10)||0)%60:0;void 0!==w.amPM&&(e=n,t=w.amPM.textContent,n=e%12+12*r(t===w.l10n.amPM[1]));var o=void 0!==w.config.minTime||w.config.minDate&&w.minDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.minDate,!0);if(void 0!==w.config.maxTime||w.config.maxDate&&w.maxDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.maxDate,!0)){var l=void 0!==w.config.maxTime?w.config.maxTime:w.config.maxDate;(n=Math.min(n,l.getHours()))===l.getHours()&&(a=Math.min(a,l.getMinutes())),a===l.getMinutes()&&(i=Math.min(i,l.getSeconds()))}if(o){var c=void 0!==w.config.minTime?w.config.minTime:w.config.minDate;(n=Math.max(n,c.getHours()))===c.getHours()&&a\u003Cc.getMinutes()&&(a=c.getMinutes()),a===c.getMinutes()&&(i=Math.max(i,c.getSeconds()))}O(n,a,i)}}function _(e){var t=e||w.latestSelectedDateObj;t&&O(t.getHours(),t.getMinutes(),t.getSeconds())}function O(e,t,n){void 0!==w.latestSelectedDateObj&&w.latestSelectedDateObj.setHours(e%24,t,n||0,0),w.hourElement&&w.minuteElement&&!w.isMobile&&(w.hourElement.value=o(w.config.time_24hr?e:(12+e)%12+12*r(e%12==0)),w.minuteElement.value=o(t),void 0!==w.amPM&&(w.amPM.textContent=w.l10n.amPM[r(e>=12)]),void 0!==w.secondElement&&(w.secondElement.value=o(n)))}function F(e){var t=g(e),n=parseInt(t.value)+(e.delta||0);(n\u002F1e3>1||\"Enter\"===e.key&&!\u002F[^\\d]\u002F.test(n.toString()))&&Q(n)}function A(e,t,n,a){return t instanceof Array?t.forEach((function(t){return A(e,t,n,a)})):e instanceof Array?e.forEach((function(e){return A(e,t,n,a)})):(e.addEventListener(t,n,a),void w._handlers.push({remove:function(){return e.removeEventListener(t,n)}}))}function N(){pe(\"onChange\")}function P(e,t){var n=void 0!==e?w.parseDate(e):w.latestSelectedDateObj||(w.config.minDate&&w.config.minDate>w.now?w.config.minDate:w.config.maxDate&&w.config.maxDate\u003Cw.now?w.config.maxDate:w.now),a=w.currentYear,i=w.currentMonth;try{void 0!==n&&(w.currentYear=n.getFullYear(),w.currentMonth=n.getMonth())}catch(e){e.message=\"Invalid date supplied: \"+n,w.config.errorHandler(e)}t&&w.currentYear!==a&&(pe(\"onYearChange\"),K()),!t||w.currentYear===a&&w.currentMonth===i||pe(\"onMonthChange\"),w.redraw()}function Y(e){var t=g(e);~t.className.indexOf(\"arrow\")&&j(e,t.classList.contains(\"arrowUp\")?1:-1)}function j(e,t,n){var a=e&&g(e),i=n||a&&a.parentNode&&a.parentNode.firstChild,o=he(\"increment\");o.delta=t,i&&i.dispatchEvent(o)}function H(e,t,n,a){var i=X(t,!0),o=s(\"span\",\"flatpickr-day \"+e,t.getDate().toString());return o.dateObj=t,o.$i=a,o.setAttribute(\"aria-label\",w.formatDate(t,w.config.ariaDateFormat)),-1===e.indexOf(\"hidden\")&&0===M(t,w.now)&&(w.todayDateElem=o,o.classList.add(\"today\"),o.setAttribute(\"aria-current\",\"date\")),i?(o.tabIndex=-1,ve(t)&&(o.classList.add(\"selected\"),w.selectedDateElem=o,\"range\"===w.config.mode&&(d(o,\"startRange\",w.selectedDates[0]&&0===M(t,w.selectedDates[0],!0)),d(o,\"endRange\",w.selectedDates[1]&&0===M(t,w.selectedDates[1],!0)),\"nextMonthDay\"===e&&o.classList.add(\"inRange\")))):o.classList.add(\"flatpickr-disabled\"),\"range\"===w.config.mode&&function(e){return!(\"range\"!==w.config.mode||w.selectedDates.length\u003C2)&&(M(e,w.selectedDates[0])>=0&&M(e,w.selectedDates[1])\u003C=0)}(t)&&!ve(t)&&o.classList.add(\"inRange\"),w.weekNumbers&&1===w.config.showMonths&&\"prevMonthDay\"!==e&&n%7==1&&w.weekNumbers.insertAdjacentHTML(\"beforeend\",\"\u003Cspan class='flatpickr-day'>\"+w.config.getWeek(t)+\"\u003C\u002Fspan>\"),pe(\"onDayCreate\",o),o}function L(e){e.focus(),\"range\"===w.config.mode&&ae(e)}function W(e){for(var t=e>0?0:w.config.showMonths-1,n=e>0?w.config.showMonths:-1,a=t;a!=n;a+=e)for(var i=w.daysContainer.children[a],o=e>0?0:i.children.length-1,r=e>0?i.children.length:-1,l=o;l!=r;l+=e){var c=i.children[l];if(-1===c.className.indexOf(\"hidden\")&&X(c.dateObj))return c}}function R(e,t){var n=ee(document.activeElement||document.body),a=void 0!==e?e:n?document.activeElement:void 0!==w.selectedDateElem&&ee(w.selectedDateElem)?w.selectedDateElem:void 0!==w.todayDateElem&&ee(w.todayDateElem)?w.todayDateElem:W(t>0?1:-1);void 0===a?w._input.focus():n?function(e,t){for(var n=-1===e.className.indexOf(\"Month\")?e.dateObj.getMonth():w.currentMonth,a=t>0?w.config.showMonths:-1,i=t>0?1:-1,o=n-w.currentMonth;o!=a;o+=i)for(var r=w.daysContainer.children[o],l=n-w.currentMonth===o?e.$i+t:t\u003C0?r.children.length-1:0,c=r.children.length,d=l;d>=0&&d\u003Cc&&d!=(t>0?c:-1);d+=i){var s=r.children[d];if(-1===s.className.indexOf(\"hidden\")&&X(s.dateObj)&&Math.abs(e.$i-d)>=Math.abs(t))return L(s)}w.changeMonth(i),R(W(i),0)}(a,t):L(a)}function B(e,t){for(var n=(new Date(e,t,1).getDay()-w.l10n.firstDayOfWeek+7)%7,a=w.utils.getDaysInMonth((t-1+12)%12,e),i=w.utils.getDaysInMonth(t,e),o=window.document.createDocumentFragment(),r=w.config.showMonths>1,l=r?\"prevMonthDay hidden\":\"prevMonthDay\",c=r?\"nextMonthDay hidden\":\"nextMonthDay\",d=a+1-n,u=0;d\u003C=a;d++,u++)o.appendChild(H(l,new Date(e,t-1,d),d,u));for(d=1;d\u003C=i;d++,u++)o.appendChild(H(\"\",new Date(e,t,d),d,u));for(var f=i+1;f\u003C=42-n&&(1===w.config.showMonths||u%7!=0);f++,u++)o.appendChild(H(c,new Date(e,t+1,f%i),f,u));var m=s(\"div\",\"dayContainer\");return m.appendChild(o),m}function J(){if(void 0!==w.daysContainer){u(w.daysContainer),w.weekNumbers&&u(w.weekNumbers);for(var e=document.createDocumentFragment(),t=0;t\u003Cw.config.showMonths;t++){var n=new Date(w.currentYear,w.currentMonth,1);n.setMonth(w.currentMonth+t),e.appendChild(B(n.getFullYear(),n.getMonth()))}w.daysContainer.appendChild(e),w.days=w.daysContainer.firstChild,\"range\"===w.config.mode&&1===w.selectedDates.length&&ae()}}function K(){if(!(w.config.showMonths>1||\"dropdown\"!==w.config.monthSelectorType)){var e=function(e){return!(void 0!==w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&e\u003Cw.config.minDate.getMonth())&&!(void 0!==w.config.maxDate&&w.currentYear===w.config.maxDate.getFullYear()&&e>w.config.maxDate.getMonth())};w.monthsDropdownContainer.tabIndex=-1,w.monthsDropdownContainer.innerHTML=\"\";for(var t=0;t\u003C12;t++)if(e(t)){var n=s(\"option\",\"flatpickr-monthDropdown-month\");n.value=new Date(w.currentYear,t).getMonth().toString(),n.textContent=h(t,w.config.shorthandCurrentMonth,w.l10n),n.tabIndex=-1,w.currentMonth===t&&(n.selected=!0),w.monthsDropdownContainer.appendChild(n)}}}function U(){var e,t=s(\"div\",\"flatpickr-month\"),n=window.document.createDocumentFragment();w.config.showMonths>1||\"static\"===w.config.monthSelectorType?e=s(\"span\",\"cur-month\"):(w.monthsDropdownContainer=s(\"select\",\"flatpickr-monthDropdown-months\"),w.monthsDropdownContainer.setAttribute(\"aria-label\",w.l10n.monthAriaLabel),A(w.monthsDropdownContainer,\"change\",(function(e){var t=g(e),n=parseInt(t.value,10);w.changeMonth(n-w.currentMonth),pe(\"onMonthChange\")})),K(),e=w.monthsDropdownContainer);var a=m(\"cur-year\",{tabindex:\"-1\"}),i=a.getElementsByTagName(\"input\")[0];i.setAttribute(\"aria-label\",w.l10n.yearAriaLabel),w.config.minDate&&i.setAttribute(\"min\",w.config.minDate.getFullYear().toString()),w.config.maxDate&&(i.setAttribute(\"max\",w.config.maxDate.getFullYear().toString()),i.disabled=!!w.config.minDate&&w.config.minDate.getFullYear()===w.config.maxDate.getFullYear());var o=s(\"div\",\"flatpickr-current-month\");return o.appendChild(e),o.appendChild(a),n.appendChild(o),t.appendChild(n),{container:t,yearElement:i,monthElement:e}}function q(){u(w.monthNav),w.monthNav.appendChild(w.prevMonthNav),w.config.showMonths&&(w.yearElements=[],w.monthElements=[]);for(var e=w.config.showMonths;e--;){var t=U();w.yearElements.push(t.yearElement),w.monthElements.push(t.monthElement),w.monthNav.appendChild(t.container)}w.monthNav.appendChild(w.nextMonthNav)}function $(){w.weekdayContainer?u(w.weekdayContainer):w.weekdayContainer=s(\"div\",\"flatpickr-weekdays\");for(var e=w.config.showMonths;e--;){var t=s(\"div\",\"flatpickr-weekdaycontainer\");w.weekdayContainer.appendChild(t)}return z(),w.weekdayContainer}function z(){if(w.weekdayContainer){var e=w.l10n.firstDayOfWeek,n=t(w.l10n.weekdays.shorthand);e>0&&e\u003Cn.length&&(n=t(n.splice(e,n.length),n.splice(0,e)));for(var a=w.config.showMonths;a--;)w.weekdayContainer.children[a].innerHTML=\"\\n      \u003Cspan class='flatpickr-weekday'>\\n        \"+n.join(\"\u003C\u002Fspan>\u003Cspan class='flatpickr-weekday'>\")+\"\\n      \u003C\u002Fspan>\\n      \"}}function G(e,t){void 0===t&&(t=!0);var n=t?e:e-w.currentMonth;n\u003C0&&!0===w._hidePrevMonthArrow||n>0&&!0===w._hideNextMonthArrow||(w.currentMonth+=n,(w.currentMonth\u003C0||w.currentMonth>11)&&(w.currentYear+=w.currentMonth>11?1:-1,w.currentMonth=(w.currentMonth+12)%12,pe(\"onYearChange\"),K()),J(),pe(\"onMonthChange\"),De())}function V(e){return!(!w.config.appendTo||!w.config.appendTo.contains(e))||w.calendarContainer.contains(e)}function Z(e){if(w.isOpen&&!w.config.inline){var t=g(e),n=V(t),a=t===w.input||t===w.altInput||w.element.contains(t)||e.path&&e.path.indexOf&&(~e.path.indexOf(w.input)||~e.path.indexOf(w.altInput)),i=\"blur\"===e.type?a&&e.relatedTarget&&!V(e.relatedTarget):!a&&!n&&!V(e.relatedTarget),o=!w.config.ignoredFocusElements.some((function(e){return e.contains(t)}));i&&o&&(void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement&&\"\"!==w.input.value&&void 0!==w.input.value&&I(),w.close(),w.config&&\"range\"===w.config.mode&&1===w.selectedDates.length&&(w.clear(!1),w.redraw()))}}function Q(e){if(!(!e||w.config.minDate&&e\u003Cw.config.minDate.getFullYear()||w.config.maxDate&&e>w.config.maxDate.getFullYear())){var t=e,n=w.currentYear!==t;w.currentYear=t||w.currentYear,w.config.maxDate&&w.currentYear===w.config.maxDate.getFullYear()?w.currentMonth=Math.min(w.config.maxDate.getMonth(),w.currentMonth):w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&(w.currentMonth=Math.max(w.config.minDate.getMonth(),w.currentMonth)),n&&(w.redraw(),pe(\"onYearChange\"),K())}}function X(e,t){var n;void 0===t&&(t=!0);var a=w.parseDate(e,void 0,t);if(w.config.minDate&&a&&M(a,w.config.minDate,void 0!==t?t:!w.minDateHasTime)\u003C0||w.config.maxDate&&a&&M(a,w.config.maxDate,void 0!==t?t:!w.maxDateHasTime)>0)return!1;if(!w.config.enable&&0===w.config.disable.length)return!0;if(void 0===a)return!1;for(var i=!!w.config.enable,o=null!==(n=w.config.enable)&&void 0!==n?n:w.config.disable,r=0,l=void 0;r\u003Co.length;r++){if(\"function\"==typeof(l=o[r])&&l(a))return i;if(l instanceof Date&&void 0!==a&&l.getTime()===a.getTime())return i;if(\"string\"==typeof l){var c=w.parseDate(l,void 0,!0);return c&&c.getTime()===a.getTime()?i:!i}if(\"object\"==typeof l&&void 0!==a&&l.from&&l.to&&a.getTime()>=l.from.getTime()&&a.getTime()\u003C=l.to.getTime())return i}return!i}function ee(e){return void 0!==w.daysContainer&&(-1===e.className.indexOf(\"hidden\")&&-1===e.className.indexOf(\"flatpickr-disabled\")&&w.daysContainer.contains(e))}function te(e){!(e.target===w._input)||!(w.selectedDates.length>0||w._input.value.length>0)||e.relatedTarget&&V(e.relatedTarget)||w.setDate(w._input.value,!0,e.target===w.altInput?w.config.altFormat:w.config.dateFormat)}function ne(e){var t=g(e),n=w.config.wrap?p.contains(t):t===w._input,a=w.config.allowInput,i=w.isOpen&&(!a||!n),o=w.config.inline&&n&&!a;if(13===e.keyCode&&n){if(a)return w.setDate(w._input.value,!0,t===w.altInput?w.config.altFormat:w.config.dateFormat),t.blur();w.open()}else if(V(t)||i||o){var r=!!w.timeContainer&&w.timeContainer.contains(t);switch(e.keyCode){case 13:r?(e.preventDefault(),I(),se()):ue(e);break;case 27:e.preventDefault(),se();break;case 8:case 46:n&&!w.config.allowInput&&(e.preventDefault(),w.clear());break;case 37:case 39:if(r||n)w.hourElement&&w.hourElement.focus();else if(e.preventDefault(),void 0!==w.daysContainer&&(!1===a||document.activeElement&&ee(document.activeElement))){var l=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),G(l),R(W(1),0)):R(void 0,l)}break;case 38:case 40:e.preventDefault();var c=40===e.keyCode?1:-1;w.daysContainer&&void 0!==t.$i||t===w.input||t===w.altInput?e.ctrlKey?(e.stopPropagation(),Q(w.currentYear-c),R(W(1),0)):r||R(void 0,7*c):t===w.currentYearElement?Q(w.currentYear-c):w.config.enableTime&&(!r&&w.hourElement&&w.hourElement.focus(),I(e),w._debouncedChange());break;case 9:if(r){var d=[w.hourElement,w.minuteElement,w.secondElement,w.amPM].concat(w.pluginElements).filter((function(e){return e})),s=d.indexOf(t);if(-1!==s){var u=d[s+(e.shiftKey?-1:1)];e.preventDefault(),(u||w._input).focus()}}else!w.config.noCalendar&&w.daysContainer&&w.daysContainer.contains(t)&&e.shiftKey&&(e.preventDefault(),w._input.focus())}}if(void 0!==w.amPM&&t===w.amPM)switch(e.key){case w.l10n.amPM[0].charAt(0):case w.l10n.amPM[0].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[0],S(),be();break;case w.l10n.amPM[1].charAt(0):case w.l10n.amPM[1].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[1],S(),be()}(n||V(t))&&pe(\"onKeyDown\",e)}function ae(e){if(1===w.selectedDates.length&&(!e||e.classList.contains(\"flatpickr-day\")&&!e.classList.contains(\"flatpickr-disabled\"))){for(var t=e?e.dateObj.getTime():w.days.firstElementChild.dateObj.getTime(),n=w.parseDate(w.selectedDates[0],void 0,!0).getTime(),a=Math.min(t,w.selectedDates[0].getTime()),i=Math.max(t,w.selectedDates[0].getTime()),o=!1,r=0,l=0,c=a;c\u003Ci;c+=y)X(new Date(c),!0)||(o=o||c>a&&c\u003Ci,c\u003Cn&&(!r||c>r)?r=c:c>n&&(!l||c\u003Cl)&&(l=c));for(var d=0;d\u003Cw.config.showMonths;d++)for(var s=w.daysContainer.children[d],u=function(a,i){var c,d,u,f=s.children[a],m=f.dateObj.getTime(),g=r>0&&m\u003Cr||l>0&&m>l;return g?(f.classList.add(\"notAllowed\"),[\"inRange\",\"startRange\",\"endRange\"].forEach((function(e){f.classList.remove(e)})),\"continue\"):o&&!g?\"continue\":([\"startRange\",\"inRange\",\"endRange\",\"notAllowed\"].forEach((function(e){f.classList.remove(e)})),void(void 0!==e&&(e.classList.add(t\u003C=w.selectedDates[0].getTime()?\"startRange\":\"endRange\"),n\u003Ct&&m===n?f.classList.add(\"startRange\"):n>t&&m===n&&f.classList.add(\"endRange\"),m>=r&&(0===l||m\u003C=l)&&(d=n,u=t,(c=m)>Math.min(d,u)&&c\u003CMath.max(d,u))&&f.classList.add(\"inRange\"))))},f=0,m=s.children.length;f\u003Cm;f++)u(f)}}function ie(){!w.isOpen||w.config.static||w.config.inline||ce()}function oe(e){return function(t){var n=w.config[\"_\"+e+\"Date\"]=w.parseDate(t,w.config.dateFormat),a=w.config[\"_\"+(\"min\"===e?\"max\":\"min\")+\"Date\"];void 0!==n&&(w[\"min\"===e?\"minDateHasTime\":\"maxDateHasTime\"]=n.getHours()>0||n.getMinutes()>0||n.getSeconds()>0),w.selectedDates&&(w.selectedDates=w.selectedDates.filter((function(e){return X(e)})),w.selectedDates.length||\"min\"!==e||_(n),be()),w.daysContainer&&(de(),void 0!==n?w.currentYearElement[e]=n.getFullYear().toString():w.currentYearElement.removeAttribute(e),w.currentYearElement.disabled=!!a&&void 0!==n&&a.getFullYear()===n.getFullYear())}}function re(){return w.config.wrap?p.querySelector(\"[data-input]\"):p}function le(){\"object\"!=typeof w.config.locale&&void 0===T.l10ns[w.config.locale]&&w.config.errorHandler(new Error(\"flatpickr: invalid locale \"+w.config.locale)),w.l10n=e(e({},T.l10ns.default),\"object\"==typeof w.config.locale?w.config.locale:\"default\"!==w.config.locale?T.l10ns[w.config.locale]:void 0),D.K=\"(\"+w.l10n.amPM[0]+\"|\"+w.l10n.amPM[1]+\"|\"+w.l10n.amPM[0].toLowerCase()+\"|\"+w.l10n.amPM[1].toLowerCase()+\")\",void 0===e(e({},v),JSON.parse(JSON.stringify(p.dataset||{}))).time_24hr&&void 0===T.defaultConfig.time_24hr&&(w.config.time_24hr=w.l10n.time_24hr),w.formatDate=b(w),w.parseDate=C({config:w.config,l10n:w.l10n})}function ce(e){if(\"function\"!=typeof w.config.position){if(void 0!==w.calendarContainer){pe(\"onPreCalendarPosition\");var t=e||w._positionElement,n=Array.prototype.reduce.call(w.calendarContainer.children,(function(e,t){return e+t.offsetHeight}),0),a=w.calendarContainer.offsetWidth,i=w.config.position.split(\" \"),o=i[0],r=i.length>1?i[1]:null,l=t.getBoundingClientRect(),c=window.innerHeight-l.bottom,s=\"above\"===o||\"below\"!==o&&c\u003Cn&&l.top>n,u=window.pageYOffset+l.top+(s?-n-2:t.offsetHeight+2);if(d(w.calendarContainer,\"arrowTop\",!s),d(w.calendarContainer,\"arrowBottom\",s),!w.config.inline){var f=window.pageXOffset+l.left,m=!1,g=!1;\"center\"===r?(f-=(a-l.width)\u002F2,m=!0):\"right\"===r&&(f-=a-l.width,g=!0),d(w.calendarContainer,\"arrowLeft\",!m&&!g),d(w.calendarContainer,\"arrowCenter\",m),d(w.calendarContainer,\"arrowRight\",g);var p=window.document.body.offsetWidth-(window.pageXOffset+l.right),h=f+a>window.document.body.offsetWidth,v=p+a>window.document.body.offsetWidth;if(d(w.calendarContainer,\"rightMost\",h),!w.config.static)if(w.calendarContainer.style.top=u+\"px\",h)if(v){var D=function(){for(var e=null,t=0;t\u003Cdocument.styleSheets.length;t++){var n=document.styleSheets[t];try{n.cssRules}catch(e){continue}e=n;break}return null!=e?e:(a=document.createElement(\"style\"),document.head.appendChild(a),a.sheet);var a}();if(void 0===D)return;var b=window.document.body.offsetWidth,C=Math.max(0,b\u002F2-a\u002F2),M=D.cssRules.length,y=\"{left:\"+l.left+\"px;right:auto;}\";d(w.calendarContainer,\"rightMost\",!1),d(w.calendarContainer,\"centerMost\",!0),D.insertRule(\".flatpickr-calendar.centerMost:before,.flatpickr-calendar.centerMost:after\"+y,M),w.calendarContainer.style.left=C+\"px\",w.calendarContainer.style.right=\"auto\"}else w.calendarContainer.style.left=\"auto\",w.calendarContainer.style.right=p+\"px\";else w.calendarContainer.style.left=f+\"px\",w.calendarContainer.style.right=\"auto\"}}}else w.config.position(w,e)}function de(){w.config.noCalendar||w.isMobile||(K(),De(),J())}function se(){w._input.focus(),-1!==window.navigator.userAgent.indexOf(\"MSIE\")||void 0!==navigator.msMaxTouchPoints?setTimeout(w.close,0):w.close()}function ue(e){e.preventDefault(),e.stopPropagation();var t=f(g(e),(function(e){return e.classList&&e.classList.contains(\"flatpickr-day\")&&!e.classList.contains(\"flatpickr-disabled\")&&!e.classList.contains(\"notAllowed\")}));if(void 0!==t){var n=t,a=w.latestSelectedDateObj=new Date(n.dateObj.getTime()),i=(a.getMonth()\u003Cw.currentMonth||a.getMonth()>w.currentMonth+w.config.showMonths-1)&&\"range\"!==w.config.mode;if(w.selectedDateElem=n,\"single\"===w.config.mode)w.selectedDates=[a];else if(\"multiple\"===w.config.mode){var o=ve(a);o?w.selectedDates.splice(parseInt(o),1):w.selectedDates.push(a)}else\"range\"===w.config.mode&&(2===w.selectedDates.length&&w.clear(!1,!1),w.latestSelectedDateObj=a,w.selectedDates.push(a),0!==M(a,w.selectedDates[0],!0)&&w.selectedDates.sort((function(e,t){return e.getTime()-t.getTime()})));if(S(),i){var r=w.currentYear!==a.getFullYear();w.currentYear=a.getFullYear(),w.currentMonth=a.getMonth(),r&&(pe(\"onYearChange\"),K()),pe(\"onMonthChange\")}if(De(),J(),be(),i||\"range\"===w.config.mode||1!==w.config.showMonths?void 0!==w.selectedDateElem&&void 0===w.hourElement&&w.selectedDateElem&&w.selectedDateElem.focus():L(n),void 0!==w.hourElement&&void 0!==w.hourElement&&w.hourElement.focus(),w.config.closeOnSelect){var l=\"single\"===w.config.mode&&!w.config.enableTime,c=\"range\"===w.config.mode&&2===w.selectedDates.length&&!w.config.enableTime;(l||c)&&se()}N()}}w.parseDate=C({config:w.config,l10n:w.l10n}),w._handlers=[],w.pluginElements=[],w.loadedPlugins=[],w._bind=A,w._setHoursFromDate=_,w._positionCalendar=ce,w.changeMonth=G,w.changeYear=Q,w.clear=function(e,t){void 0===e&&(e=!0);void 0===t&&(t=!0);w.input.value=\"\",void 0!==w.altInput&&(w.altInput.value=\"\");void 0!==w.mobileInput&&(w.mobileInput.value=\"\");w.selectedDates=[],w.latestSelectedDateObj=void 0,!0===t&&(w.currentYear=w._initialDate.getFullYear(),w.currentMonth=w._initialDate.getMonth());if(!0===w.config.enableTime){var n=x(w.config),a=n.hours,i=n.minutes,o=n.seconds;O(a,i,o)}w.redraw(),e&&pe(\"onChange\")},w.close=function(){w.isOpen=!1,w.isMobile||(void 0!==w.calendarContainer&&w.calendarContainer.classList.remove(\"open\"),void 0!==w._input&&w._input.classList.remove(\"active\"));pe(\"onClose\")},w._createElement=s,w.destroy=function(){void 0!==w.config&&pe(\"onDestroy\");for(var e=w._handlers.length;e--;)w._handlers[e].remove();if(w._handlers=[],w.mobileInput)w.mobileInput.parentNode&&w.mobileInput.parentNode.removeChild(w.mobileInput),w.mobileInput=void 0;else if(w.calendarContainer&&w.calendarContainer.parentNode)if(w.config.static&&w.calendarContainer.parentNode){var t=w.calendarContainer.parentNode;if(t.lastChild&&t.removeChild(t.lastChild),t.parentNode){for(;t.firstChild;)t.parentNode.insertBefore(t.firstChild,t);t.parentNode.removeChild(t)}}else w.calendarContainer.parentNode.removeChild(w.calendarContainer);w.altInput&&(w.input.type=\"text\",w.altInput.parentNode&&w.altInput.parentNode.removeChild(w.altInput),delete w.altInput);w.input&&(w.input.type=w.input._type,w.input.classList.remove(\"flatpickr-input\"),w.input.removeAttribute(\"readonly\"));[\"_showTimeInput\",\"latestSelectedDateObj\",\"_hideNextMonthArrow\",\"_hidePrevMonthArrow\",\"__hideNextMonthArrow\",\"__hidePrevMonthArrow\",\"isMobile\",\"isOpen\",\"selectedDateElem\",\"minDateHasTime\",\"maxDateHasTime\",\"days\",\"daysContainer\",\"_input\",\"_positionElement\",\"innerContainer\",\"rContainer\",\"monthNav\",\"todayDateElem\",\"calendarContainer\",\"weekdayContainer\",\"prevMonthNav\",\"nextMonthNav\",\"monthsDropdownContainer\",\"currentMonthElement\",\"currentYearElement\",\"navigationCurrentMonth\",\"selectedDateElem\",\"config\"].forEach((function(e){try{delete w[e]}catch(e){}}))},w.isEnabled=X,w.jumpToDate=P,w.open=function(e,t){void 0===t&&(t=w._positionElement);if(!0===w.isMobile){if(e){e.preventDefault();var n=g(e);n&&n.blur()}return void 0!==w.mobileInput&&(w.mobileInput.focus(),w.mobileInput.click()),void pe(\"onOpen\")}if(w._input.disabled||w.config.inline)return;var a=w.isOpen;w.isOpen=!0,a||(w.calendarContainer.classList.add(\"open\"),w._input.classList.add(\"active\"),pe(\"onOpen\"),ce(t));!0===w.config.enableTime&&!0===w.config.noCalendar&&(!1!==w.config.allowInput||void 0!==e&&w.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return w.hourElement.select()}),50))},w.redraw=de,w.set=function(e,t){if(null!==e&&\"object\"==typeof e)for(var a in Object.assign(w.config,e),e)void 0!==fe[a]&&fe[a].forEach((function(e){return e()}));else w.config[e]=t,void 0!==fe[e]?fe[e].forEach((function(e){return e()})):n.indexOf(e)>-1&&(w.config[e]=c(t));w.redraw(),be(!0)},w.setDate=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=w.config.dateFormat);if(0!==e&&!e||e instanceof Array&&0===e.length)return w.clear(t);me(e,n),w.latestSelectedDateObj=w.selectedDates[w.selectedDates.length-1],w.redraw(),P(void 0,t),_(),0===w.selectedDates.length&&w.clear(!1);be(t),t&&pe(\"onChange\")},w.toggle=function(e){if(!0===w.isOpen)return w.close();w.open(e)};var fe={locale:[le,z],showMonths:[q,k,$],minDate:[P],maxDate:[P],clickOpens:[function(){!0===w.config.clickOpens?(A(w._input,\"focus\",w.open),A(w._input,\"click\",w.open)):(w._input.removeEventListener(\"focus\",w.open),w._input.removeEventListener(\"click\",w.open))}]};function me(e,t){var n=[];if(e instanceof Array)n=e.map((function(e){return w.parseDate(e,t)}));else if(e instanceof Date||\"number\"==typeof e)n=[w.parseDate(e,t)];else if(\"string\"==typeof e)switch(w.config.mode){case\"single\":case\"time\":n=[w.parseDate(e,t)];break;case\"multiple\":n=e.split(w.config.conjunction).map((function(e){return w.parseDate(e,t)}));break;case\"range\":n=e.split(w.l10n.rangeSeparator).map((function(e){return w.parseDate(e,t)}))}else w.config.errorHandler(new Error(\"Invalid date supplied: \"+JSON.stringify(e)));w.selectedDates=w.config.allowInvalidPreload?n:n.filter((function(e){return e instanceof Date&&X(e,!1)})),\"range\"===w.config.mode&&w.selectedDates.sort((function(e,t){return e.getTime()-t.getTime()}))}function ge(e){return e.slice().map((function(e){return\"string\"==typeof e||\"number\"==typeof e||e instanceof Date?w.parseDate(e,void 0,!0):e&&\"object\"==typeof e&&e.from&&e.to?{from:w.parseDate(e.from,void 0),to:w.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function pe(e,t){if(void 0!==w.config){var n=w.config[e];if(void 0!==n&&n.length>0)for(var a=0;n[a]&&a\u003Cn.length;a++)n[a](w.selectedDates,w.input.value,w,t);\"onChange\"===e&&(w.input.dispatchEvent(he(\"change\")),w.input.dispatchEvent(he(\"input\")))}}function he(e){var t=document.createEvent(\"Event\");return t.initEvent(e,!0,!0),t}function ve(e){for(var t=0;t\u003Cw.selectedDates.length;t++)if(0===M(w.selectedDates[t],e))return\"\"+t;return!1}function De(){w.config.noCalendar||w.isMobile||!w.monthNav||(w.yearElements.forEach((function(e,t){var n=new Date(w.currentYear,w.currentMonth,1);n.setMonth(w.currentMonth+t),w.config.showMonths>1||\"static\"===w.config.monthSelectorType?w.monthElements[t].textContent=h(n.getMonth(),w.config.shorthandCurrentMonth,w.l10n)+\" \":w.monthsDropdownContainer.value=n.getMonth().toString(),e.value=n.getFullYear().toString()})),w._hidePrevMonthArrow=void 0!==w.config.minDate&&(w.currentYear===w.config.minDate.getFullYear()?w.currentMonth\u003C=w.config.minDate.getMonth():w.currentYear\u003Cw.config.minDate.getFullYear()),w._hideNextMonthArrow=void 0!==w.config.maxDate&&(w.currentYear===w.config.maxDate.getFullYear()?w.currentMonth+1>w.config.maxDate.getMonth():w.currentYear>w.config.maxDate.getFullYear()))}function we(e){return w.selectedDates.map((function(t){return w.formatDate(t,e)})).filter((function(e,t,n){return\"range\"!==w.config.mode||w.config.enableTime||n.indexOf(e)===t})).join(\"range\"!==w.config.mode?w.config.conjunction:w.l10n.rangeSeparator)}function be(e){void 0===e&&(e=!0),void 0!==w.mobileInput&&w.mobileFormatStr&&(w.mobileInput.value=void 0!==w.latestSelectedDateObj?w.formatDate(w.latestSelectedDateObj,w.mobileFormatStr):\"\"),w.input.value=we(w.config.dateFormat),void 0!==w.altInput&&(w.altInput.value=we(w.config.altFormat)),!1!==e&&pe(\"onValueUpdate\")}function Ce(e){var t=g(e),n=w.prevMonthNav.contains(t),a=w.nextMonthNav.contains(t);n||a?G(n?-1:1):w.yearElements.indexOf(t)>=0?t.select():t.classList.contains(\"arrowUp\")?w.changeYear(w.currentYear+1):t.classList.contains(\"arrowDown\")&&w.changeYear(w.currentYear-1)}return function(){w.element=w.input=p,w.isOpen=!1,function(){var t=[\"wrap\",\"weekNumbers\",\"allowInput\",\"allowInvalidPreload\",\"clickOpens\",\"time_24hr\",\"enableTime\",\"noCalendar\",\"altInput\",\"shorthandCurrentMonth\",\"inline\",\"static\",\"enableSeconds\",\"disableMobile\"],i=e(e({},JSON.parse(JSON.stringify(p.dataset||{}))),v),o={};w.config.parseDate=i.parseDate,w.config.formatDate=i.formatDate,Object.defineProperty(w.config,\"enable\",{get:function(){return w.config._enable},set:function(e){w.config._enable=ge(e)}}),Object.defineProperty(w.config,\"disable\",{get:function(){return w.config._disable},set:function(e){w.config._disable=ge(e)}});var r=\"time\"===i.mode;if(!i.dateFormat&&(i.enableTime||r)){var l=T.defaultConfig.dateFormat||a.dateFormat;o.dateFormat=i.noCalendar||r?\"H:i\"+(i.enableSeconds?\":S\":\"\"):l+\" H:i\"+(i.enableSeconds?\":S\":\"\")}if(i.altInput&&(i.enableTime||r)&&!i.altFormat){var d=T.defaultConfig.altFormat||a.altFormat;o.altFormat=i.noCalendar||r?\"h:i\"+(i.enableSeconds?\":S K\":\" K\"):d+\" h:i\"+(i.enableSeconds?\":S\":\"\")+\" K\"}Object.defineProperty(w.config,\"minDate\",{get:function(){return w.config._minDate},set:oe(\"min\")}),Object.defineProperty(w.config,\"maxDate\",{get:function(){return w.config._maxDate},set:oe(\"max\")});var s=function(e){return function(t){w.config[\"min\"===e?\"_minTime\":\"_maxTime\"]=w.parseDate(t,\"H:i:S\")}};Object.defineProperty(w.config,\"minTime\",{get:function(){return w.config._minTime},set:s(\"min\")}),Object.defineProperty(w.config,\"maxTime\",{get:function(){return w.config._maxTime},set:s(\"max\")}),\"time\"===i.mode&&(w.config.noCalendar=!0,w.config.enableTime=!0);Object.assign(w.config,o,i);for(var u=0;u\u003Ct.length;u++)w.config[t[u]]=!0===w.config[t[u]]||\"true\"===w.config[t[u]];n.filter((function(e){return void 0!==w.config[e]})).forEach((function(e){w.config[e]=c(w.config[e]||[]).map(E)})),w.isMobile=!w.config.disableMobile&&!w.config.inline&&\"single\"===w.config.mode&&!w.config.disable.length&&!w.config.enable&&!w.config.weekNumbers&&\u002FAndroid|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\u002Fi.test(navigator.userAgent);for(u=0;u\u003Cw.config.plugins.length;u++){var f=w.config.plugins[u](w)||{};for(var m in f)n.indexOf(m)>-1?w.config[m]=c(f[m]).map(E).concat(w.config[m]):void 0===i[m]&&(w.config[m]=f[m])}i.altInputClass||(w.config.altInputClass=re().className+\" \"+w.config.altInputClass);pe(\"onParseConfig\")}(),le(),function(){if(w.input=re(),!w.input)return void w.config.errorHandler(new Error(\"Invalid input element specified\"));w.input._type=w.input.type,w.input.type=\"text\",w.input.classList.add(\"flatpickr-input\"),w._input=w.input,w.config.altInput&&(w.altInput=s(w.input.nodeName,w.config.altInputClass),w._input=w.altInput,w.altInput.placeholder=w.input.placeholder,w.altInput.disabled=w.input.disabled,w.altInput.required=w.input.required,w.altInput.tabIndex=w.input.tabIndex,w.altInput.type=\"text\",w.input.setAttribute(\"type\",\"hidden\"),!w.config.static&&w.input.parentNode&&w.input.parentNode.insertBefore(w.altInput,w.input.nextSibling));w.config.allowInput||w._input.setAttribute(\"readonly\",\"readonly\");w._positionElement=w.config.positionElement||w._input}(),function(){w.selectedDates=[],w.now=w.parseDate(w.config.now)||new Date;var e=w.config.defaultDate||(\"INPUT\"!==w.input.nodeName&&\"TEXTAREA\"!==w.input.nodeName||!w.input.placeholder||w.input.value!==w.input.placeholder?w.input.value:null);e&&me(e,w.config.dateFormat);w._initialDate=w.selectedDates.length>0?w.selectedDates[0]:w.config.minDate&&w.config.minDate.getTime()>w.now.getTime()?w.config.minDate:w.config.maxDate&&w.config.maxDate.getTime()\u003Cw.now.getTime()?w.config.maxDate:w.now,w.currentYear=w._initialDate.getFullYear(),w.currentMonth=w._initialDate.getMonth(),w.selectedDates.length>0&&(w.latestSelectedDateObj=w.selectedDates[0]);void 0!==w.config.minTime&&(w.config.minTime=w.parseDate(w.config.minTime,\"H:i\"));void 0!==w.config.maxTime&&(w.config.maxTime=w.parseDate(w.config.maxTime,\"H:i\"));w.minDateHasTime=!!w.config.minDate&&(w.config.minDate.getHours()>0||w.config.minDate.getMinutes()>0||w.config.minDate.getSeconds()>0),w.maxDateHasTime=!!w.config.maxDate&&(w.config.maxDate.getHours()>0||w.config.maxDate.getMinutes()>0||w.config.maxDate.getSeconds()>0)}(),w.utils={getDaysInMonth:function(e,t){return void 0===e&&(e=w.currentMonth),void 0===t&&(t=w.currentYear),1===e&&(t%4==0&&t%100!=0||t%400==0)?29:w.l10n.daysInMonth[e]}},w.isMobile||function(){var e=window.document.createDocumentFragment();if(w.calendarContainer=s(\"div\",\"flatpickr-calendar\"),w.calendarContainer.tabIndex=-1,!w.config.noCalendar){if(e.appendChild((w.monthNav=s(\"div\",\"flatpickr-months\"),w.yearElements=[],w.monthElements=[],w.prevMonthNav=s(\"span\",\"flatpickr-prev-month\"),w.prevMonthNav.innerHTML=w.config.prevArrow,w.nextMonthNav=s(\"span\",\"flatpickr-next-month\"),w.nextMonthNav.innerHTML=w.config.nextArrow,q(),Object.defineProperty(w,\"_hidePrevMonthArrow\",{get:function(){return w.__hidePrevMonthArrow},set:function(e){w.__hidePrevMonthArrow!==e&&(d(w.prevMonthNav,\"flatpickr-disabled\",e),w.__hidePrevMonthArrow=e)}}),Object.defineProperty(w,\"_hideNextMonthArrow\",{get:function(){return w.__hideNextMonthArrow},set:function(e){w.__hideNextMonthArrow!==e&&(d(w.nextMonthNav,\"flatpickr-disabled\",e),w.__hideNextMonthArrow=e)}}),w.currentYearElement=w.yearElements[0],De(),w.monthNav)),w.innerContainer=s(\"div\",\"flatpickr-innerContainer\"),w.config.weekNumbers){var t=function(){w.calendarContainer.classList.add(\"hasWeeks\");var e=s(\"div\",\"flatpickr-weekwrapper\");e.appendChild(s(\"span\",\"flatpickr-weekday\",w.l10n.weekAbbreviation));var t=s(\"div\",\"flatpickr-weeks\");return e.appendChild(t),{weekWrapper:e,weekNumbers:t}}(),n=t.weekWrapper,a=t.weekNumbers;w.innerContainer.appendChild(n),w.weekNumbers=a,w.weekWrapper=n}w.rContainer=s(\"div\",\"flatpickr-rContainer\"),w.rContainer.appendChild($()),w.daysContainer||(w.daysContainer=s(\"div\",\"flatpickr-days\"),w.daysContainer.tabIndex=-1),J(),w.rContainer.appendChild(w.daysContainer),w.innerContainer.appendChild(w.rContainer),e.appendChild(w.innerContainer)}w.config.enableTime&&e.appendChild(function(){w.calendarContainer.classList.add(\"hasTime\"),w.config.noCalendar&&w.calendarContainer.classList.add(\"noCalendar\");var e=x(w.config);w.timeContainer=s(\"div\",\"flatpickr-time\"),w.timeContainer.tabIndex=-1;var t=s(\"span\",\"flatpickr-time-separator\",\":\"),n=m(\"flatpickr-hour\",{\"aria-label\":w.l10n.hourAriaLabel});w.hourElement=n.getElementsByTagName(\"input\")[0];var a=m(\"flatpickr-minute\",{\"aria-label\":w.l10n.minuteAriaLabel});w.minuteElement=a.getElementsByTagName(\"input\")[0],w.hourElement.tabIndex=w.minuteElement.tabIndex=-1,w.hourElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getHours():w.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),w.minuteElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getMinutes():e.minutes),w.hourElement.setAttribute(\"step\",w.config.hourIncrement.toString()),w.minuteElement.setAttribute(\"step\",w.config.minuteIncrement.toString()),w.hourElement.setAttribute(\"min\",w.config.time_24hr?\"0\":\"1\"),w.hourElement.setAttribute(\"max\",w.config.time_24hr?\"23\":\"12\"),w.hourElement.setAttribute(\"maxlength\",\"2\"),w.minuteElement.setAttribute(\"min\",\"0\"),w.minuteElement.setAttribute(\"max\",\"59\"),w.minuteElement.setAttribute(\"maxlength\",\"2\"),w.timeContainer.appendChild(n),w.timeContainer.appendChild(t),w.timeContainer.appendChild(a),w.config.time_24hr&&w.timeContainer.classList.add(\"time24hr\");if(w.config.enableSeconds){w.timeContainer.classList.add(\"hasSeconds\");var i=m(\"flatpickr-second\");w.secondElement=i.getElementsByTagName(\"input\")[0],w.secondElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getSeconds():e.seconds),w.secondElement.setAttribute(\"step\",w.minuteElement.getAttribute(\"step\")),w.secondElement.setAttribute(\"min\",\"0\"),w.secondElement.setAttribute(\"max\",\"59\"),w.secondElement.setAttribute(\"maxlength\",\"2\"),w.timeContainer.appendChild(s(\"span\",\"flatpickr-time-separator\",\":\")),w.timeContainer.appendChild(i)}w.config.time_24hr||(w.amPM=s(\"span\",\"flatpickr-am-pm\",w.l10n.amPM[r((w.latestSelectedDateObj?w.hourElement.value:w.config.defaultHour)>11)]),w.amPM.title=w.l10n.toggleTitle,w.amPM.tabIndex=-1,w.timeContainer.appendChild(w.amPM));return w.timeContainer}());d(w.calendarContainer,\"rangeMode\",\"range\"===w.config.mode),d(w.calendarContainer,\"animate\",!0===w.config.animate),d(w.calendarContainer,\"multiMonth\",w.config.showMonths>1),w.calendarContainer.appendChild(e);var i=void 0!==w.config.appendTo&&void 0!==w.config.appendTo.nodeType;if((w.config.inline||w.config.static)&&(w.calendarContainer.classList.add(w.config.inline?\"inline\":\"static\"),w.config.inline&&(!i&&w.element.parentNode?w.element.parentNode.insertBefore(w.calendarContainer,w._input.nextSibling):void 0!==w.config.appendTo&&w.config.appendTo.appendChild(w.calendarContainer)),w.config.static)){var l=s(\"div\",\"flatpickr-wrapper\");w.element.parentNode&&w.element.parentNode.insertBefore(l,w.element),l.appendChild(w.element),w.altInput&&l.appendChild(w.altInput),l.appendChild(w.calendarContainer)}w.config.static||w.config.inline||(void 0!==w.config.appendTo?w.config.appendTo:window.document.body).appendChild(w.calendarContainer)}(),function(){w.config.wrap&&[\"open\",\"close\",\"toggle\",\"clear\"].forEach((function(e){Array.prototype.forEach.call(w.element.querySelectorAll(\"[data-\"+e+\"]\"),(function(t){return A(t,\"click\",w[e])}))}));if(w.isMobile)return void function(){var e=w.config.enableTime?w.config.noCalendar?\"time\":\"datetime-local\":\"date\";w.mobileInput=s(\"input\",w.input.className+\" flatpickr-mobile\"),w.mobileInput.tabIndex=1,w.mobileInput.type=e,w.mobileInput.disabled=w.input.disabled,w.mobileInput.required=w.input.required,w.mobileInput.placeholder=w.input.placeholder,w.mobileFormatStr=\"datetime-local\"===e?\"Y-m-d\\\\TH:i:S\":\"date\"===e?\"Y-m-d\":\"H:i:S\",w.selectedDates.length>0&&(w.mobileInput.defaultValue=w.mobileInput.value=w.formatDate(w.selectedDates[0],w.mobileFormatStr));w.config.minDate&&(w.mobileInput.min=w.formatDate(w.config.minDate,\"Y-m-d\"));w.config.maxDate&&(w.mobileInput.max=w.formatDate(w.config.maxDate,\"Y-m-d\"));w.input.getAttribute(\"step\")&&(w.mobileInput.step=String(w.input.getAttribute(\"step\")));w.input.type=\"hidden\",void 0!==w.altInput&&(w.altInput.type=\"hidden\");try{w.input.parentNode&&w.input.parentNode.insertBefore(w.mobileInput,w.input.nextSibling)}catch(e){}A(w.mobileInput,\"change\",(function(e){w.setDate(g(e).value,!1,w.mobileFormatStr),pe(\"onChange\"),pe(\"onClose\")}))}();var e=l(ie,50);w._debouncedChange=l(N,300),w.daysContainer&&!\u002FiPhone|iPad|iPod\u002Fi.test(navigator.userAgent)&&A(w.daysContainer,\"mouseover\",(function(e){\"range\"===w.config.mode&&ae(g(e))}));A(window.document.body,\"keydown\",ne),w.config.inline||w.config.static||A(window,\"resize\",e);void 0!==window.ontouchstart?A(window.document,\"touchstart\",Z):A(window.document,\"mousedown\",Z);A(window.document,\"focus\",Z,{capture:!0}),!0===w.config.clickOpens&&(A(w._input,\"focus\",w.open),A(w._input,\"click\",w.open));void 0!==w.daysContainer&&(A(w.monthNav,\"click\",Ce),A(w.monthNav,[\"keyup\",\"increment\"],F),A(w.daysContainer,\"click\",ue));if(void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement){var t=function(e){return g(e).select()};A(w.timeContainer,[\"increment\"],I),A(w.timeContainer,\"blur\",I,{capture:!0}),A(w.timeContainer,\"click\",Y),A([w.hourElement,w.minuteElement],[\"focus\",\"click\"],t),void 0!==w.secondElement&&A(w.secondElement,\"focus\",(function(){return w.secondElement&&w.secondElement.select()})),void 0!==w.amPM&&A(w.amPM,\"click\",(function(e){I(e),N()}))}w.config.allowInput&&A(w._input,\"blur\",te)}(),(w.selectedDates.length||w.config.noCalendar)&&(w.config.enableTime&&_(w.config.noCalendar?w.latestSelectedDateObj:void 0),be(!1)),k();var t=\u002F^((?!chrome|android).)*safari\u002Fi.test(navigator.userAgent);!w.isMobile&&t&&ce(),pe(\"onReady\")}(),w}function k(e,t){for(var n=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),a=[],i=0;i\u003Cn.length;i++){var o=n[i];try{if(null!==o.getAttribute(\"data-fp-omit\"))continue;void 0!==o._flatpickr&&(o._flatpickr.destroy(),o._flatpickr=void 0),o._flatpickr=E(o,t||{}),a.push(o._flatpickr)}catch(e){console.error(e)}}return 1===a.length?a[0]:a}\"undefined\"!=typeof HTMLElement&&\"undefined\"!=typeof HTMLCollection&&\"undefined\"!=typeof NodeList&&(HTMLCollection.prototype.flatpickr=NodeList.prototype.flatpickr=function(e){return k(this,e)},HTMLElement.prototype.flatpickr=function(e){return k([this],e)});var T=function(e,t){return\"string\"==typeof e?k(window.document.querySelectorAll(e),t):e instanceof Node?k([e],t):k(e,t)};return T.defaultConfig={},T.l10ns={en:e({},i),default:e({},i)},T.localize=function(t){T.l10ns.default=e(e({},T.l10ns.default),t)},T.setDefaults=function(t){T.defaultConfig=e(e({},T.defaultConfig),t)},T.parseDate=C({}),T.formatDate=b({}),T.compareDates=M,\"undefined\"!=typeof jQuery&&void 0!==jQuery.fn&&(jQuery.fn.flatpickr=function(e){return k(this,e)}),Date.prototype.fp_incr=function(e){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+(\"string\"==typeof e?parseInt(e,10):e))},\"undefined\"!=typeof window&&(window.flatpickr=T),T}));\n+\u002F* flatpickr v4.6.9,, @license MIT *\u002F\r\n+!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).flatpickr=t()}(this,(function(){\"use strict\";var e=function(){return(e=Object.assign||function(e){for(var t,n=1,a=arguments.length;n\u003Ca;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function t(){for(var e=0,t=0,n=arguments.length;t\u003Cn;t++)e+=arguments[t].length;var a=Array(e),i=0;for(t=0;t\u003Cn;t++)for(var o=arguments[t],r=0,l=o.length;r\u003Cl;r++,i++)a[i]=o[r];return a}var n=[\"onChange\",\"onClose\",\"onDayCreate\",\"onDestroy\",\"onKeyDown\",\"onMonthChange\",\"onOpen\",\"onParseConfig\",\"onReady\",\"onValueUpdate\",\"onYearChange\",\"onPreCalendarPosition\"],a={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:\"F j, Y\",altInput:!1,altInputClass:\"form-control input\",animate:\"object\"==typeof window&&-1===window.navigator.userAgent.indexOf(\"MSIE\"),ariaDateFormat:\"F j, Y\",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:\", \",dateFormat:\"Y-m-d\",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(e){return\"undefined\"!=typeof console&&console.warn(e)},getWeek:function(e){var t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);var n=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-n.getTime())\u002F864e5-3+(n.getDay()+6)%7)\u002F7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:\"default\",minuteIncrement:5,mode:\"single\",monthSelectorType:\"dropdown\",nextArrow:\"\u003Csvg version='1.1' xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' xmlns:xlink='http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink' viewBox='0 0 17 17'>\u003Cg>\u003C\u002Fg>\u003Cpath d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' \u002F>\u003C\u002Fsvg>\",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:\"auto\",positionElement:void 0,prevArrow:\"\u003Csvg version='1.1' xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' xmlns:xlink='http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink' viewBox='0 0 17 17'>\u003Cg>\u003C\u002Fg>\u003Cpath d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' \u002F>\u003C\u002Fsvg>\",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},i={weekdays:{shorthand:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],longhand:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]},months:{shorthand:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],longhand:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var t=e%100;if(t>3&&t\u003C21)return\"th\";switch(t%10){case 1:return\"st\";case 2:return\"nd\";case 3:return\"rd\";default:return\"th\"}},rangeSeparator:\" to \",weekAbbreviation:\"Wk\",scrollTitle:\"Scroll to increment\",toggleTitle:\"Click to toggle\",amPM:[\"AM\",\"PM\"],yearAriaLabel:\"Year\",monthAriaLabel:\"Month\",hourAriaLabel:\"Hour\",minuteAriaLabel:\"Minute\",time_24hr:!1},o=function(e,t){return void 0===t&&(t=2),(\"000\"+e).slice(-1*t)},r=function(e){return!0===e?1:0};function l(e,t){var n;return function(){var a=this;clearTimeout(n),n=setTimeout((function(){return e.apply(a,arguments)}),t)}}var c=function(e){return e instanceof Array?e:[e]};function d(e,t,n){if(!0===n)return e.classList.add(t);e.classList.remove(t)}function s(e,t,n){var a=window.document.createElement(e);return t=t||\"\",n=n||\"\",a.className=t,void 0!==n&&(a.textContent=n),a}function u(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function f(e,t){return t(e)?e:e.parentNode?f(e.parentNode,t):void 0}function m(e,t){var n=s(\"div\",\"numInputWrapper\"),a=s(\"input\",\"numInput \"+e),i=s(\"span\",\"arrowUp\"),o=s(\"span\",\"arrowDown\");if(-1===navigator.userAgent.indexOf(\"MSIE 9.0\")?a.type=\"number\":(a.type=\"text\",a.pattern=\"\\\\d*\"),void 0!==t)for(var r in t)a.setAttribute(r,t[r]);return n.appendChild(a),n.appendChild(i),n.appendChild(o),n}function g(e){try{return\"function\"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(t){return e.target}}var p=function(){},h=function(e,t,n){return n.months[t?\"shorthand\":\"longhand\"][e]},v={D:p,F:function(e,t,n){e.setMonth(n.months.longhand.indexOf(t))},G:function(e,t){e.setHours(parseFloat(t))},H:function(e,t){e.setHours(parseFloat(t))},J:function(e,t){e.setDate(parseFloat(t))},K:function(e,t,n){e.setHours(e.getHours()%12+12*r(new RegExp(n.amPM[1],\"i\").test(t)))},M:function(e,t,n){e.setMonth(n.months.shorthand.indexOf(t))},S:function(e,t){e.setSeconds(parseFloat(t))},U:function(e,t){return new Date(1e3*parseFloat(t))},W:function(e,t,n){var a=parseInt(t),i=new Date(e.getFullYear(),0,2+7*(a-1),0,0,0,0);return i.setDate(i.getDate()-i.getDay()+n.firstDayOfWeek),i},Y:function(e,t){e.setFullYear(parseFloat(t))},Z:function(e,t){return new Date(t)},d:function(e,t){e.setDate(parseFloat(t))},h:function(e,t){e.setHours(parseFloat(t))},i:function(e,t){e.setMinutes(parseFloat(t))},j:function(e,t){e.setDate(parseFloat(t))},l:p,m:function(e,t){e.setMonth(parseFloat(t)-1)},n:function(e,t){e.setMonth(parseFloat(t)-1)},s:function(e,t){e.setSeconds(parseFloat(t))},u:function(e,t){return new Date(parseFloat(t))},w:p,y:function(e,t){e.setFullYear(2e3+parseFloat(t))}},D={D:\"(\\\\w+)\",F:\"(\\\\w+)\",G:\"(\\\\d\\\\d|\\\\d)\",H:\"(\\\\d\\\\d|\\\\d)\",J:\"(\\\\d\\\\d|\\\\d)\\\\w+\",K:\"\",M:\"(\\\\w+)\",S:\"(\\\\d\\\\d|\\\\d)\",U:\"(.+)\",W:\"(\\\\d\\\\d|\\\\d)\",Y:\"(\\\\d{4})\",Z:\"(.+)\",d:\"(\\\\d\\\\d|\\\\d)\",h:\"(\\\\d\\\\d|\\\\d)\",i:\"(\\\\d\\\\d|\\\\d)\",j:\"(\\\\d\\\\d|\\\\d)\",l:\"(\\\\w+)\",m:\"(\\\\d\\\\d|\\\\d)\",n:\"(\\\\d\\\\d|\\\\d)\",s:\"(\\\\d\\\\d|\\\\d)\",u:\"(.+)\",w:\"(\\\\d\\\\d|\\\\d)\",y:\"(\\\\d{2})\"},w={Z:function(e){return e.toISOString()},D:function(e,t,n){return t.weekdays.shorthand[w.w(e,t,n)]},F:function(e,t,n){return h(w.n(e,t,n)-1,!1,t)},G:function(e,t,n){return o(w.h(e,t,n))},H:function(e){return o(e.getHours())},J:function(e,t){return void 0!==t.ordinal?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:function(e,t){return t.amPM[r(e.getHours()>11)]},M:function(e,t){return h(e.getMonth(),!0,t)},S:function(e){return o(e.getSeconds())},U:function(e){return e.getTime()\u002F1e3},W:function(e,t,n){return n.getWeek(e)},Y:function(e){return o(e.getFullYear(),4)},d:function(e){return o(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return o(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,t){return t.weekdays.longhand[e.getDay()]},m:function(e){return o(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var t=e.config,n=void 0===t?a:t,o=e.l10n,r=void 0===o?i:o,l=e.isMobile,c=void 0!==l&&l;return function(e,t,a){var i=a||r;return void 0===n.formatDate||c?t.split(\"\").map((function(t,a,o){return w[t]&&\"\\\\\"!==o[a-1]?w[t](e,i,n):\"\\\\\"!==t?t:\"\"})).join(\"\"):n.formatDate(e,t,i)}},C=function(e){var t=e.config,n=void 0===t?a:t,o=e.l10n,r=void 0===o?i:o;return function(e,t,i,o){if(0===e||e){var l,c=o||r,d=e;if(e instanceof Date)l=new Date(e.getTime());else if(\"string\"!=typeof e&&void 0!==e.toFixed)l=new Date(e);else if(\"string\"==typeof e){var s=t||(n||a).dateFormat,u=String(e).trim();if(\"today\"===u)l=new Date,i=!0;else if(\u002FZ$\u002F.test(u)||\u002FGMT$\u002F.test(u))l=new Date(e);else if(n&&n.parseDate)l=n.parseDate(e,s);else{l=n&&n.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var f=void 0,m=[],g=0,p=0,h=\"\";g\u003Cs.length;g++){var w=s[g],b=\"\\\\\"===w,C=\"\\\\\"===s[g-1]||b;if(D[w]&&!C){h+=D[w];var M=new RegExp(h).exec(e);M&&(f=!0)&&m[\"Y\"!==w?\"push\":\"unshift\"]({fn:v[w],val:M[++p]})}else b||(h+=\".\");m.forEach((function(e){var t=e.fn,n=e.val;return l=t(l,n,c)||l}))}l=f?l:void 0}}if(l instanceof Date&&!isNaN(l.getTime()))return!0===i&&l.setHours(0,0,0,0),l;n.errorHandler(new Error(\"Invalid date provided: \"+d))}}};function M(e,t,n){return void 0===n&&(n=!0),!1!==n?new Date(e.getTime()).setHours(0,0,0,0)-new Date(t.getTime()).setHours(0,0,0,0):e.getTime()-t.getTime()}var y=864e5;function x(e){var t=e.defaultHour,n=e.defaultMinute,a=e.defaultSeconds;if(void 0!==e.minDate){var i=e.minDate.getHours(),o=e.minDate.getMinutes(),r=e.minDate.getSeconds();t\u003Ci&&(t=i),t===i&&n\u003Co&&(n=o),t===i&&n===o&&a\u003Cr&&(a=e.minDate.getSeconds())}if(void 0!==e.maxDate){var l=e.maxDate.getHours(),c=e.maxDate.getMinutes();(t=Math.min(t,l))===l&&(n=Math.min(c,n)),t===l&&n===c&&(a=e.maxDate.getSeconds())}return{hours:t,minutes:n,seconds:a}}\"function\"!=typeof Object.assign&&(Object.assign=function(e){for(var t=[],n=1;n\u003Carguments.length;n++)t[n-1]=arguments[n];if(!e)throw TypeError(\"Cannot convert undefined or null to object\");for(var a=function(t){t&&Object.keys(t).forEach((function(n){return e[n]=t[n]}))},i=0,o=t;i\u003Co.length;i++){var r=o[i];a(r)}return e});function E(p,v){var w={config:e(e({},a),T.defaultConfig),l10n:i};function E(e){return e.bind(w)}function k(){var e=w.config;!1===e.weekNumbers&&1===e.showMonths||!0!==e.noCalendar&&window.requestAnimationFrame((function(){if(void 0!==w.calendarContainer&&(w.calendarContainer.style.visibility=\"hidden\",w.calendarContainer.style.display=\"block\"),void 0!==w.daysContainer){var t=(w.days.offsetWidth+1)*e.showMonths;w.daysContainer.style.width=t+\"px\",w.calendarContainer.style.width=t+(void 0!==w.weekWrapper?w.weekWrapper.offsetWidth:0)+\"px\",w.calendarContainer.style.removeProperty(\"visibility\"),w.calendarContainer.style.removeProperty(\"display\")}}))}function I(e){if(0===w.selectedDates.length){var t=void 0===w.config.minDate||M(new Date,w.config.minDate)>=0?new Date:new Date(w.config.minDate.getTime()),n=x(w.config);t.setHours(n.hours,n.minutes,n.seconds,t.getMilliseconds()),w.selectedDates=[t],w.latestSelectedDateObj=t}void 0!==e&&\"blur\"!==e.type&&function(e){e.preventDefault();var t=\"keydown\"===e.type,n=g(e),a=n;void 0!==w.amPM&&n===w.amPM&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]);var i=parseFloat(a.getAttribute(\"min\")),l=parseFloat(a.getAttribute(\"max\")),c=parseFloat(a.getAttribute(\"step\")),d=parseInt(a.value,10),s=e.delta||(t?38===e.which?1:-1:0),u=d+c*s;if(void 0!==a.value&&2===a.value.length){var f=a===w.hourElement,m=a===w.minuteElement;u\u003Ci?(u=l+u+r(!f)+(r(f)&&r(!w.amPM)),m&&j(void 0,-1,w.hourElement)):u>l&&(u=a===w.hourElement?u-l-r(!w.amPM):i,m&&j(void 0,1,w.hourElement)),w.amPM&&f&&(1===c?u+d===23:Math.abs(u-d)>c)&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]),a.value=o(u)}}(e);var a=w._input.value;S(),be(),w._input.value!==a&&w._debouncedChange()}function S(){if(void 0!==w.hourElement&&void 0!==w.minuteElement){var e,t,n=(parseInt(w.hourElement.value.slice(-2),10)||0)%24,a=(parseInt(w.minuteElement.value,10)||0)%60,i=void 0!==w.secondElement?(parseInt(w.secondElement.value,10)||0)%60:0;void 0!==w.amPM&&(e=n,t=w.amPM.textContent,n=e%12+12*r(t===w.l10n.amPM[1]));var o=void 0!==w.config.minTime||w.config.minDate&&w.minDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.minDate,!0);if(void 0!==w.config.maxTime||w.config.maxDate&&w.maxDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.maxDate,!0)){var l=void 0!==w.config.maxTime?w.config.maxTime:w.config.maxDate;(n=Math.min(n,l.getHours()))===l.getHours()&&(a=Math.min(a,l.getMinutes())),a===l.getMinutes()&&(i=Math.min(i,l.getSeconds()))}if(o){var c=void 0!==w.config.minTime?w.config.minTime:w.config.minDate;(n=Math.max(n,c.getHours()))===c.getHours()&&a\u003Cc.getMinutes()&&(a=c.getMinutes()),a===c.getMinutes()&&(i=Math.max(i,c.getSeconds()))}O(n,a,i)}}function _(e){var t=e||w.latestSelectedDateObj;t&&O(t.getHours(),t.getMinutes(),t.getSeconds())}function O(e,t,n){void 0!==w.latestSelectedDateObj&&w.latestSelectedDateObj.setHours(e%24,t,n||0,0),w.hourElement&&w.minuteElement&&!w.isMobile&&(w.hourElement.value=o(w.config.time_24hr?e:(12+e)%12+12*r(e%12==0)),w.minuteElement.value=o(t),void 0!==w.amPM&&(w.amPM.textContent=w.l10n.amPM[r(e>=12)]),void 0!==w.secondElement&&(w.secondElement.value=o(n)))}function F(e){var t=g(e),n=parseInt(t.value)+(e.delta||0);(n\u002F1e3>1||\"Enter\"===e.key&&!\u002F[^\\d]\u002F.test(n.toString()))&&Q(n)}function A(e,t,n,a){return t instanceof Array?t.forEach((function(t){return A(e,t,n,a)})):e instanceof Array?e.forEach((function(e){return A(e,t,n,a)})):(e.addEventListener(t,n,a),void w._handlers.push({remove:function(){return e.removeEventListener(t,n)}}))}function N(){pe(\"onChange\")}function P(e,t){var n=void 0!==e?w.parseDate(e):w.latestSelectedDateObj||(w.config.minDate&&w.config.minDate>w.now?w.config.minDate:w.config.maxDate&&w.config.maxDate\u003Cw.now?w.config.maxDate:w.now),a=w.currentYear,i=w.currentMonth;try{void 0!==n&&(w.currentYear=n.getFullYear(),w.currentMonth=n.getMonth())}catch(e){e.message=\"Invalid date supplied: \"+n,w.config.errorHandler(e)}t&&w.currentYear!==a&&(pe(\"onYearChange\"),K()),!t||w.currentYear===a&&w.currentMonth===i||pe(\"onMonthChange\"),w.redraw()}function Y(e){var t=g(e);~t.className.indexOf(\"arrow\")&&j(e,t.classList.contains(\"arrowUp\")?1:-1)}function j(e,t,n){var a=e&&g(e),i=n||a&&a.parentNode&&a.parentNode.firstChild,o=he(\"increment\");o.delta=t,i&&i.dispatchEvent(o)}function H(e,t,n,a){var i=X(t,!0),o=s(\"span\",\"flatpickr-day \"+e,t.getDate().toString());return o.dateObj=t,o.$i=a,o.setAttribute(\"aria-label\",w.formatDate(t,w.config.ariaDateFormat)),-1===e.indexOf(\"hidden\")&&0===M(t,w.now)&&(w.todayDateElem=o,o.classList.add(\"today\"),o.setAttribute(\"aria-current\",\"date\")),i?(o.tabIndex=-1,ve(t)&&(o.classList.add(\"selected\"),w.selectedDateElem=o,\"range\"===w.config.mode&&(d(o,\"startRange\",w.selectedDates[0]&&0===M(t,w.selectedDates[0],!0)),d(o,\"endRange\",w.selectedDates[1]&&0===M(t,w.selectedDates[1],!0)),\"nextMonthDay\"===e&&o.classList.add(\"inRange\")))):o.classList.add(\"flatpickr-disabled\"),\"range\"===w.config.mode&&function(e){return!(\"range\"!==w.config.mode||w.selectedDates.length\u003C2)&&(M(e,w.selectedDates[0])>=0&&M(e,w.selectedDates[1])\u003C=0)}(t)&&!ve(t)&&o.classList.add(\"inRange\"),w.weekNumbers&&1===w.config.showMonths&&\"prevMonthDay\"!==e&&n%7==1&&w.weekNumbers.insertAdjacentHTML(\"beforeend\",\"\u003Cspan class='flatpickr-day'>\"+w.config.getWeek(t)+\"\u003C\u002Fspan>\"),pe(\"onDayCreate\",o),o}function L(e){e.focus(),\"range\"===w.config.mode&&ae(e)}function W(e){for(var t=e>0?0:w.config.showMonths-1,n=e>0?w.config.showMonths:-1,a=t;a!=n;a+=e)for(var i=w.daysContainer.children[a],o=e>0?0:i.children.length-1,r=e>0?i.children.length:-1,l=o;l!=r;l+=e){var c=i.children[l];if(-1===c.className.indexOf(\"hidden\")&&X(c.dateObj))return c}}function R(e,t){var n=ee(document.activeElement||document.body),a=void 0!==e?e:n?document.activeElement:void 0!==w.selectedDateElem&&ee(w.selectedDateElem)?w.selectedDateElem:void 0!==w.todayDateElem&&ee(w.todayDateElem)?w.todayDateElem:W(t>0?1:-1);void 0===a?w._input.focus():n?function(e,t){for(var n=-1===e.className.indexOf(\"Month\")?e.dateObj.getMonth():w.currentMonth,a=t>0?w.config.showMonths:-1,i=t>0?1:-1,o=n-w.currentMonth;o!=a;o+=i)for(var r=w.daysContainer.children[o],l=n-w.currentMonth===o?e.$i+t:t\u003C0?r.children.length-1:0,c=r.children.length,d=l;d>=0&&d\u003Cc&&d!=(t>0?c:-1);d+=i){var s=r.children[d];if(-1===s.className.indexOf(\"hidden\")&&X(s.dateObj)&&Math.abs(e.$i-d)>=Math.abs(t))return L(s)}w.changeMonth(i),R(W(i),0)}(a,t):L(a)}function B(e,t){for(var n=(new Date(e,t,1).getDay()-w.l10n.firstDayOfWeek+7)%7,a=w.utils.getDaysInMonth((t-1+12)%12,e),i=w.utils.getDaysInMonth(t,e),o=window.document.createDocumentFragment(),r=w.config.showMonths>1,l=r?\"prevMonthDay hidden\":\"prevMonthDay\",c=r?\"nextMonthDay hidden\":\"nextMonthDay\",d=a+1-n,u=0;d\u003C=a;d++,u++)o.appendChild(H(l,new Date(e,t-1,d),d,u));for(d=1;d\u003C=i;d++,u++)o.appendChild(H(\"\",new Date(e,t,d),d,u));for(var f=i+1;f\u003C=42-n&&(1===w.config.showMonths||u%7!=0);f++,u++)o.appendChild(H(c,new Date(e,t+1,f%i),f,u));var m=s(\"div\",\"dayContainer\");return m.appendChild(o),m}function J(){if(void 0!==w.daysContainer){u(w.daysContainer),w.weekNumbers&&u(w.weekNumbers);for(var e=document.createDocumentFragment(),t=0;t\u003Cw.config.showMonths;t++){var n=new Date(w.currentYear,w.currentMonth,1);n.setMonth(w.currentMonth+t),e.appendChild(B(n.getFullYear(),n.getMonth()))}w.daysContainer.appendChild(e),w.days=w.daysContainer.firstChild,\"range\"===w.config.mode&&1===w.selectedDates.length&&ae()}}function K(){if(!(w.config.showMonths>1||\"dropdown\"!==w.config.monthSelectorType)){var e=function(e){return!(void 0!==w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&e\u003Cw.config.minDate.getMonth())&&!(void 0!==w.config.maxDate&&w.currentYear===w.config.maxDate.getFullYear()&&e>w.config.maxDate.getMonth())};w.monthsDropdownContainer.tabIndex=-1,w.monthsDropdownContainer.innerHTML=\"\";for(var t=0;t\u003C12;t++)if(e(t)){var n=s(\"option\",\"flatpickr-monthDropdown-month\");n.value=new Date(w.currentYear,t).getMonth().toString(),n.textContent=h(t,w.config.shorthandCurrentMonth,w.l10n),n.tabIndex=-1,w.currentMonth===t&&(n.selected=!0),w.monthsDropdownContainer.appendChild(n)}}}function U(){var e,t=s(\"div\",\"flatpickr-month\"),n=window.document.createDocumentFragment();w.config.showMonths>1||\"static\"===w.config.monthSelectorType?e=s(\"span\",\"cur-month\"):(w.monthsDropdownContainer=s(\"select\",\"flatpickr-monthDropdown-months\"),w.monthsDropdownContainer.setAttribute(\"aria-label\",w.l10n.monthAriaLabel),A(w.monthsDropdownContainer,\"change\",(function(e){var t=g(e),n=parseInt(t.value,10);w.changeMonth(n-w.currentMonth),pe(\"onMonthChange\")})),K(),e=w.monthsDropdownContainer);var a=m(\"cur-year\",{tabindex:\"-1\"}),i=a.getElementsByTagName(\"input\")[0];i.setAttribute(\"aria-label\",w.l10n.yearAriaLabel),w.config.minDate&&i.setAttribute(\"min\",w.config.minDate.getFullYear().toString()),w.config.maxDate&&(i.setAttribute(\"max\",w.config.maxDate.getFullYear().toString()),i.disabled=!!w.config.minDate&&w.config.minDate.getFullYear()===w.config.maxDate.getFullYear());var o=s(\"div\",\"flatpickr-current-month\");return o.appendChild(e),o.appendChild(a),n.appendChild(o),t.appendChild(n),{container:t,yearElement:i,monthElement:e}}function q(){u(w.monthNav),w.monthNav.appendChild(w.prevMonthNav),w.config.showMonths&&(w.yearElements=[],w.monthElements=[]);for(var e=w.config.showMonths;e--;){var t=U();w.yearElements.push(t.yearElement),w.monthElements.push(t.monthElement),w.monthNav.appendChild(t.container)}w.monthNav.appendChild(w.nextMonthNav)}function $(){w.weekdayContainer?u(w.weekdayContainer):w.weekdayContainer=s(\"div\",\"flatpickr-weekdays\");for(var e=w.config.showMonths;e--;){var t=s(\"div\",\"flatpickr-weekdaycontainer\");w.weekdayContainer.appendChild(t)}return z(),w.weekdayContainer}function z(){if(w.weekdayContainer){var e=w.l10n.firstDayOfWeek,n=t(w.l10n.weekdays.shorthand);e>0&&e\u003Cn.length&&(n=t(n.splice(e,n.length),n.splice(0,e)));for(var a=w.config.showMonths;a--;)w.weekdayContainer.children[a].innerHTML=\"\\n      \u003Cspan class='flatpickr-weekday'>\\n        \"+n.join(\"\u003C\u002Fspan>\u003Cspan class='flatpickr-weekday'>\")+\"\\n      \u003C\u002Fspan>\\n      \"}}function G(e,t){void 0===t&&(t=!0);var n=t?e:e-w.currentMonth;n\u003C0&&!0===w._hidePrevMonthArrow||n>0&&!0===w._hideNextMonthArrow||(w.currentMonth+=n,(w.currentMonth\u003C0||w.currentMonth>11)&&(w.currentYear+=w.currentMonth>11?1:-1,w.currentMonth=(w.currentMonth+12)%12,pe(\"onYearChange\"),K()),J(),pe(\"onMonthChange\"),De())}function V(e){return!(!w.config.appendTo||!w.config.appendTo.contains(e))||w.calendarContainer.contains(e)}function Z(e){if(w.isOpen&&!w.config.inline){var t=g(e),n=V(t),a=t===w.input||t===w.altInput||w.element.contains(t)||e.path&&e.path.indexOf&&(~e.path.indexOf(w.input)||~e.path.indexOf(w.altInput)),i=\"blur\"===e.type?a&&e.relatedTarget&&!V(e.relatedTarget):!a&&!n&&!V(e.relatedTarget),o=!w.config.ignoredFocusElements.some((function(e){return e.contains(t)}));i&&o&&(void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement&&\"\"!==w.input.value&&void 0!==w.input.value&&I(),w.close(),w.config&&\"range\"===w.config.mode&&1===w.selectedDates.length&&(w.clear(!1),w.redraw()))}}function Q(e){if(!(!e||w.config.minDate&&e\u003Cw.config.minDate.getFullYear()||w.config.maxDate&&e>w.config.maxDate.getFullYear())){var t=e,n=w.currentYear!==t;w.currentYear=t||w.currentYear,w.config.maxDate&&w.currentYear===w.config.maxDate.getFullYear()?w.currentMonth=Math.min(w.config.maxDate.getMonth(),w.currentMonth):w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&(w.currentMonth=Math.max(w.config.minDate.getMonth(),w.currentMonth)),n&&(w.redraw(),pe(\"onYearChange\"),K())}}function X(e,t){var n;void 0===t&&(t=!0);var a=w.parseDate(e,void 0,t);if(w.config.minDate&&a&&M(a,w.config.minDate,void 0!==t?t:!w.minDateHasTime)\u003C0||w.config.maxDate&&a&&M(a,w.config.maxDate,void 0!==t?t:!w.maxDateHasTime)>0)return!1;if(!w.config.enable&&0===w.config.disable.length)return!0;if(void 0===a)return!1;for(var i=!!w.config.enable,o=null!==(n=w.config.enable)&&void 0!==n?n:w.config.disable,r=0,l=void 0;r\u003Co.length;r++){if(\"function\"==typeof(l=o[r])&&l(a))return i;if(l instanceof Date&&void 0!==a&&l.getTime()===a.getTime())return i;if(\"string\"==typeof l){var c=w.parseDate(l,void 0,!0);return c&&c.getTime()===a.getTime()?i:!i}if(\"object\"==typeof l&&void 0!==a&&l.from&&l.to&&a.getTime()>=l.from.getTime()&&a.getTime()\u003C=l.to.getTime())return i}return!i}function ee(e){return void 0!==w.daysContainer&&(-1===e.className.indexOf(\"hidden\")&&-1===e.className.indexOf(\"flatpickr-disabled\")&&w.daysContainer.contains(e))}function te(e){!(e.target===w._input)||!(w.selectedDates.length>0||w._input.value.length>0)||e.relatedTarget&&V(e.relatedTarget)||w.setDate(w._input.value,!0,e.target===w.altInput?w.config.altFormat:w.config.dateFormat)}function ne(e){var t=g(e),n=w.config.wrap?p.contains(t):t===w._input,a=w.config.allowInput,i=w.isOpen&&(!a||!n),o=w.config.inline&&n&&!a;if(13===e.keyCode&&n){if(a)return w.setDate(w._input.value,!0,t===w.altInput?w.config.altFormat:w.config.dateFormat),t.blur();w.open()}else if(V(t)||i||o){var r=!!w.timeContainer&&w.timeContainer.contains(t);switch(e.keyCode){case 13:r?(e.preventDefault(),I(),se()):ue(e);break;case 27:e.preventDefault(),se();break;case 8:case 46:n&&!w.config.allowInput&&(e.preventDefault(),w.clear());break;case 37:case 39:if(r||n)w.hourElement&&w.hourElement.focus();else if(e.preventDefault(),void 0!==w.daysContainer&&(!1===a||document.activeElement&&ee(document.activeElement))){var l=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),G(l),R(W(1),0)):R(void 0,l)}break;case 38:case 40:e.preventDefault();var c=40===e.keyCode?1:-1;w.daysContainer&&void 0!==t.$i||t===w.input||t===w.altInput?e.ctrlKey?(e.stopPropagation(),Q(w.currentYear-c),R(W(1),0)):r||R(void 0,7*c):t===w.currentYearElement?Q(w.currentYear-c):w.config.enableTime&&(!r&&w.hourElement&&w.hourElement.focus(),I(e),w._debouncedChange());break;case 9:if(r){var d=[w.hourElement,w.minuteElement,w.secondElement,w.amPM].concat(w.pluginElements).filter((function(e){return e})),s=d.indexOf(t);if(-1!==s){var u=d[s+(e.shiftKey?-1:1)];e.preventDefault(),(u||w._input).focus()}}else!w.config.noCalendar&&w.daysContainer&&w.daysContainer.contains(t)&&e.shiftKey&&(e.preventDefault(),w._input.focus())}}if(void 0!==w.amPM&&t===w.amPM)switch(e.key){case w.l10n.amPM[0].charAt(0):case w.l10n.amPM[0].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[0],S(),be();break;case w.l10n.amPM[1].charAt(0):case w.l10n.amPM[1].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[1],S(),be()}(n||V(t))&&pe(\"onKeyDown\",e)}function ae(e){if(1===w.selectedDates.length&&(!e||e.classList.contains(\"flatpickr-day\")&&!e.classList.contains(\"flatpickr-disabled\"))){for(var t=e?e.dateObj.getTime():w.days.firstElementChild.dateObj.getTime(),n=w.parseDate(w.selectedDates[0],void 0,!0).getTime(),a=Math.min(t,w.selectedDates[0].getTime()),i=Math.max(t,w.selectedDates[0].getTime()),o=!1,r=0,l=0,c=a;c\u003Ci;c+=y)X(new Date(c),!0)||(o=o||c>a&&c\u003Ci,c\u003Cn&&(!r||c>r)?r=c:c>n&&(!l||c\u003Cl)&&(l=c));for(var d=0;d\u003Cw.config.showMonths;d++)for(var s=w.daysContainer.children[d],u=function(a,i){var c,d,u,f=s.children[a],m=f.dateObj.getTime(),g=r>0&&m\u003Cr||l>0&&m>l;return g?(f.classList.add(\"notAllowed\"),[\"inRange\",\"startRange\",\"endRange\"].forEach((function(e){f.classList.remove(e)})),\"continue\"):o&&!g?\"continue\":([\"startRange\",\"inRange\",\"endRange\",\"notAllowed\"].forEach((function(e){f.classList.remove(e)})),void(void 0!==e&&(e.classList.add(t\u003C=w.selectedDates[0].getTime()?\"startRange\":\"endRange\"),n\u003Ct&&m===n?f.classList.add(\"startRange\"):n>t&&m===n&&f.classList.add(\"endRange\"),m>=r&&(0===l||m\u003C=l)&&(d=n,u=t,(c=m)>Math.min(d,u)&&c\u003CMath.max(d,u))&&f.classList.add(\"inRange\"))))},f=0,m=s.children.length;f\u003Cm;f++)u(f)}}function ie(){!w.isOpen||w.config.static||w.config.inline||ce()}function oe(e){return function(t){var n=w.config[\"_\"+e+\"Date\"]=w.parseDate(t,w.config.dateFormat),a=w.config[\"_\"+(\"min\"===e?\"max\":\"min\")+\"Date\"];void 0!==n&&(w[\"min\"===e?\"minDateHasTime\":\"maxDateHasTime\"]=n.getHours()>0||n.getMinutes()>0||n.getSeconds()>0),w.selectedDates&&(w.selectedDates=w.selectedDates.filter((function(e){return X(e)})),w.selectedDates.length||\"min\"!==e||_(n),be()),w.daysContainer&&(de(),void 0!==n?w.currentYearElement[e]=n.getFullYear().toString():w.currentYearElement.removeAttribute(e),w.currentYearElement.disabled=!!a&&void 0!==n&&a.getFullYear()===n.getFullYear())}}function re(){return w.config.wrap?p.querySelector(\"[data-input]\"):p}function le(){\"object\"!=typeof w.config.locale&&void 0===T.l10ns[w.config.locale]&&w.config.errorHandler(new Error(\"flatpickr: invalid locale \"+w.config.locale)),w.l10n=e(e({},T.l10ns.default),\"object\"==typeof w.config.locale?w.config.locale:\"default\"!==w.config.locale?T.l10ns[w.config.locale]:void 0),D.K=\"(\"+w.l10n.amPM[0]+\"|\"+w.l10n.amPM[1]+\"|\"+w.l10n.amPM[0].toLowerCase()+\"|\"+w.l10n.amPM[1].toLowerCase()+\")\",void 0===e(e({},v),JSON.parse(JSON.stringify(p.dataset||{}))).time_24hr&&void 0===T.defaultConfig.time_24hr&&(w.config.time_24hr=w.l10n.time_24hr),w.formatDate=b(w),w.parseDate=C({config:w.config,l10n:w.l10n})}function ce(e){if(\"function\"!=typeof w.config.position){if(void 0!==w.calendarContainer){pe(\"onPreCalendarPosition\");var t=e||w._positionElement,n=Array.prototype.reduce.call(w.calendarContainer.children,(function(e,t){return e+t.offsetHeight}),0),a=w.calendarContainer.offsetWidth,i=w.config.position.split(\" \"),o=i[0],r=i.length>1?i[1]:null,l=t.getBoundingClientRect(),c=window.innerHeight-l.bottom,s=\"above\"===o||\"below\"!==o&&c\u003Cn&&l.top>n,u=window.pageYOffset+l.top+(s?-n-2:t.offsetHeight+2);if(d(w.calendarContainer,\"arrowTop\",!s),d(w.calendarContainer,\"arrowBottom\",s),!w.config.inline){var f=window.pageXOffset+l.left,m=!1,g=!1;\"center\"===r?(f-=(a-l.width)\u002F2,m=!0):\"right\"===r&&(f-=a-l.width,g=!0),d(w.calendarContainer,\"arrowLeft\",!m&&!g),d(w.calendarContainer,\"arrowCenter\",m),d(w.calendarContainer,\"arrowRight\",g);var p=window.document.body.offsetWidth-(window.pageXOffset+l.right),h=f+a>window.document.body.offsetWidth,v=p+a>window.document.body.offsetWidth;if(d(w.calendarContainer,\"rightMost\",h),!w.config.static)if(w.calendarContainer.style.top=u+\"px\",h)if(v){var D=function(){for(var e=null,t=0;t\u003Cdocument.styleSheets.length;t++){var n=document.styleSheets[t];try{n.cssRules}catch(e){continue}e=n;break}return null!=e?e:(a=document.createElement(\"style\"),document.head.appendChild(a),a.sheet);var a}();if(void 0===D)return;var b=window.document.body.offsetWidth,C=Math.max(0,b\u002F2-a\u002F2),M=D.cssRules.length,y=\"{left:\"+l.left+\"px;right:auto;}\";d(w.calendarContainer,\"rightMost\",!1),d(w.calendarContainer,\"centerMost\",!0),D.insertRule(\".flatpickr-calendar.centerMost:before,.flatpickr-calendar.centerMost:after\"+y,M),w.calendarContainer.style.left=C+\"px\",w.calendarContainer.style.right=\"auto\"}else w.calendarContainer.style.left=\"auto\",w.calendarContainer.style.right=p+\"px\";else w.calendarContainer.style.left=f+\"px\",w.calendarContainer.style.right=\"auto\"}}}else w.config.position(w,e)}function de(){w.config.noCalendar||w.isMobile||(K(),De(),J())}function se(){w._input.focus(),-1!==window.navigator.userAgent.indexOf(\"MSIE\")||void 0!==navigator.msMaxTouchPoints?setTimeout(w.close,0):w.close()}function ue(e){e.preventDefault(),e.stopPropagation();var t=f(g(e),(function(e){return e.classList&&e.classList.contains(\"flatpickr-day\")&&!e.classList.contains(\"flatpickr-disabled\")&&!e.classList.contains(\"notAllowed\")}));if(void 0!==t){var n=t,a=w.latestSelectedDateObj=new Date(n.dateObj.getTime()),i=(a.getMonth()\u003Cw.currentMonth||a.getMonth()>w.currentMonth+w.config.showMonths-1)&&\"range\"!==w.config.mode;if(w.selectedDateElem=n,\"single\"===w.config.mode)w.selectedDates=[a];else if(\"multiple\"===w.config.mode){var o=ve(a);o?w.selectedDates.splice(parseInt(o),1):w.selectedDates.push(a)}else\"range\"===w.config.mode&&(2===w.selectedDates.length&&w.clear(!1,!1),w.latestSelectedDateObj=a,w.selectedDates.push(a),0!==M(a,w.selectedDates[0],!0)&&w.selectedDates.sort((function(e,t){return e.getTime()-t.getTime()})));if(S(),i){var r=w.currentYear!==a.getFullYear();w.currentYear=a.getFullYear(),w.currentMonth=a.getMonth(),r&&(pe(\"onYearChange\"),K()),pe(\"onMonthChange\")}if(De(),J(),be(),i||\"range\"===w.config.mode||1!==w.config.showMonths?void 0!==w.selectedDateElem&&void 0===w.hourElement&&w.selectedDateElem&&w.selectedDateElem.focus():L(n),void 0!==w.hourElement&&void 0!==w.hourElement&&w.hourElement.focus(),w.config.closeOnSelect){var l=\"single\"===w.config.mode&&!w.config.enableTime,c=\"range\"===w.config.mode&&2===w.selectedDates.length&&!w.config.enableTime;(l||c)&&se()}N()}}w.parseDate=C({config:w.config,l10n:w.l10n}),w._handlers=[],w.pluginElements=[],w.loadedPlugins=[],w._bind=A,w._setHoursFromDate=_,w._positionCalendar=ce,w.changeMonth=G,w.changeYear=Q,w.clear=function(e,t){void 0===e&&(e=!0);void 0===t&&(t=!0);w.input.value=\"\",void 0!==w.altInput&&(w.altInput.value=\"\");void 0!==w.mobileInput&&(w.mobileInput.value=\"\");w.selectedDates=[],w.latestSelectedDateObj=void 0,!0===t&&(w.currentYear=w._initialDate.getFullYear(),w.currentMonth=w._initialDate.getMonth());if(!0===w.config.enableTime){var n=x(w.config),a=n.hours,i=n.minutes,o=n.seconds;O(a,i,o)}w.redraw(),e&&pe(\"onChange\")},w.close=function(){w.isOpen=!1,w.isMobile||(void 0!==w.calendarContainer&&w.calendarContainer.classList.remove(\"open\"),void 0!==w._input&&w._input.classList.remove(\"active\"));pe(\"onClose\")},w._createElement=s,w.destroy=function(){void 0!==w.config&&pe(\"onDestroy\");for(var e=w._handlers.length;e--;)w._handlers[e].remove();if(w._handlers=[],w.mobileInput)w.mobileInput.parentNode&&w.mobileInput.parentNode.removeChild(w.mobileInput),w.mobileInput=void 0;else if(w.calendarContainer&&w.calendarContainer.parentNode)if(w.config.static&&w.calendarContainer.parentNode){var t=w.calendarContainer.parentNode;if(t.lastChild&&t.removeChild(t.lastChild),t.parentNode){for(;t.firstChild;)t.parentNode.insertBefore(t.firstChild,t);t.parentNode.removeChild(t)}}else w.calendarContainer.parentNode.removeChild(w.calendarContainer);w.altInput&&(w.input.type=\"text\",w.altInput.parentNode&&w.altInput.parentNode.removeChild(w.altInput),delete w.altInput);w.input&&(w.input.type=w.input._type,w.input.classList.remove(\"flatpickr-input\"),w.input.removeAttribute(\"readonly\"));[\"_showTimeInput\",\"latestSelectedDateObj\",\"_hideNextMonthArrow\",\"_hidePrevMonthArrow\",\"__hideNextMonthArrow\",\"__hidePrevMonthArrow\",\"isMobile\",\"isOpen\",\"selectedDateElem\",\"minDateHasTime\",\"maxDateHasTime\",\"days\",\"daysContainer\",\"_input\",\"_positionElement\",\"innerContainer\",\"rContainer\",\"monthNav\",\"todayDateElem\",\"calendarContainer\",\"weekdayContainer\",\"prevMonthNav\",\"nextMonthNav\",\"monthsDropdownContainer\",\"currentMonthElement\",\"currentYearElement\",\"navigationCurrentMonth\",\"selectedDateElem\",\"config\"].forEach((function(e){try{delete w[e]}catch(e){}}))},w.isEnabled=X,w.jumpToDate=P,w.open=function(e,t){void 0===t&&(t=w._positionElement);if(!0===w.isMobile){if(e){e.preventDefault();var n=g(e);n&&n.blur()}return void 0!==w.mobileInput&&(w.mobileInput.focus(),w.mobileInput.click()),void pe(\"onOpen\")}if(w._input.disabled||w.config.inline)return;var a=w.isOpen;w.isOpen=!0,a||(w.calendarContainer.classList.add(\"open\"),w._input.classList.add(\"active\"),pe(\"onOpen\"),ce(t));!0===w.config.enableTime&&!0===w.config.noCalendar&&(!1!==w.config.allowInput||void 0!==e&&w.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return w.hourElement.select()}),50))},w.redraw=de,w.set=function(e,t){if(null!==e&&\"object\"==typeof e)for(var a in Object.assign(w.config,e),e)void 0!==fe[a]&&fe[a].forEach((function(e){return e()}));else w.config[e]=t,void 0!==fe[e]?fe[e].forEach((function(e){return e()})):n.indexOf(e)>-1&&(w.config[e]=c(t));w.redraw(),be(!0)},w.setDate=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=w.config.dateFormat);if(0!==e&&!e||e instanceof Array&&0===e.length)return w.clear(t);me(e,n),w.latestSelectedDateObj=w.selectedDates[w.selectedDates.length-1],w.redraw(),P(void 0,t),_(),0===w.selectedDates.length&&w.clear(!1);be(t),t&&pe(\"onChange\")},w.toggle=function(e){if(!0===w.isOpen)return w.close();w.open(e)};var fe={locale:[le,z],showMonths:[q,k,$],minDate:[P],maxDate:[P],clickOpens:[function(){!0===w.config.clickOpens?(A(w._input,\"focus\",w.open),A(w._input,\"click\",w.open)):(w._input.removeEventListener(\"focus\",w.open),w._input.removeEventListener(\"click\",w.open))}]};function me(e,t){var n=[];if(e instanceof Array)n=e.map((function(e){return w.parseDate(e,t)}));else if(e instanceof Date||\"number\"==typeof e)n=[w.parseDate(e,t)];else if(\"string\"==typeof e)switch(w.config.mode){case\"single\":case\"time\":n=[w.parseDate(e,t)];break;case\"multiple\":n=e.split(w.config.conjunction).map((function(e){return w.parseDate(e,t)}));break;case\"range\":n=e.split(w.l10n.rangeSeparator).map((function(e){return w.parseDate(e,t)}))}else w.config.errorHandler(new Error(\"Invalid date supplied: \"+JSON.stringify(e)));w.selectedDates=w.config.allowInvalidPreload?n:n.filter((function(e){return e instanceof Date&&X(e,!1)})),\"range\"===w.config.mode&&w.selectedDates.sort((function(e,t){return e.getTime()-t.getTime()}))}function ge(e){return e.slice().map((function(e){return\"string\"==typeof e||\"number\"==typeof e||e instanceof Date?w.parseDate(e,void 0,!0):e&&\"object\"==typeof e&&e.from&&e.to?{from:w.parseDate(e.from,void 0),to:w.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function pe(e,t){if(void 0!==w.config){var n=w.config[e];if(void 0!==n&&n.length>0)for(var a=0;n[a]&&a\u003Cn.length;a++)n[a](w.selectedDates,w.input.value,w,t);\"onChange\"===e&&(w.input.dispatchEvent(he(\"change\")),w.input.dispatchEvent(he(\"input\")))}}function he(e){var t=document.createEvent(\"Event\");return t.initEvent(e,!0,!0),t}function ve(e){for(var t=0;t\u003Cw.selectedDates.length;t++)if(0===M(w.selectedDates[t],e))return\"\"+t;return!1}function De(){w.config.noCalendar||w.isMobile||!w.monthNav||(w.yearElements.forEach((function(e,t){var n=new Date(w.currentYear,w.currentMonth,1);n.setMonth(w.currentMonth+t),w.config.showMonths>1||\"static\"===w.config.monthSelectorType?w.monthElements[t].textContent=h(n.getMonth(),w.config.shorthandCurrentMonth,w.l10n)+\" \":w.monthsDropdownContainer.value=n.getMonth().toString(),e.value=n.getFullYear().toString()})),w._hidePrevMonthArrow=void 0!==w.config.minDate&&(w.currentYear===w.config.minDate.getFullYear()?w.currentMonth\u003C=w.config.minDate.getMonth():w.currentYear\u003Cw.config.minDate.getFullYear()),w._hideNextMonthArrow=void 0!==w.config.maxDate&&(w.currentYear===w.config.maxDate.getFullYear()?w.currentMonth+1>w.config.maxDate.getMonth():w.currentYear>w.config.maxDate.getFullYear()))}function we(e){return w.selectedDates.map((function(t){return w.formatDate(t,e)})).filter((function(e,t,n){return\"range\"!==w.config.mode||w.config.enableTime||n.indexOf(e)===t})).join(\"range\"!==w.config.mode?w.config.conjunction:w.l10n.rangeSeparator)}function be(e){void 0===e&&(e=!0),void 0!==w.mobileInput&&w.mobileFormatStr&&(w.mobileInput.value=void 0!==w.latestSelectedDateObj?w.formatDate(w.latestSelectedDateObj,w.mobileFormatStr):\"\"),w.input.value=we(w.config.dateFormat),void 0!==w.altInput&&(w.altInput.value=we(w.config.altFormat)),!1!==e&&pe(\"onValueUpdate\")}function Ce(e){var t=g(e),n=w.prevMonthNav.contains(t),a=w.nextMonthNav.contains(t);n||a?G(n?-1:1):w.yearElements.indexOf(t)>=0?t.select():t.classList.contains(\"arrowUp\")?w.changeYear(w.currentYear+1):t.classList.contains(\"arrowDown\")&&w.changeYear(w.currentYear-1)}return function(){w.element=w.input=p,w.isOpen=!1,function(){var t=[\"wrap\",\"weekNumbers\",\"allowInput\",\"allowInvalidPreload\",\"clickOpens\",\"time_24hr\",\"enableTime\",\"noCalendar\",\"altInput\",\"shorthandCurrentMonth\",\"inline\",\"static\",\"enableSeconds\",\"disableMobile\"],i=e(e({},JSON.parse(JSON.stringify(p.dataset||{}))),v),o={};w.config.parseDate=i.parseDate,w.config.formatDate=i.formatDate,Object.defineProperty(w.config,\"enable\",{get:function(){return w.config._enable},set:function(e){w.config._enable=ge(e)}}),Object.defineProperty(w.config,\"disable\",{get:function(){return w.config._disable},set:function(e){w.config._disable=ge(e)}});var r=\"time\"===i.mode;if(!i.dateFormat&&(i.enableTime||r)){var l=T.defaultConfig.dateFormat||a.dateFormat;o.dateFormat=i.noCalendar||r?\"H:i\"+(i.enableSeconds?\":S\":\"\"):l+\" H:i\"+(i.enableSeconds?\":S\":\"\")}if(i.altInput&&(i.enableTime||r)&&!i.altFormat){var d=T.defaultConfig.altFormat||a.altFormat;o.altFormat=i.noCalendar||r?\"h:i\"+(i.enableSeconds?\":S K\":\" K\"):d+\" h:i\"+(i.enableSeconds?\":S\":\"\")+\" K\"}Object.defineProperty(w.config,\"minDate\",{get:function(){return w.config._minDate},set:oe(\"min\")}),Object.defineProperty(w.config,\"maxDate\",{get:function(){return w.config._maxDate},set:oe(\"max\")});var s=function(e){return function(t){w.config[\"min\"===e?\"_minTime\":\"_maxTime\"]=w.parseDate(t,\"H:i:S\")}};Object.defineProperty(w.config,\"minTime\",{get:function(){return w.config._minTime},set:s(\"min\")}),Object.defineProperty(w.config,\"maxTime\",{get:function(){return w.config._maxTime},set:s(\"max\")}),\"time\"===i.mode&&(w.config.noCalendar=!0,w.config.enableTime=!0);Object.assign(w.config,o,i);for(var u=0;u\u003Ct.length;u++)w.config[t[u]]=!0===w.config[t[u]]||\"true\"===w.config[t[u]];n.filter((function(e){return void 0!==w.config[e]})).forEach((function(e){w.config[e]=c(w.config[e]||[]).map(E)})),w.isMobile=!w.config.disableMobile&&!w.config.inline&&\"single\"===w.config.mode&&!w.config.disable.length&&!w.config.enable&&!w.config.weekNumbers&&\u002FAndroid|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\u002Fi.test(navigator.userAgent);for(u=0;u\u003Cw.config.plugins.length;u++){var f=w.config.plugins[u](w)||{};for(var m in f)n.indexOf(m)>-1?w.config[m]=c(f[m]).map(E).concat(w.config[m]):void 0===i[m]&&(w.config[m]=f[m])}i.altInputClass||(w.config.altInputClass=re().className+\" \"+w.config.altInputClass);pe(\"onParseConfig\")}(),le(),function(){if(w.input=re(),!w.input)return void w.config.errorHandler(new Error(\"Invalid input element specified\"));w.input._type=w.input.type,w.input.type=\"text\",w.input.classList.add(\"flatpickr-input\"),w._input=w.input,w.config.altInput&&(w.altInput=s(w.input.nodeName,w.config.altInputClass),w._input=w.altInput,w.altInput.placeholder=w.input.placeholder,w.altInput.disabled=w.input.disabled,w.altInput.required=w.input.required,w.altInput.tabIndex=w.input.tabIndex,w.altInput.type=\"text\",w.input.setAttribute(\"type\",\"hidden\"),!w.config.static&&w.input.parentNode&&w.input.parentNode.insertBefore(w.altInput,w.input.nextSibling));w.config.allowInput||w._input.setAttribute(\"readonly\",\"readonly\");w._positionElement=w.config.positionElement||w._input}(),function(){w.selectedDates=[],w.now=w.parseDate(w.config.now)||new Date;var e=w.config.defaultDate||(\"INPUT\"!==w.input.nodeName&&\"TEXTAREA\"!==w.input.nodeName||!w.input.placeholder||w.input.value!==w.input.placeholder?w.input.value:null);e&&me(e,w.config.dateFormat);w._initialDate=w.selectedDates.length>0?w.selectedDates[0]:w.config.minDate&&w.config.minDate.getTime()>w.now.getTime()?w.config.minDate:w.config.maxDate&&w.config.maxDate.getTime()\u003Cw.now.getTime()?w.config.maxDate:w.now,w.currentYear=w._initialDate.getFullYear(),w.currentMonth=w._initialDate.getMonth(),w.selectedDates.length>0&&(w.latestSelectedDateObj=w.selectedDates[0]);void 0!==w.config.minTime&&(w.config.minTime=w.parseDate(w.config.minTime,\"H:i\"));void 0!==w.config.maxTime&&(w.config.maxTime=w.parseDate(w.config.maxTime,\"H:i\"));w.minDateHasTime=!!w.config.minDate&&(w.config.minDate.getHours()>0||w.config.minDate.getMinutes()>0||w.config.minDate.getSeconds()>0),w.maxDateHasTime=!!w.config.maxDate&&(w.config.maxDate.getHours()>0||w.config.maxDate.getMinutes()>0||w.config.maxDate.getSeconds()>0)}(),w.utils={getDaysInMonth:function(e,t){return void 0===e&&(e=w.currentMonth),void 0===t&&(t=w.currentYear),1===e&&(t%4==0&&t%100!=0||t%400==0)?29:w.l10n.daysInMonth[e]}},w.isMobile||function(){var e=window.document.createDocumentFragment();if(w.calendarContainer=s(\"div\",\"flatpickr-calendar\"),w.calendarContainer.tabIndex=-1,!w.config.noCalendar){if(e.appendChild((w.monthNav=s(\"div\",\"flatpickr-months\"),w.yearElements=[],w.monthElements=[],w.prevMonthNav=s(\"span\",\"flatpickr-prev-month\"),w.prevMonthNav.innerHTML=w.config.prevArrow,w.nextMonthNav=s(\"span\",\"flatpickr-next-month\"),w.nextMonthNav.innerHTML=w.config.nextArrow,q(),Object.defineProperty(w,\"_hidePrevMonthArrow\",{get:function(){return w.__hidePrevMonthArrow},set:function(e){w.__hidePrevMonthArrow!==e&&(d(w.prevMonthNav,\"flatpickr-disabled\",e),w.__hidePrevMonthArrow=e)}}),Object.defineProperty(w,\"_hideNextMonthArrow\",{get:function(){return w.__hideNextMonthArrow},set:function(e){w.__hideNextMonthArrow!==e&&(d(w.nextMonthNav,\"flatpickr-disabled\",e),w.__hideNextMonthArrow=e)}}),w.currentYearElement=w.yearElements[0],De(),w.monthNav)),w.innerContainer=s(\"div\",\"flatpickr-innerContainer\"),w.config.weekNumbers){var t=function(){w.calendarContainer.classList.add(\"hasWeeks\");var e=s(\"div\",\"flatpickr-weekwrapper\");e.appendChild(s(\"span\",\"flatpickr-weekday\",w.l10n.weekAbbreviation));var t=s(\"div\",\"flatpickr-weeks\");return e.appendChild(t),{weekWrapper:e,weekNumbers:t}}(),n=t.weekWrapper,a=t.weekNumbers;w.innerContainer.appendChild(n),w.weekNumbers=a,w.weekWrapper=n}w.rContainer=s(\"div\",\"flatpickr-rContainer\"),w.rContainer.appendChild($()),w.daysContainer||(w.daysContainer=s(\"div\",\"flatpickr-days\"),w.daysContainer.tabIndex=-1),J(),w.rContainer.appendChild(w.daysContainer),w.innerContainer.appendChild(w.rContainer),e.appendChild(w.innerContainer)}w.config.enableTime&&e.appendChild(function(){w.calendarContainer.classList.add(\"hasTime\"),w.config.noCalendar&&w.calendarContainer.classList.add(\"noCalendar\");var e=x(w.config);w.timeContainer=s(\"div\",\"flatpickr-time\"),w.timeContainer.tabIndex=-1;var t=s(\"span\",\"flatpickr-time-separator\",\":\"),n=m(\"flatpickr-hour\",{\"aria-label\":w.l10n.hourAriaLabel});w.hourElement=n.getElementsByTagName(\"input\")[0];var a=m(\"flatpickr-minute\",{\"aria-label\":w.l10n.minuteAriaLabel});w.minuteElement=a.getElementsByTagName(\"input\")[0],w.hourElement.tabIndex=w.minuteElement.tabIndex=-1,w.hourElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getHours():w.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),w.minuteElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getMinutes():e.minutes),w.hourElement.setAttribute(\"step\",w.config.hourIncrement.toString()),w.minuteElement.setAttribute(\"step\",w.config.minuteIncrement.toString()),w.hourElement.setAttribute(\"min\",w.config.time_24hr?\"0\":\"1\"),w.hourElement.setAttribute(\"max\",w.config.time_24hr?\"23\":\"12\"),w.hourElement.setAttribute(\"maxlength\",\"2\"),w.minuteElement.setAttribute(\"min\",\"0\"),w.minuteElement.setAttribute(\"max\",\"59\"),w.minuteElement.setAttribute(\"maxlength\",\"2\"),w.timeContainer.appendChild(n),w.timeContainer.appendChild(t),w.timeContainer.appendChild(a),w.config.time_24hr&&w.timeContainer.classList.add(\"time24hr\");if(w.config.enableSeconds){w.timeContainer.classList.add(\"hasSeconds\");var i=m(\"flatpickr-second\");w.secondElement=i.getElementsByTagName(\"input\")[0],w.secondElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getSeconds():e.seconds),w.secondElement.setAttribute(\"step\",w.minuteElement.getAttribute(\"step\")),w.secondElement.setAttribute(\"min\",\"0\"),w.secondElement.setAttribute(\"max\",\"59\"),w.secondElement.setAttribute(\"maxlength\",\"2\"),w.timeContainer.appendChild(s(\"span\",\"flatpickr-time-separator\",\":\")),w.timeContainer.appendChild(i)}w.config.time_24hr||(w.amPM=s(\"span\",\"flatpickr-am-pm\",w.l10n.amPM[r((w.latestSelectedDateObj?w.hourElement.value:w.config.defaultHour)>11)]),w.amPM.title=w.l10n.toggleTitle,w.amPM.tabIndex=-1,w.timeContainer.appendChild(w.amPM));return w.timeContainer}());d(w.calendarContainer,\"rangeMode\",\"range\"===w.config.mode),d(w.calendarContainer,\"animate\",!0===w.config.animate),d(w.calendarContainer,\"multiMonth\",w.config.showMonths>1),w.calendarContainer.appendChild(e);var i=void 0!==w.config.appendTo&&void 0!==w.config.appendTo.nodeType;if((w.config.inline||w.config.static)&&(w.calendarContainer.classList.add(w.config.inline?\"inline\":\"static\"),w.config.inline&&(!i&&w.element.parentNode?w.element.parentNode.insertBefore(w.calendarContainer,w._input.nextSibling):void 0!==w.config.appendTo&&w.config.appendTo.appendChild(w.calendarContainer)),w.config.static)){var l=s(\"div\",\"flatpickr-wrapper\");w.element.parentNode&&w.element.parentNode.insertBefore(l,w.element),l.appendChild(w.element),w.altInput&&l.appendChild(w.altInput),l.appendChild(w.calendarContainer)}w.config.static||w.config.inline||(void 0!==w.config.appendTo?w.config.appendTo:window.document.body).appendChild(w.calendarContainer)}(),function(){w.config.wrap&&[\"open\",\"close\",\"toggle\",\"clear\"].forEach((function(e){Array.prototype.forEach.call(w.element.querySelectorAll(\"[data-\"+e+\"]\"),(function(t){return A(t,\"click\",w[e])}))}));if(w.isMobile)return void function(){var e=w.config.enableTime?w.config.noCalendar?\"time\":\"datetime-local\":\"date\";w.mobileInput=s(\"input\",w.input.className+\" flatpickr-mobile\"),w.mobileInput.tabIndex=1,w.mobileInput.type=e,w.mobileInput.disabled=w.input.disabled,w.mobileInput.required=w.input.required,w.mobileInput.placeholder=w.input.placeholder,w.mobileFormatStr=\"datetime-local\"===e?\"Y-m-d\\\\TH:i:S\":\"date\"===e?\"Y-m-d\":\"H:i:S\",w.selectedDates.length>0&&(w.mobileInput.defaultValue=w.mobileInput.value=w.formatDate(w.selectedDates[0],w.mobileFormatStr));w.config.minDate&&(w.mobileInput.min=w.formatDate(w.config.minDate,\"Y-m-d\"));w.config.maxDate&&(w.mobileInput.max=w.formatDate(w.config.maxDate,\"Y-m-d\"));w.input.getAttribute(\"step\")&&(w.mobileInput.step=String(w.input.getAttribute(\"step\")));w.input.type=\"hidden\",void 0!==w.altInput&&(w.altInput.type=\"hidden\");try{w.input.parentNode&&w.input.parentNode.insertBefore(w.mobileInput,w.input.nextSibling)}catch(e){}A(w.mobileInput,\"change\",(function(e){w.setDate(g(e).value,!1,w.mobileFormatStr),pe(\"onChange\"),pe(\"onClose\")}))}();var e=l(ie,50);w._debouncedChange=l(N,300),w.daysContainer&&!\u002FiPhone|iPad|iPod\u002Fi.test(navigator.userAgent)&&A(w.daysContainer,\"mouseover\",(function(e){\"range\"===w.config.mode&&ae(g(e))}));A(window.document.body,\"keydown\",ne),w.config.inline||w.config.static||A(window,\"resize\",e);void 0!==window.ontouchstart?A(window.document,\"touchstart\",Z):A(window.document,\"mousedown\",Z);A(window.document,\"focus\",Z,{capture:!0}),!0===w.config.clickOpens&&(A(w._input,\"focus\",w.open),A(w._input,\"click\",w.open));void 0!==w.daysContainer&&(A(w.monthNav,\"click\",Ce),A(w.monthNav,[\"keyup\",\"increment\"],F),A(w.daysContainer,\"click\",ue));if(void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement){var t=function(e){return g(e).select()};A(w.timeContainer,[\"increment\"],I),A(w.timeContainer,\"blur\",I,{capture:!0}),A(w.timeContainer,\"click\",Y),A([w.hourElement,w.minuteElement],[\"focus\",\"click\"],t),void 0!==w.secondElement&&A(w.secondElement,\"focus\",(function(){return w.secondElement&&w.secondElement.select()})),void 0!==w.amPM&&A(w.amPM,\"click\",(function(e){I(e),N()}))}w.config.allowInput&&A(w._input,\"blur\",te)}(),(w.selectedDates.length||w.config.noCalendar)&&(w.config.enableTime&&_(w.config.noCalendar?w.latestSelectedDateObj:void 0),be(!1)),k();var t=\u002F^((?!chrome|android).)*safari\u002Fi.test(navigator.userAgent);!w.isMobile&&t&&ce(),pe(\"onReady\")}(),w}function k(e,t){for(var n=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),a=[],i=0;i\u003Cn.length;i++){var o=n[i];try{if(null!==o.getAttribute(\"data-fp-omit\"))continue;void 0!==o._flatpickr&&(o._flatpickr.destroy(),o._flatpickr=void 0),o._flatpickr=E(o,t||{}),a.push(o._flatpickr)}catch(e){console.error(e)}}return 1===a.length?a[0]:a}\"undefined\"!=typeof HTMLElement&&\"undefined\"!=typeof HTMLCollection&&\"undefined\"!=typeof NodeList&&(HTMLCollection.prototype.flatpickr=NodeList.prototype.flatpickr=function(e){return k(this,e)},HTMLElement.prototype.flatpickr=function(e){return k([this],e)});var T=function(e,t){return\"string\"==typeof e?k(window.document.querySelectorAll(e),t):e instanceof Node?k([e],t):k(e,t)};return T.defaultConfig={},T.l10ns={en:e({},i),default:e({},i)},T.localize=function(t){T.l10ns.default=e(e({},T.l10ns.default),t)},T.setDefaults=function(t){T.defaultConfig=e(e({},T.defaultConfig),t)},T.parseDate=C({}),T.formatDate=b({}),T.compareDates=M,\"undefined\"!=typeof jQuery&&void 0!==jQuery.fn&&(jQuery.fn.flatpickr=function(e){return k(this,e)}),Date.prototype.fp_incr=function(e){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+(\"string\"==typeof e?parseInt(e,10):e))},\"undefined\"!=typeof window&&(window.flatpickr=T),T}));\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fflatpickr\u002Fflatpickr.min.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fflatpickr\u002Fflatpickr.min.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fflatpickr\u002Fflatpickr.min.css\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fflatpickr\u002Fflatpickr.min.css\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,13 +1,13 @@\n-.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{\u002F*\n-      \u002F*rtl:begin:ignore*\u002Fleft:0\u002F*\n-      \u002F*rtl:end:ignore*\u002F}\u002F*\n-      \u002F*rtl:begin:ignore*\u002F\n-\u002F*\n-      \u002F*rtl:end:ignore*\u002F\n-.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{\u002F*\n-      \u002F*rtl:begin:ignore*\u002Fright:0\u002F*\n-      \u002F*rtl:end:ignore*\u002F}\u002F*\n-      \u002F*rtl:begin:ignore*\u002F\n-\u002F*\n-      \u002F*rtl:end:ignore*\u002F\n-.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}\n+.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{\u002F*\r\n+      \u002F*rtl:begin:ignore*\u002Fleft:0\u002F*\r\n+      \u002F*rtl:end:ignore*\u002F}\u002F*\r\n+      \u002F*rtl:begin:ignore*\u002F\r\n+\u002F*\r\n+      \u002F*rtl:end:ignore*\u002F\r\n+.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{\u002F*\r\n+      \u002F*rtl:begin:ignore*\u002Fright:0\u002F*\r\n+      \u002F*rtl:end:ignore*\u002F}\u002F*\r\n+      \u002F*rtl:begin:ignore*\u002F\r\n+\u002F*\r\n+      \u002F*rtl:end:ignore*\u002F\r\n+.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,0.1)}.numInputWrapper span:active{background:rgba(0,0,0,0.2)}.numInputWrapper span:after{display:block;content:\"\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5)}.numInputWrapper:hover{background:rgba(0,0,0,0.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,0.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,0.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,0.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,0.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fflatpickr\u002FLICENSE.md \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fflatpickr\u002FLICENSE.md\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fflatpickr\u002FLICENSE.md\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fflatpickr\u002FLICENSE.md\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,21 +1,21 @@\n-The MIT License (MIT)\n-\n-Copyright (c) 2017 Gregory Petrosyan\n-\n-Permission is hereby granted, free of charge, to any person obtaining a copy\n-of this software and associated documentation files (the \"Software\"), to deal\n-in the Software without restriction, including without limitation the rights\n-to use, copy, modify, merge, publish, distribute, sublicense, and\u002For sell\n-copies of the Software, and to permit persons to whom the Software is\n-furnished to do so, subject to the following conditions:\n-\n-The above copyright notice and this permission notice shall be included in all\n-copies or substantial portions of the Software.\n-\n-THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n-SOFTWARE.\n+The MIT License (MIT)\r\n+\r\n+Copyright (c) 2017 Gregory Petrosyan\r\n+\r\n+Permission is hereby granted, free of charge, to any person obtaining a copy\r\n+of this software and associated documentation files (the \"Software\"), to deal\r\n+in the Software without restriction, including without limitation the rights\r\n+to use, copy, modify, merge, publish, distribute, sublicense, and\u002For sell\r\n+copies of the Software, and to permit persons to whom the Software is\r\n+furnished to do so, subject to the following conditions:\r\n+\r\n+The above copyright notice and this permission notice shall be included in all\r\n+copies or substantial portions of the Software.\r\n+\r\n+THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n+SOFTWARE.\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002FDompdf.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002FDompdf.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002FDompdf.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002FDompdf.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,1470 +1,1470 @@\n-\u003C?php\n-\u002F**\n- * @package dompdf\n- * @link    https:\u002F\u002Fgithub.com\u002Fdompdf\u002Fdompdf\n- * @license http:\u002F\u002Fwww.gnu.org\u002Fcopyleft\u002Flesser.html GNU Lesser General Public License\n- *\u002F\n-namespace Dompdf;\n-\n-use DOMDocument;\n-use DOMNode;\n-use Dompdf\\Adapter\\CPDF;\n-use DOMXPath;\n-use Dompdf\\Frame\\Factory;\n-use Dompdf\\Frame\\FrameTree;\n-use Dompdf\\Image\\Cache;\n-use Dompdf\\Css\\Stylesheet;\n-use Dompdf\\Helpers;\n-use Masterminds\\HTML5;\n-\n-\u002F**\n- * Dompdf - PHP5 HTML to PDF renderer\n- *\n- * Dompdf loads HTML and does its best to render it as a PDF.  It gets its\n- * name from the new DomDocument PHP5 extension.  Source HTML is first\n- * parsed by a DomDocument object.  Dompdf takes the resulting DOM tree and\n- * attaches a {@link Frame} object to each node.  {@link Frame} objects store\n- * positioning and layout information and each has a reference to a {@link\n- * Style} object.\n- *\n- * Style information is loaded and parsed (see {@link Stylesheet}) and is\n- * applied to the frames in the tree by using XPath.  CSS selectors are\n- * converted into XPath queries, and the computed {@link Style} objects are\n- * applied to the {@link Frame}s.\n- *\n- * {@link Frame}s are then decorated (in the design pattern sense of the\n- * word) based on their CSS display property ({@link\n- * http:\u002F\u002Fwww.w3.org\u002FTR\u002FCSS21\u002Fvisuren.html#propdef-display}).\n- * Frame_Decorators augment the basic {@link Frame} class by adding\n- * additional properties and methods specific to the particular type of\n- * {@link Frame}.  For example, in the CSS layout model, block frames\n- * (display: block;) contain line boxes that are usually filled with text or\n- * other inline frames.  The Block therefore adds a $lines\n- * property as well as methods to add {@link Frame}s to lines and to add\n- * additional lines.  {@link Frame}s also are attached to specific\n- * AbstractPositioner and {@link AbstractFrameReflower} objects that contain the\n- * positioining and layout algorithm for a specific type of frame,\n- * respectively.  This is an application of the Strategy pattern.\n- *\n- * Layout, or reflow, proceeds recursively (post-order) starting at the root\n- * of the document.  Space constraints (containing block width & height) are\n- * pushed down, and resolved positions and sizes bubble up.  Thus, every\n- * {@link Frame} in the document tree is traversed once (except for tables\n- * which use a two-pass layout algorithm).  If you are interested in the\n- * details, see the reflow() method of the Reflower classes.\n- *\n- * Rendering is relatively straightforward once layout is complete. {@link\n- * Frame}s are rendered using an adapted {@link Cpdf} class, originally\n- * written by Wayne Munro, http:\u002F\u002Fwww.ros.co.nz\u002Fpdf\u002F.  (Some performance\n- * related changes have been made to the original {@link Cpdf} class, and\n- * the {@link Dompdf\\Adapter\\CPDF} class provides a simple, stateless interface to\n- * PDF generation.)  PDFLib support has now also been added, via the {@link\n- * Dompdf\\Adapter\\PDFLib}.\n- *\n- *\n- * @package dompdf\n- *\u002F\n-class Dompdf\n-{\n-    \u002F**\n-     * Version string for dompdf\n-     *\n-     * @var string\n-     *\u002F\n-    private $version = 'dompdf';\n-\n-    \u002F**\n-     * DomDocument representing the HTML document\n-     *\n-     * @var DOMDocument\n-     *\u002F\n-    private $dom;\n-\n-    \u002F**\n-     * FrameTree derived from the DOM tree\n-     *\n-     * @var FrameTree\n-     *\u002F\n-    private $tree;\n-\n-    \u002F**\n-     * Stylesheet for the document\n-     *\n-     * @var Stylesheet\n-     *\u002F\n-    private $css;\n-\n-    \u002F**\n-     * Actual PDF renderer\n-     *\n-     * @var Canvas\n-     *\u002F\n-    private $canvas;\n-\n-    \u002F**\n-     * Desired paper size ('letter', 'legal', 'A4', etc.)\n-     *\n-     * @var string|float[]\n-     *\u002F\n-    private $paperSize;\n-\n-    \u002F**\n-     * Paper orientation ('portrait' or 'landscape')\n-     *\n-     * @var string\n-     *\u002F\n-    private $paperOrientation = \"portrait\";\n-\n-    \u002F**\n-     * Callbacks on new page and new element\n-     *\n-     * @var array\n-     *\u002F\n-    private $callbacks = [];\n-\n-    \u002F**\n-     * Experimental caching capability\n-     *\n-     * @var string\n-     *\u002F\n-    private $cacheId;\n-\n-    \u002F**\n-     * Base hostname\n-     *\n-     * Used for relative paths\u002Furls\n-     * @var string\n-     *\u002F\n-    private $baseHost = \"\";\n-\n-    \u002F**\n-     * Absolute base path\n-     *\n-     * Used for relative paths\u002Furls\n-     * @var string\n-     *\u002F\n-    private $basePath = \"\";\n-\n-    \u002F**\n-     * Protocol used to request file (file:\u002F\u002F, http:\u002F\u002F, etc)\n-     *\n-     * @var string\n-     *\u002F\n-    private $protocol = \"\";\n-\n-    \u002F**\n-     * The system's locale\n-     *\n-     * @var string\n-     *\u002F\n-    private $systemLocale = null;\n-\n-    \u002F**\n-     * The system's mbstring internal encoding\n-     *\n-     * @var string\n-     *\u002F\n-    private $mbstringEncoding = null;\n-\n-    \u002F**\n-     * The system's PCRE JIT configuration\n-     *\n-     * @var string\n-     *\u002F\n-    private $pcreJit = null;\n-\n-    \u002F**\n-     * The default view of the PDF in the viewer\n-     *\n-     * @var string\n-     *\u002F\n-    private $defaultView = \"Fit\";\n-\n-    \u002F**\n-     * The default view options of the PDF in the viewer\n-     *\n-     * @var array\n-     *\u002F\n-    private $defaultViewOptions = [];\n-\n-    \u002F**\n-     * Tells whether the DOM document is in quirksmode (experimental)\n-     *\n-     * @var bool\n-     *\u002F\n-    private $quirksmode = false;\n-\n-    \u002F**\n-    * Local file extension whitelist\n-    *\n-    * File extensions supported by dompdf for local files.\n-    *\n-    * @var array\n-    *\u002F\n-    private $allowedLocalFileExtensions = [\"htm\", \"html\"];\n-\n-    \u002F**\n-     * @var array\n-     *\u002F\n-    private $messages = [];\n-\n-    \u002F**\n-     * @var Options\n-     *\u002F\n-    private $options;\n-\n-    \u002F**\n-     * @var FontMetrics\n-     *\u002F\n-    private $fontMetrics;\n-\n-    \u002F**\n-     * The list of built-in fonts\n-     *\n-     * @var array\n-     * @deprecated\n-     *\u002F\n-    public static $native_fonts = [\n-        \"courier\", \"courier-bold\", \"courier-oblique\", \"courier-boldoblique\",\n-        \"helvetica\", \"helvetica-bold\", \"helvetica-oblique\", \"helvetica-boldoblique\",\n-        \"times-roman\", \"times-bold\", \"times-italic\", \"times-bolditalic\",\n-        \"symbol\", \"zapfdinbats\"\n-    ];\n-\n-    \u002F**\n-     * The list of built-in fonts\n-     *\n-     * @var array\n-     *\u002F\n-    public static $nativeFonts = [\n-        \"courier\", \"courier-bold\", \"courier-oblique\", \"courier-boldoblique\",\n-        \"helvetica\", \"helvetica-bold\", \"helvetica-oblique\", \"helvetica-boldoblique\",\n-        \"times-roman\", \"times-bold\", \"times-italic\", \"times-bolditalic\",\n-        \"symbol\", \"zapfdinbats\"\n-    ];\n-\n-    \u002F**\n-     * Class constructor\n-     *\n-     * @param Options|array|null $options\n-     *\u002F\n-    public function __construct($options = null)\n-    {\n-        if (isset($options) && $options instanceof Options) {\n-            $this->setOptions($options);\n-        } elseif (is_array($options)) {\n-            $this->setOptions(new Options($options));\n-        } else {\n-            $this->setOptions(new Options());\n-        }\n-\n-        $versionFile = realpath(__DIR__ . '\u002F..\u002FVERSION');\n-        if (($version = file_get_contents($versionFile)) !== false) {\n-            $version = trim($version);\n-            if ($version !== '$Format:\u003C%h>$') {\n-                $this->version = sprintf('dompdf %s', $version);\n-            }\n-        }\n-\n-        $this->setPhpConfig();\n-\n-        $this->paperSize = $this->options->getDefaultPaperSize();\n-        $this->paperOrientation = $this->options->getDefaultPaperOrientation();\n-\n-        $this->canvas = CanvasFactory::get_instance($this, $this->paperSize, $this->paperOrientation);\n-        $this->fontMetrics = new FontMetrics($this->canvas, $this->options);\n-        $this->css = new Stylesheet($this);\n-\n-        $this->restorePhpConfig();\n-    }\n-\n-    \u002F**\n-     * Save the system's existing locale, PCRE JIT, and MBString encoding\n-     * configuration and configure the system for Dompdf processing\n-     *\u002F\n-    private function setPhpConfig()\n-    {\n-        if (sprintf('%.1f', 1.0) !== '1.0') {\n-            $this->systemLocale = setlocale(LC_NUMERIC, \"0\");\n-            setlocale(LC_NUMERIC, \"C\");\n-        }\n-\n-        $this->pcreJit = @ini_get('pcre.jit');\n-        @ini_set('pcre.jit', '0');\n-\n-        $this->mbstringEncoding = mb_internal_encoding();\n-        mb_internal_encoding('UTF-8');\n-    }\n-\n-    \u002F**\n-     * Restore the system's locale configuration\n-     *\u002F\n-    private function restorePhpConfig()\n-    {\n-        if ($this->systemLocale !== null) {\n-            setlocale(LC_NUMERIC, $this->systemLocale);\n-            $this->systemLocale = null;\n-        }\n-\n-        if ($this->pcreJit !== null) {\n-            @ini_set('pcre.jit', $this->pcreJit);\n-            $this->pcreJit = null;\n-        }\n-\n-        if ($this->mbstringEncoding !== null) {\n-            mb_internal_encoding($this->mbstringEncoding);\n-            $this->mbstringEncoding = null;\n-        }\n-    }\n-\n-    \u002F**\n-     * @param $file\n-     * @deprecated\n-     *\u002F\n-    public function load_html_file($file)\n-    {\n-        $this->loadHtmlFile($file);\n-    }\n-\n-    \u002F**\n-     * Loads an HTML file\n-     * Parse errors are stored in the global array _dompdf_warnings.\n-     *\n-     * @param string $file a filename or url to load\n-     * @param string $encoding Encoding of $file\n-     *\n-     * @throws Exception\n-     *\u002F\n-    public function loadHtmlFile($file, $encoding = null)\n-    {\n-        $this->setPhpConfig();\n-\n-        if (!$this->protocol && !$this->baseHost && !$this->basePath) {\n-            [$this->protocol, $this->baseHost, $this->basePath] = Helpers::explode_url($file);\n-        }\n-        $protocol = strtolower($this->protocol);\n-        $uri = Helpers::build_url($this->protocol, $this->baseHost, $this->basePath, $file);\n-\n-        $allowed_protocols = $this->options->getAllowedProtocols();\n-        if (!array_key_exists($protocol, $allowed_protocols)) {\n-            throw new Exception(\"Permission denied on $file. The communication protocol is not supported.\");\n-        }\n-\n-        if ($protocol === \"file:\u002F\u002F\") {\n-            $ext = strtolower(pathinfo($uri, PATHINFO_EXTENSION));\n-            if (!in_array($ext, $this->allowedLocalFileExtensions)) {\n-                throw new Exception(\"Permission denied on $file: The file extension is forbidden.\");\n-            }\n-        }\n-\n-        foreach ($allowed_protocols[$protocol][\"rules\"] as $rule) {\n-            [$result, $message] = $rule($uri);\n-            if (!$result) {\n-                throw new Exception(\"Error loading $file: $message\");\n-            }\n-        }\n-\n-        [$contents, $http_response_header] = Helpers::getFileContent($uri, $this->options->getHttpContext());\n-        if ($contents === null) {\n-            throw new Exception(\"File '$file' not found.\");\n-        }\n-\n-        \u002F\u002F See http:\u002F\u002Fthe-stickman.com\u002Fweb-development\u002Fphp\u002Fgetting-http-response-headers-when-using-file_get_contents\u002F\n-        if (isset($http_response_header)) {\n-            foreach ($http_response_header as $_header) {\n-                if (preg_match(\"@Content-Type:\\s*[\\w\u002F]+;\\s*?charset=([^\\s]+)@i\", $_header, $matches)) {\n-                    $encoding = strtoupper($matches[1]);\n-                    break;\n-                }\n-            }\n-        }\n-\n-        $this->restorePhpConfig();\n-\n-        $this->loadHtml($contents, $encoding);\n-    }\n-\n-    \u002F**\n-     * @param string $str\n-     * @param string $encoding\n-     * @deprecated\n-     *\u002F\n-    public function load_html($str, $encoding = null)\n-    {\n-        $this->loadHtml($str, $encoding);\n-    }\n-\n-    public function loadDOM($doc, $quirksmode = false) {\n-        \u002F\u002F Remove #text children nodes in nodes that shouldn't have\n-        $tag_names = [\"html\", \"head\", \"table\", \"tbody\", \"thead\", \"tfoot\", \"tr\"];\n-        foreach ($tag_names as $tag_name) {\n-            $nodes = $doc->getElementsByTagName($tag_name);\n-\n-            foreach ($nodes as $node) {\n-                self::removeTextNodes($node);\n-            }\n-        }\n-\n-        $this->dom = $doc;\n-        $this->quirksmode = $quirksmode;\n-        $this->tree = new FrameTree($this->dom);\n-    }\n-\n-    \u002F**\n-     * Loads an HTML string\n-     * Parse errors are stored in the global array _dompdf_warnings.\n-     *\n-     * @param string $str HTML text to load\n-     * @param string $encoding Encoding of $str\n-     *\u002F\n-    public function loadHtml($str, $encoding = null)\n-    {\n-        $this->setPhpConfig();\n-\n-        \u002F\u002F Determine character encoding when $encoding parameter not used\n-        if ($encoding === null) {\n-            mb_detect_order('auto');\n-            if (($encoding = mb_detect_encoding($str, null, true)) === false) {\n-\n-                \u002F\u002F\"auto\" is expanded to \"ASCII,JIS,UTF-8,EUC-JP,SJIS\"\n-                $encoding = \"auto\";\n-            }\n-        }\n-\n-        if (in_array(strtoupper($encoding), array('UTF-8','UTF8')) === false) {\n-            $str = mb_convert_encoding($str, 'UTF-8', $encoding);\n-\n-            \u002F\u002FUpdate encoding after converting\n-            $encoding = 'UTF-8';\n-        }\n-\n-        $metatags = [\n-            '@\u003Cmeta\\s+http-equiv=\"Content-Type\"\\s+content=\"(?:[\\w\u002F]+)(?:;\\s*?charset=([^\\s\"]+))?@i',\n-            '@\u003Cmeta\\s+content=\"(?:[\\w\u002F]+)(?:;\\s*?charset=([^\\s\"]+))\"?\\s+http-equiv=\"Content-Type\"@i',\n-            '@\u003Cmeta [^>]*charset\\s*=\\s*[\"\\']?\\s*([^\"\\' ]+)@i',\n-        ];\n-        foreach ($metatags as $metatag) {\n-            if (preg_match($metatag, $str, $matches)) {\n-                if (isset($matches[1]) && in_array($matches[1], mb_list_encodings())) {\n-                    $document_encoding = $matches[1];\n-                    break;\n-                }\n-            }\n-        }\n-        if (isset($document_encoding) && in_array(strtoupper($document_encoding), ['UTF-8','UTF8']) === false) {\n-            $str = preg_replace('\u002Fcharset=([^\\s\"]+)\u002Fi', 'charset=UTF-8', $str);\n-        } elseif (isset($document_encoding) === false && strpos($str, '\u003Chead>') !== false) {\n-            $str = str_replace('\u003Chead>', '\u003Chead>\u003Cmeta http-equiv=\"Content-Type\" content=\"text\u002Fhtml;charset=UTF-8\">', $str);\n-        } elseif (isset($document_encoding) === false) {\n-            $str = '\u003Cmeta http-equiv=\"Content-Type\" content=\"text\u002Fhtml;charset=UTF-8\">' . $str;\n-        }\n-\n-        \u002F\u002F remove BOM mark from UTF-8, it's treated as document text by DOMDocument\n-        \u002F\u002F FIXME: roll this into the encoding detection using UTF-8\u002F16\u002F32 BOM (http:\u002F\u002Fus2.php.net\u002Fmanual\u002Fen\u002Ffunction.mb-detect-encoding.php#91051)?\n-        if (substr($str, 0, 3) == chr(0xEF) . chr(0xBB) . chr(0xBF)) {\n-            $str = substr($str, 3);\n-        }\n-\n-        \u002F\u002F Store parsing warnings as messages\n-        set_error_handler([Helpers::class, 'record_warnings']);\n-\n-        try {\n-            \u002F\u002F @todo Take the quirksmode into account\n-            \u002F\u002F https:\u002F\u002Fquirks.spec.whatwg.org\u002F\n-            \u002F\u002F http:\u002F\u002Fhsivonen.iki.fi\u002Fdoctype\u002F\n-            $quirksmode = false;\n-\n-            $html5 = new HTML5(['encoding' => $encoding, 'disable_html_ns' => true]);\n-            $dom = $html5->loadHTML($str);\n-\n-            \u002F\u002F extra step to normalize the HTML document structure\n-            \u002F\u002F see Masterminds\u002Fhtml5-php#166\n-            $doc = new DOMDocument(\"1.0\", $encoding);\n-            $doc->preserveWhiteSpace = true;\n-            $doc->loadHTML($html5->saveHTML($dom), LIBXML_NOWARNING | LIBXML_NOERROR);\n-\n-            $this->loadDOM($doc, $quirksmode);\n-        } finally {\n-            restore_error_handler();\n-            $this->restorePhpConfig();\n-        }\n-    }\n-\n-    \u002F**\n-     * @param DOMNode $node\n-     * @deprecated\n-     *\u002F\n-    public static function remove_text_nodes(DOMNode $node)\n-    {\n-        self::removeTextNodes($node);\n-    }\n-\n-    \u002F**\n-     * @param DOMNode $node\n-     *\u002F\n-    public static function removeTextNodes(DOMNode $node)\n-    {\n-        $children = [];\n-        for ($i = 0; $i \u003C $node->childNodes->length; $i++) {\n-            $child = $node->childNodes->item($i);\n-            if ($child->nodeName === \"#text\") {\n-                $children[] = $child;\n-            }\n-        }\n-\n-        foreach ($children as $child) {\n-            $node->removeChild($child);\n-        }\n-    }\n-\n-    \u002F**\n-     * Builds the {@link FrameTree}, loads any CSS and applies the styles to\n-     * the {@link FrameTree}\n-     *\u002F\n-    private function processHtml()\n-    {\n-        $this->tree->build_tree();\n-\n-        $this->css->load_css_file($this->css->getDefaultStylesheet(), Stylesheet::ORIG_UA);\n-\n-        $acceptedmedia = Stylesheet::$ACCEPTED_GENERIC_MEDIA_TYPES;\n-        $acceptedmedia[] = $this->options->getDefaultMediaType();\n-\n-        \u002F\u002F \u003Cbase href=\"\" \u002F>\n-        \u002F** @var \\DOMElement|null *\u002F\n-        $baseNode = $this->dom->getElementsByTagName(\"base\")->item(0);\n-        $baseHref = $baseNode ? $baseNode->getAttribute(\"href\") : \"\";\n-        if ($baseHref !== \"\") {\n-            [$this->protocol, $this->baseHost, $this->basePath] = Helpers::explode_url($baseHref);\n-        }\n-\n-        \u002F\u002F Set the base path of the Stylesheet to that of the file being processed\n-        $this->css->set_protocol($this->protocol);\n-        $this->css->set_host($this->baseHost);\n-        $this->css->set_base_path($this->basePath);\n-\n-        \u002F\u002F Get all the stylesheets so that they are processed in document order\n-        $xpath = new DOMXPath($this->dom);\n-        $stylesheets = $xpath->query(\"\u002F\u002F*[name() = 'link' or name() = 'style']\");\n-\n-        \u002F** @var \\DOMElement $tag *\u002F\n-        foreach ($stylesheets as $tag) {\n-            switch (strtolower($tag->nodeName)) {\n-                \u002F\u002F load \u003Clink rel=\"STYLESHEET\" ... \u002F> tags\n-                case \"link\":\n-                    if (mb_strtolower(stripos($tag->getAttribute(\"rel\"), \"stylesheet\") !== false) || \u002F\u002F may be \"appendix stylesheet\"\n-                        mb_strtolower($tag->getAttribute(\"type\")) === \"text\u002Fcss\"\n-                    ) {\n-                        \u002F\u002FCheck if the css file is for an accepted media type\n-                        \u002F\u002Fmedia not given then always valid\n-                        $formedialist = preg_split(\"\u002F[\\s\\n,]\u002F\", $tag->getAttribute(\"media\"), -1, PREG_SPLIT_NO_EMPTY);\n-                        if (count($formedialist) > 0) {\n-                            $accept = false;\n-                            foreach ($formedialist as $type) {\n-                                if (in_array(mb_strtolower(trim($type)), $acceptedmedia)) {\n-                                    $accept = true;\n-                                    break;\n-                                }\n-                            }\n-\n-                            if (!$accept) {\n-                                \u002F\u002Ffound at least one mediatype, but none of the accepted ones\n-                                \u002F\u002FSkip this css file.\n-                                break;\n-                            }\n-                        }\n-\n-                        $url = $tag->getAttribute(\"href\");\n-                        $url = Helpers::build_url($this->protocol, $this->baseHost, $this->basePath, $url);\n-\n-                        if ($url !== null) {\n-                            $this->css->load_css_file($url, Stylesheet::ORIG_AUTHOR);\n-                        }\n-                    }\n-                    break;\n-\n-                \u002F\u002F load \u003Cstyle> tags\n-                case \"style\":\n-                    \u002F\u002F Accept all \u003Cstyle> tags by default (note this is contrary to W3C\n-                    \u002F\u002F HTML 4.0 spec:\n-                    \u002F\u002F http:\u002F\u002Fwww.w3.org\u002FTR\u002FREC-html40\u002Fpresent\u002Fstyles.html#adef-media\n-                    \u002F\u002F which states that the default media type is 'screen'\n-                    if ($tag->hasAttributes() &&\n-                        ($media = $tag->getAttribute(\"media\")) &&\n-                        !in_array($media, $acceptedmedia)\n-                    ) {\n-                        break;\n-                    }\n-\n-                    $css = \"\";\n-                    if ($tag->hasChildNodes()) {\n-                        $child = $tag->firstChild;\n-                        while ($child) {\n-                            $css .= $child->nodeValue; \u002F\u002F Handle \u003Cstyle>\u003C!-- blah -->\u003C\u002Fstyle>\n-                            $child = $child->nextSibling;\n-                        }\n-                    } else {\n-                        $css = $tag->nodeValue;\n-                    }\n-\n-                    \u002F\u002F Set the base path of the Stylesheet to that of the file being processed\n-                    $this->css->set_protocol($this->protocol);\n-                    $this->css->set_host($this->baseHost);\n-                    $this->css->set_base_path($this->basePath);\n-\n-                    $this->css->load_css($css, Stylesheet::ORIG_AUTHOR);\n-                    break;\n-            }\n-\n-            \u002F\u002F Set the base path of the Stylesheet to that of the file being processed\n-            $this->css->set_protocol($this->protocol);\n-            $this->css->set_host($this->baseHost);\n-            $this->css->set_base_path($this->basePath);\n-        }\n-    }\n-\n-    \u002F**\n-     * @param string $cacheId\n-     * @deprecated\n-     *\u002F\n-    public function enable_caching($cacheId)\n-    {\n-        $this->enableCaching($cacheId);\n-    }\n-\n-    \u002F**\n-     * Enable experimental caching capability\n-     *\n-     * @param string $cacheId\n-     *\u002F\n-    public function enableCaching($cacheId)\n-    {\n-        $this->cacheId = $cacheId;\n-    }\n-\n-    \u002F**\n-     * @param string $value\n-     * @return bool\n-     * @deprecated\n-     *\u002F\n-    public function parse_default_view($value)\n-    {\n-        return $this->parseDefaultView($value);\n-    }\n-\n-    \u002F**\n-     * @param string $value\n-     * @return bool\n-     *\u002F\n-    public function parseDefaultView($value)\n-    {\n-        $valid = [\"XYZ\", \"Fit\", \"FitH\", \"FitV\", \"FitR\", \"FitB\", \"FitBH\", \"FitBV\"];\n-\n-        $options = preg_split(\"\u002F\\s*,\\s*\u002F\", trim($value));\n-        $defaultView = array_shift($options);\n-\n-        if (!in_array($defaultView, $valid)) {\n-            return false;\n-        }\n-\n-        $this->setDefaultView($defaultView, $options);\n-        return true;\n-    }\n-\n-    \u002F**\n-     * Renders the HTML to PDF\n-     *\u002F\n-    public function render()\n-    {\n-        $this->setPhpConfig();\n-\n-        $logOutputFile = $this->options->getLogOutputFile();\n-        if ($logOutputFile) {\n-            if (!file_exists($logOutputFile) && is_writable(dirname($logOutputFile))) {\n-                touch($logOutputFile);\n-            }\n-\n-            $startTime = microtime(true);\n-            if (is_writable($logOutputFile)) {\n-                ob_start();\n-            }\n-        }\n-\n-        $this->processHtml();\n-\n-        $this->css->apply_styles($this->tree);\n-\n-        \u002F\u002F @page style rules : size, margins\n-        $pageStyles = $this->css->get_page_styles();\n-        $basePageStyle = $pageStyles[\"base\"];\n-        unset($pageStyles[\"base\"]);\n-\n-        foreach ($pageStyles as $pageStyle) {\n-            $pageStyle->inherit($basePageStyle);\n-        }\n-\n-        \u002F\u002F Set paper size if defined via CSS\n-        if (is_array($basePageStyle->size)) {\n-            [$width, $height] = $basePageStyle->size;\n-            $this->setPaper([0, 0, $width, $height]);\n-        }\n-\n-        \u002F\u002F Create a new canvas instance if the current one does not match the\n-        \u002F\u002F desired paper size\n-        $canvasWidth = $this->canvas->get_width();\n-        $canvasHeight = $this->canvas->get_height();\n-        $size = $this->getPaperSize();\n-\n-        if ($canvasWidth !== $size[2] || $canvasHeight !== $size[3]) {\n-            $this->canvas = CanvasFactory::get_instance($this, $this->paperSize, $this->paperOrientation);\n-            $this->fontMetrics->setCanvas($this->canvas);\n-        }\n-\n-        $canvas = $this->canvas;\n-\n-        $root_frame = $this->tree->get_root();\n-        $root = Factory::decorate_root($root_frame, $this);\n-        foreach ($this->tree as $frame) {\n-            if ($frame === $root_frame) {\n-                continue;\n-            }\n-            Factory::decorate_frame($frame, $this, $root);\n-        }\n-\n-        \u002F\u002F Add meta information\n-        $title = $this->dom->getElementsByTagName(\"title\");\n-        if ($title->length) {\n-            $canvas->add_info(\"Title\", trim($title->item(0)->nodeValue));\n-        }\n-\n-        $metas = $this->dom->getElementsByTagName(\"meta\");\n-        $labels = [\n-            \"author\" => \"Author\",\n-            \"keywords\" => \"Keywords\",\n-            \"description\" => \"Subject\",\n-        ];\n-        \u002F** @var \\DOMElement $meta *\u002F\n-        foreach ($metas as $meta) {\n-            $name = mb_strtolower($meta->getAttribute(\"name\"));\n-            $value = trim($meta->getAttribute(\"content\"));\n-\n-            if (isset($labels[$name])) {\n-                $canvas->add_info($labels[$name], $value);\n-                continue;\n-            }\n-\n-            if ($name === \"dompdf.view\" && $this->parseDefaultView($value)) {\n-                $canvas->set_default_view($this->defaultView, $this->defaultViewOptions);\n-            }\n-        }\n-\n-        $root->set_containing_block(0, 0, $canvas->get_width(), $canvas->get_height());\n-        $root->set_renderer(new Renderer($this));\n-\n-        \u002F\u002F This is where the magic happens:\n-        $root->reflow();\n-\n-        if (isset($this->callbacks[\"end_document\"])) {\n-            $fs = $this->callbacks[\"end_document\"];\n-\n-            foreach ($fs as $f) {\n-                $canvas->page_script($f);\n-            }\n-        }\n-\n-        \u002F\u002F Clean up cached images\n-        if (!$this->options->getDebugKeepTemp()) {\n-            Cache::clear($this->options->getDebugPng());\n-        }\n-\n-        global $_dompdf_warnings, $_dompdf_show_warnings;\n-        if ($_dompdf_show_warnings && isset($_dompdf_warnings)) {\n-            echo '\u003Cb>Dompdf Warnings\u003C\u002Fb>\u003Cbr>\u003Cpre>';\n-            foreach ($_dompdf_warnings as $msg) {\n-                echo $msg . \"\\n\";\n-            }\n-\n-            if ($canvas instanceof CPDF) {\n-                echo $canvas->get_cpdf()->messages;\n-            }\n-            echo '\u003C\u002Fpre>';\n-            flush();\n-        }\n-\n-        if ($logOutputFile && is_writable($logOutputFile)) {\n-            $this->writeLog($logOutputFile, $startTime);\n-            ob_end_clean();\n-        }\n-\n-        $this->restorePhpConfig();\n-    }\n-\n-    \u002F**\n-     * Writes the output buffer in the log file\n-     *\n-     * @param string $logOutputFile\n-     * @param float $startTime\n-     *\u002F\n-    private function writeLog(string $logOutputFile, float $startTime): void\n-    {\n-        $frames = Frame::$ID_COUNTER;\n-        $memory = memory_get_peak_usage(true) \u002F 1024;\n-        $time = (microtime(true) - $startTime) * 1000;\n-\n-        $out = sprintf(\n-            \"\u003Cspan style='color: #000' title='Frames'>%6d\u003C\u002Fspan>\" .\n-            \"\u003Cspan style='color: #009' title='Memory'>%10.2f KB\u003C\u002Fspan>\" .\n-            \"\u003Cspan style='color: #900' title='Time'>%10.2f ms\u003C\u002Fspan>\" .\n-            \"\u003Cspan  title='Quirksmode'>  \" .\n-            ($this->quirksmode ? \"\u003Cspan style='color: #d00'> ON\u003C\u002Fspan>\" : \"\u003Cspan style='color: #0d0'>OFF\u003C\u002Fspan>\") .\n-            \"\u003C\u002Fspan>\u003Cbr \u002F>\", $frames, $memory, $time);\n-\n-        $out .= ob_get_contents();\n-        ob_clean();\n-\n-        file_put_contents($logOutputFile, $out);\n-    }\n-\n-    \u002F**\n-     * Add meta information to the PDF after rendering.\n-     *\n-     * @deprecated\n-     *\u002F\n-    public function add_info($label, $value)\n-    {\n-        $this->addInfo($label, $value);\n-    }\n-\n-    \u002F**\n-     * Add meta information to the PDF after rendering.\n-     *\n-     * @param string $label Label of the value (Creator, Producer, etc.)\n-     * @param string $value The text to set\n-     *\u002F\n-    public function addInfo(string $label, string $value): void\n-    {\n-        $this->canvas->add_info($label, $value);\n-    }\n-\n-    \u002F**\n-     * Streams the PDF to the client.\n-     *\n-     * The file will open a download dialog by default. The options\n-     * parameter controls the output. Accepted options (array keys) are:\n-     *\n-     * 'compress' = > 1 (=default) or 0:\n-     *   Apply content stream compression\n-     *\n-     * 'Attachment' => 1 (=default) or 0:\n-     *   Set the 'Content-Disposition:' HTTP header to 'attachment'\n-     *   (thereby causing the browser to open a download dialog)\n-     *\n-     * @param string $filename the name of the streamed file\n-     * @param array $options header options (see above)\n-     *\u002F\n-    public function stream($filename = \"document.pdf\", $options = [])\n-    {\n-        $this->setPhpConfig();\n-\n-        $this->canvas->stream($filename, $options);\n-\n-        $this->restorePhpConfig();\n-    }\n-\n-    \u002F**\n-     * Returns the PDF as a string.\n-     *\n-     * The options parameter controls the output. Accepted options are:\n-     *\n-     * 'compress' = > 1 or 0 - apply content stream compression, this is\n-     *    on (1) by default\n-     *\n-     * @param array $options options (see above)\n-     *\n-     * @return string|null\n-     *\u002F\n-    public function output($options = [])\n-    {\n-        $this->setPhpConfig();\n-\n-        $output = $this->canvas->output($options);\n-\n-        $this->restorePhpConfig();\n-\n-        return $output;\n-    }\n-\n-    \u002F**\n-     * @return string\n-     * @deprecated\n-     *\u002F\n-    public function output_html()\n-    {\n-        return $this->outputHtml();\n-    }\n-\n-    \u002F**\n-     * Returns the underlying HTML document as a string\n-     *\n-     * @return string\n-     *\u002F\n-    public function outputHtml()\n-    {\n-        return $this->dom->saveHTML();\n-    }\n-\n-    \u002F**\n-     * Get the dompdf option value\n-     *\n-     * @param string $key\n-     * @return mixed\n-     * @deprecated\n-     *\u002F\n-    public function get_option($key)\n-    {\n-        return $this->options->get($key);\n-    }\n-\n-    \u002F**\n-     * @param string $key\n-     * @param mixed $value\n-     * @return $this\n-     * @deprecated\n-     *\u002F\n-    public function set_option($key, $value)\n-    {\n-        $this->options->set($key, $value);\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @param array $options\n-     * @return $this\n-     * @deprecated\n-     *\u002F\n-    public function set_options(array $options)\n-    {\n-        $this->options->set($options);\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @param string $size\n-     * @param string $orientation\n-     * @deprecated\n-     *\u002F\n-    public function set_paper($size, $orientation = \"portrait\")\n-    {\n-        $this->setPaper($size, $orientation);\n-    }\n-\n-    \u002F**\n-     * Sets the paper size & orientation\n-     *\n-     * @param string|float[] $size 'letter', 'legal', 'A4', etc. {@link Dompdf\\Adapter\\CPDF::$PAPER_SIZES}\n-     * @param string $orientation 'portrait' or 'landscape'\n-     * @return $this\n-     *\u002F\n-    public function setPaper($size, string $orientation = \"portrait\"): self\n-    {\n-        $this->paperSize = $size;\n-        $this->paperOrientation = $orientation;\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * Gets the paper size\n-     *\n-     * @return float[] A four-element float array\n-     *\u002F\n-    public function getPaperSize(): array\n-    {\n-        $paper = $this->paperSize;\n-        $orientation = $this->paperOrientation;\n-\n-        if (is_array($paper)) {\n-            $size = array_map(\"floatval\", $paper);\n-        } else {\n-            $paper = strtolower($paper);\n-            $size = CPDF::$PAPER_SIZES[$paper] ?? CPDF::$PAPER_SIZES[\"letter\"];\n-        }\n-\n-        if (strtolower($orientation) === \"landscape\") {\n-            [$size[2], $size[3]] = [$size[3], $size[2]];\n-        }\n-\n-        return $size;\n-    }\n-\n-    \u002F**\n-     * Gets the paper orientation\n-     *\n-     * @return string Either \"portrait\" or \"landscape\"\n-     *\u002F\n-    public function getPaperOrientation(): string\n-    {\n-        return $this->paperOrientation;\n-    }\n-\n-    \u002F**\n-     * @param FrameTree $tree\n-     * @return $this\n-     *\u002F\n-    public function setTree(FrameTree $tree)\n-    {\n-        $this->tree = $tree;\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @return FrameTree\n-     * @deprecated\n-     *\u002F\n-    public function get_tree()\n-    {\n-        return $this->getTree();\n-    }\n-\n-    \u002F**\n-     * Returns the underlying {@link FrameTree} object\n-     *\n-     * @return FrameTree\n-     *\u002F\n-    public function getTree()\n-    {\n-        return $this->tree;\n-    }\n-\n-    \u002F**\n-     * @param string $protocol\n-     * @return $this\n-     * @deprecated\n-     *\u002F\n-    public function set_protocol($protocol)\n-    {\n-        return $this->setProtocol($protocol);\n-    }\n-\n-    \u002F**\n-     * Sets the protocol to use\n-     * FIXME validate these\n-     *\n-     * @param string $protocol\n-     * @return $this\n-     *\u002F\n-    public function setProtocol(string $protocol)\n-    {\n-        $this->protocol = $protocol;\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @return string\n-     * @deprecated\n-     *\u002F\n-    public function get_protocol()\n-    {\n-        return $this->getProtocol();\n-    }\n-\n-    \u002F**\n-     * Returns the protocol in use\n-     *\n-     * @return string\n-     *\u002F\n-    public function getProtocol()\n-    {\n-        return $this->protocol;\n-    }\n-\n-    \u002F**\n-     * @param string $host\n-     * @deprecated\n-     *\u002F\n-    public function set_host($host)\n-    {\n-        $this->setBaseHost($host);\n-    }\n-\n-    \u002F**\n-     * Sets the base hostname\n-     *\n-     * @param string $baseHost\n-     * @return $this\n-     *\u002F\n-    public function setBaseHost(string $baseHost)\n-    {\n-        $this->baseHost = $baseHost;\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @return string\n-     * @deprecated\n-     *\u002F\n-    public function get_host()\n-    {\n-        return $this->getBaseHost();\n-    }\n-\n-    \u002F**\n-     * Returns the base hostname\n-     *\n-     * @return string\n-     *\u002F\n-    public function getBaseHost()\n-    {\n-        return $this->baseHost;\n-    }\n-\n-    \u002F**\n-     * Sets the base path\n-     *\n-     * @param string $path\n-     * @deprecated\n-     *\u002F\n-    public function set_base_path($path)\n-    {\n-        $this->setBasePath($path);\n-    }\n-\n-    \u002F**\n-     * Sets the base path\n-     *\n-     * @param string $basePath\n-     * @return $this\n-     *\u002F\n-    public function setBasePath(string $basePath)\n-    {\n-        $this->basePath = $basePath;\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @return string\n-     * @deprecated\n-     *\u002F\n-    public function get_base_path()\n-    {\n-        return $this->getBasePath();\n-    }\n-\n-    \u002F**\n-     * Returns the base path\n-     *\n-     * @return string\n-     *\u002F\n-    public function getBasePath()\n-    {\n-        return $this->basePath;\n-    }\n-\n-    \u002F**\n-     * @param string $default_view The default document view\n-     * @param array $options The view's options\n-     * @return $this\n-     * @deprecated\n-     *\u002F\n-    public function set_default_view($default_view, $options)\n-    {\n-        return $this->setDefaultView($default_view, $options);\n-    }\n-\n-    \u002F**\n-     * Sets the default view\n-     *\n-     * @param string $defaultView The default document view\n-     * @param array $options The view's options\n-     * @return $this\n-     *\u002F\n-    public function setDefaultView($defaultView, $options)\n-    {\n-        $this->defaultView = $defaultView;\n-        $this->defaultViewOptions = $options;\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @param resource $http_context\n-     * @return $this\n-     * @deprecated\n-     *\u002F\n-    public function set_http_context($http_context)\n-    {\n-        return $this->setHttpContext($http_context);\n-    }\n-\n-    \u002F**\n-     * Sets the HTTP context\n-     *\n-     * @param resource|array $httpContext\n-     * @return $this\n-     *\u002F\n-    public function setHttpContext($httpContext)\n-    {\n-        $this->options->setHttpContext($httpContext);\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @return resource\n-     * @deprecated\n-     *\u002F\n-    public function get_http_context()\n-    {\n-        return $this->getHttpContext();\n-    }\n-\n-    \u002F**\n-     * Returns the HTTP context\n-     *\n-     * @return resource\n-     *\u002F\n-    public function getHttpContext()\n-    {\n-        return $this->options->getHttpContext();\n-    }\n-\n-    \u002F**\n-     * Set a custom `Canvas` instance to render the document to.\n-     *\n-     * Be aware that the instance will be replaced on render if the document\n-     * defines a paper size different from the canvas.\n-     *\n-     * @param Canvas $canvas\n-     * @return $this\n-     *\u002F\n-    public function setCanvas(Canvas $canvas)\n-    {\n-        $this->canvas = $canvas;\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @return Canvas\n-     * @deprecated\n-     *\u002F\n-    public function get_canvas()\n-    {\n-        return $this->getCanvas();\n-    }\n-\n-    \u002F**\n-     * Return the underlying Canvas instance (e.g. Dompdf\\Adapter\\CPDF, Dompdf\\Adapter\\GD)\n-     *\n-     * @return Canvas\n-     *\u002F\n-    public function getCanvas()\n-    {\n-        return $this->canvas;\n-    }\n-\n-    \u002F**\n-     * @param Stylesheet $css\n-     * @return $this\n-     *\u002F\n-    public function setCss(Stylesheet $css)\n-    {\n-        $this->css = $css;\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @return Stylesheet\n-     * @deprecated\n-     *\u002F\n-    public function get_css()\n-    {\n-        return $this->getCss();\n-    }\n-\n-    \u002F**\n-     * Returns the stylesheet\n-     *\n-     * @return Stylesheet\n-     *\u002F\n-    public function getCss()\n-    {\n-        return $this->css;\n-    }\n-\n-    \u002F**\n-     * @param DOMDocument $dom\n-     * @return $this\n-     *\u002F\n-    public function setDom(DOMDocument $dom)\n-    {\n-        $this->dom = $dom;\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @return DOMDocument\n-     * @deprecated\n-     *\u002F\n-    public function get_dom()\n-    {\n-        return $this->getDom();\n-    }\n-\n-    \u002F**\n-     * @return DOMDocument\n-     *\u002F\n-    public function getDom()\n-    {\n-        return $this->dom;\n-    }\n-\n-    \u002F**\n-     * @param Options $options\n-     * @return $this\n-     *\u002F\n-    public function setOptions(Options $options)\n-    {\n-        \u002F\u002F For backwards compatibility\n-        if ($this->options && $this->options->getHttpContext() && !$options->getHttpContext()) {\n-            $options->setHttpContext($this->options->getHttpContext());\n-        }\n-\n-        $this->options = $options;\n-        $fontMetrics = $this->fontMetrics;\n-        if (isset($fontMetrics)) {\n-            $fontMetrics->setOptions($options);\n-        }\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @return Options\n-     *\u002F\n-    public function getOptions()\n-    {\n-        return $this->options;\n-    }\n-\n-    \u002F**\n-     * @return array\n-     * @deprecated\n-     *\u002F\n-    public function get_callbacks()\n-    {\n-        return $this->getCallbacks();\n-    }\n-\n-    \u002F**\n-     * Returns the callbacks array\n-     *\n-     * @return array\n-     *\u002F\n-    public function getCallbacks()\n-    {\n-        return $this->callbacks;\n-    }\n-\n-    \u002F**\n-     * @param array $callbacks the set of callbacks to set\n-     * @return $this\n-     * @deprecated\n-     *\u002F\n-    public function set_callbacks($callbacks)\n-    {\n-        return $this->setCallbacks($callbacks);\n-    }\n-\n-    \u002F**\n-     * Define callbacks that allow modifying the document during render.\n-     *\n-     * The callbacks array should contain arrays with `event` set to a callback\n-     * event name and `f` set to a function or any other callable.\n-     *\n-     * The available callback events are:\n-     * * `begin_page_reflow`: called before page reflow\n-     * * `begin_frame`: called before a frame is rendered\n-     * * `end_frame`: called after frame rendering is complete\n-     * * `begin_page_render`: called before a page is rendered\n-     * * `end_page_render`: called after page rendering is complete\n-     * * `end_document`: called for every page after rendering is complete\n-     *\n-     * The function `f` receives three arguments `Frame $frame`, `Canvas $canvas`,\n-     * and `FontMetrics $fontMetrics` for all events but `end_document`. For\n-     * `end_document`, the function receives four arguments `int $pageNumber`,\n-     * `int $pageCount`, `Canvas $canvas`, and `FontMetrics $fontMetrics` instead.\n-     *\n-     * @param array $callbacks The set of callbacks to set.\n-     * @return $this\n-     *\u002F\n-    public function setCallbacks(array $callbacks): self\n-    {\n-        $this->callbacks = [];\n-\n-        foreach ($callbacks as $c) {\n-            if (is_array($c) && isset($c[\"event\"]) && isset($c[\"f\"])) {\n-                $event = $c[\"event\"];\n-                $f = $c[\"f\"];\n-                if (is_string($event) && is_callable($f)) {\n-                    $this->callbacks[$event][] = $f;\n-                }\n-            }\n-        }\n-\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @return boolean\n-     * @deprecated\n-     *\u002F\n-    public function get_quirksmode()\n-    {\n-        return $this->getQuirksmode();\n-    }\n-\n-    \u002F**\n-     * Get the quirks mode\n-     *\n-     * @return boolean true if quirks mode is active\n-     *\u002F\n-    public function getQuirksmode()\n-    {\n-        return $this->quirksmode;\n-    }\n-\n-    \u002F**\n-     * @param FontMetrics $fontMetrics\n-     * @return $this\n-     *\u002F\n-    public function setFontMetrics(FontMetrics $fontMetrics)\n-    {\n-        $this->fontMetrics = $fontMetrics;\n-        return $this;\n-    }\n-\n-    \u002F**\n-     * @return FontMetrics\n-     *\u002F\n-    public function getFontMetrics()\n-    {\n-        return $this->fontMetrics;\n-    }\n-\n-    \u002F**\n-     * PHP5 overloaded getter\n-     * Along with {@link Dompdf::__set()} __get() provides access to all\n-     * properties directly.  Typically __get() is not called directly outside\n-     * of this class.\n-     *\n-     * @param string $prop\n-     *\n-     * @throws Exception\n-     * @return mixed\n-     *\u002F\n-    function __get($prop)\n-    {\n-        switch ($prop) {\n-            case 'version':\n-                return $this->version;\n-            default:\n-                throw new Exception('Invalid property: ' . $prop);\n-        }\n-    }\n-}\n+\u003C?php\r\n+\u002F**\r\n+ * @package dompdf\r\n+ * @link    https:\u002F\u002Fgithub.com\u002Fdompdf\u002Fdompdf\r\n+ * @license http:\u002F\u002Fwww.gnu.org\u002Fcopyleft\u002Flesser.html GNU Lesser General Public License\r\n+ *\u002F\r\n+namespace Dompdf;\r\n+\r\n+use DOMDocument;\r\n+use DOMNode;\r\n+use Dompdf\\Adapter\\CPDF;\r\n+use DOMXPath;\r\n+use Dompdf\\Frame\\Factory;\r\n+use Dompdf\\Frame\\FrameTree;\r\n+use Dompdf\\Image\\Cache;\r\n+use Dompdf\\Css\\Stylesheet;\r\n+use Dompdf\\Helpers;\r\n+use Masterminds\\HTML5;\r\n+\r\n+\u002F**\r\n+ * Dompdf - PHP5 HTML to PDF renderer\r\n+ *\r\n+ * Dompdf loads HTML and does its best to render it as a PDF.  It gets its\r\n+ * name from the new DomDocument PHP5 extension.  Source HTML is first\r\n+ * parsed by a DomDocument object.  Dompdf takes the resulting DOM tree and\r\n+ * attaches a {@link Frame} object to each node.  {@link Frame} objects store\r\n+ * positioning and layout information and each has a reference to a {@link\r\n+ * Style} object.\r\n+ *\r\n+ * Style information is loaded and parsed (see {@link Stylesheet}) and is\r\n+ * applied to the frames in the tree by using XPath.  CSS selectors are\r\n+ * converted into XPath queries, and the computed {@link Style} objects are\r\n+ * applied to the {@link Frame}s.\r\n+ *\r\n+ * {@link Frame}s are then decorated (in the design pattern sense of the\r\n+ * word) based on their CSS display property ({@link\r\n+ * http:\u002F\u002Fwww.w3.org\u002FTR\u002FCSS21\u002Fvisuren.html#propdef-display}).\r\n+ * Frame_Decorators augment the basic {@link Frame} class by adding\r\n+ * additional properties and methods specific to the particular type of\r\n+ * {@link Frame}.  For example, in the CSS layout model, block frames\r\n+ * (display: block;) contain line boxes that are usually filled with text or\r\n+ * other inline frames.  The Block therefore adds a $lines\r\n+ * property as well as methods to add {@link Frame}s to lines and to add\r\n+ * additional lines.  {@link Frame}s also are attached to specific\r\n+ * AbstractPositioner and {@link AbstractFrameReflower} objects that contain the\r\n+ * positioining and layout algorithm for a specific type of frame,\r\n+ * respectively.  This is an application of the Strategy pattern.\r\n+ *\r\n+ * Layout, or reflow, proceeds recursively (post-order) starting at the root\r\n+ * of the document.  Space constraints (containing block width & height) are\r\n+ * pushed down, and resolved positions and sizes bubble up.  Thus, every\r\n+ * {@link Frame} in the document tree is traversed once (except for tables\r\n+ * which use a two-pass layout algorithm).  If you are interested in the\r\n+ * details, see the reflow() method of the Reflower classes.\r\n+ *\r\n+ * Rendering is relatively straightforward once layout is complete. {@link\r\n+ * Frame}s are rendered using an adapted {@link Cpdf} class, originally\r\n+ * written by Wayne Munro, http:\u002F\u002Fwww.ros.co.nz\u002Fpdf\u002F.  (Some performance\r\n+ * related changes have been made to the original {@link Cpdf} class, and\r\n+ * the {@link Dompdf\\Adapter\\CPDF} class provides a simple, stateless interface to\r\n+ * PDF generation.)  PDFLib support has now also been added, via the {@link\r\n+ * Dompdf\\Adapter\\PDFLib}.\r\n+ *\r\n+ *\r\n+ * @package dompdf\r\n+ *\u002F\r\n+class Dompdf\r\n+{\r\n+    \u002F**\r\n+     * Version string for dompdf\r\n+     *\r\n+     * @var string\r\n+     *\u002F\r\n+    private $version = 'dompdf';\r\n+\r\n+    \u002F**\r\n+     * DomDocument representing the HTML document\r\n+     *\r\n+     * @var DOMDocument\r\n+     *\u002F\r\n+    private $dom;\r\n+\r\n+    \u002F**\r\n+     * FrameTree derived from the DOM tree\r\n+     *\r\n+     * @var FrameTree\r\n+     *\u002F\r\n+    private $tree;\r\n+\r\n+    \u002F**\r\n+     * Stylesheet for the document\r\n+     *\r\n+     * @var Stylesheet\r\n+     *\u002F\r\n+    private $css;\r\n+\r\n+    \u002F**\r\n+     * Actual PDF renderer\r\n+     *\r\n+     * @var Canvas\r\n+     *\u002F\r\n+    private $canvas;\r\n+\r\n+    \u002F**\r\n+     * Desired paper size ('letter', 'legal', 'A4', etc.)\r\n+     *\r\n+     * @var string|float[]\r\n+     *\u002F\r\n+    private $paperSize;\r\n+\r\n+    \u002F**\r\n+     * Paper orientation ('portrait' or 'landscape')\r\n+     *\r\n+     * @var string\r\n+     *\u002F\r\n+    private $paperOrientation = \"portrait\";\r\n+\r\n+    \u002F**\r\n+     * Callbacks on new page and new element\r\n+     *\r\n+     * @var array\r\n+     *\u002F\r\n+    private $callbacks = [];\r\n+\r\n+    \u002F**\r\n+     * Experimental caching capability\r\n+     *\r\n+     * @var string\r\n+     *\u002F\r\n+    private $cacheId;\r\n+\r\n+    \u002F**\r\n+     * Base hostname\r\n+     *\r\n+     * Used for relative paths\u002Furls\r\n+     * @var string\r\n+     *\u002F\r\n+    private $baseHost = \"\";\r\n+\r\n+    \u002F**\r\n+     * Absolute base path\r\n+     *\r\n+     * Used for relative paths\u002Furls\r\n+     * @var string\r\n+     *\u002F\r\n+    private $basePath = \"\";\r\n+\r\n+    \u002F**\r\n+     * Protocol used to request file (file:\u002F\u002F, http:\u002F\u002F, etc)\r\n+     *\r\n+     * @var string\r\n+     *\u002F\r\n+    private $protocol = \"\";\r\n+\r\n+    \u002F**\r\n+     * The system's locale\r\n+     *\r\n+     * @var string\r\n+     *\u002F\r\n+    private $systemLocale = null;\r\n+\r\n+    \u002F**\r\n+     * The system's mbstring internal encoding\r\n+     *\r\n+     * @var string\r\n+     *\u002F\r\n+    private $mbstringEncoding = null;\r\n+\r\n+    \u002F**\r\n+     * The system's PCRE JIT configuration\r\n+     *\r\n+     * @var string\r\n+     *\u002F\r\n+    private $pcreJit = null;\r\n+\r\n+    \u002F**\r\n+     * The default view of the PDF in the viewer\r\n+     *\r\n+     * @var string\r\n+     *\u002F\r\n+    private $defaultView = \"Fit\";\r\n+\r\n+    \u002F**\r\n+     * The default view options of the PDF in the viewer\r\n+     *\r\n+     * @var array\r\n+     *\u002F\r\n+    private $defaultViewOptions = [];\r\n+\r\n+    \u002F**\r\n+     * Tells whether the DOM document is in quirksmode (experimental)\r\n+     *\r\n+     * @var bool\r\n+     *\u002F\r\n+    private $quirksmode = false;\r\n+\r\n+    \u002F**\r\n+    * Local file extension whitelist\r\n+    *\r\n+    * File extensions supported by dompdf for local files.\r\n+    *\r\n+    * @var array\r\n+    *\u002F\r\n+    private $allowedLocalFileExtensions = [\"htm\", \"html\"];\r\n+\r\n+    \u002F**\r\n+     * @var array\r\n+     *\u002F\r\n+    private $messages = [];\r\n+\r\n+    \u002F**\r\n+     * @var Options\r\n+     *\u002F\r\n+    private $options;\r\n+\r\n+    \u002F**\r\n+     * @var FontMetrics\r\n+     *\u002F\r\n+    private $fontMetrics;\r\n+\r\n+    \u002F**\r\n+     * The list of built-in fonts\r\n+     *\r\n+     * @var array\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public static $native_fonts = [\r\n+        \"courier\", \"courier-bold\", \"courier-oblique\", \"courier-boldoblique\",\r\n+        \"helvetica\", \"helvetica-bold\", \"helvetica-oblique\", \"helvetica-boldoblique\",\r\n+        \"times-roman\", \"times-bold\", \"times-italic\", \"times-bolditalic\",\r\n+        \"symbol\", \"zapfdinbats\"\r\n+    ];\r\n+\r\n+    \u002F**\r\n+     * The list of built-in fonts\r\n+     *\r\n+     * @var array\r\n+     *\u002F\r\n+    public static $nativeFonts = [\r\n+        \"courier\", \"courier-bold\", \"courier-oblique\", \"courier-boldoblique\",\r\n+        \"helvetica\", \"helvetica-bold\", \"helvetica-oblique\", \"helvetica-boldoblique\",\r\n+        \"times-roman\", \"times-bold\", \"times-italic\", \"times-bolditalic\",\r\n+        \"symbol\", \"zapfdinbats\"\r\n+    ];\r\n+\r\n+    \u002F**\r\n+     * Class constructor\r\n+     *\r\n+     * @param Options|array|null $options\r\n+     *\u002F\r\n+    public function __construct($options = null)\r\n+    {\r\n+        if (isset($options) && $options instanceof Options) {\r\n+            $this->setOptions($options);\r\n+        } elseif (is_array($options)) {\r\n+            $this->setOptions(new Options($options));\r\n+        } else {\r\n+            $this->setOptions(new Options());\r\n+        }\r\n+\r\n+        $versionFile = realpath(__DIR__ . '\u002F..\u002FVERSION');\r\n+        if (($version = file_get_contents($versionFile)) !== false) {\r\n+            $version = trim($version);\r\n+            if ($version !== '$Format:\u003C%h>$') {\r\n+                $this->version = sprintf('dompdf %s', $version);\r\n+            }\r\n+        }\r\n+\r\n+        $this->setPhpConfig();\r\n+\r\n+        $this->paperSize = $this->options->getDefaultPaperSize();\r\n+        $this->paperOrientation = $this->options->getDefaultPaperOrientation();\r\n+\r\n+        $this->canvas = CanvasFactory::get_instance($this, $this->paperSize, $this->paperOrientation);\r\n+        $this->fontMetrics = new FontMetrics($this->canvas, $this->options);\r\n+        $this->css = new Stylesheet($this);\r\n+\r\n+        $this->restorePhpConfig();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Save the system's existing locale, PCRE JIT, and MBString encoding\r\n+     * configuration and configure the system for Dompdf processing\r\n+     *\u002F\r\n+    private function setPhpConfig()\r\n+    {\r\n+        if (sprintf('%.1f', 1.0) !== '1.0') {\r\n+            $this->systemLocale = setlocale(LC_NUMERIC, \"0\");\r\n+            setlocale(LC_NUMERIC, \"C\");\r\n+        }\r\n+\r\n+        $this->pcreJit = @ini_get('pcre.jit');\r\n+        @ini_set('pcre.jit', '0');\r\n+\r\n+        $this->mbstringEncoding = mb_internal_encoding();\r\n+        mb_internal_encoding('UTF-8');\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Restore the system's locale configuration\r\n+     *\u002F\r\n+    private function restorePhpConfig()\r\n+    {\r\n+        if ($this->systemLocale !== null) {\r\n+            setlocale(LC_NUMERIC, $this->systemLocale);\r\n+            $this->systemLocale = null;\r\n+        }\r\n+\r\n+        if ($this->pcreJit !== null) {\r\n+            @ini_set('pcre.jit', $this->pcreJit);\r\n+            $this->pcreJit = null;\r\n+        }\r\n+\r\n+        if ($this->mbstringEncoding !== null) {\r\n+            mb_internal_encoding($this->mbstringEncoding);\r\n+            $this->mbstringEncoding = null;\r\n+        }\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param $file\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function load_html_file($file)\r\n+    {\r\n+        $this->loadHtmlFile($file);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Loads an HTML file\r\n+     * Parse errors are stored in the global array _dompdf_warnings.\r\n+     *\r\n+     * @param string $file a filename or url to load\r\n+     * @param string $encoding Encoding of $file\r\n+     *\r\n+     * @throws Exception\r\n+     *\u002F\r\n+    public function loadHtmlFile($file, $encoding = null)\r\n+    {\r\n+        $this->setPhpConfig();\r\n+\r\n+        if (!$this->protocol && !$this->baseHost && !$this->basePath) {\r\n+            [$this->protocol, $this->baseHost, $this->basePath] = Helpers::explode_url($file);\r\n+        }\r\n+        $protocol = strtolower($this->protocol);\r\n+        $uri = Helpers::build_url($this->protocol, $this->baseHost, $this->basePath, $file);\r\n+\r\n+        $allowed_protocols = $this->options->getAllowedProtocols();\r\n+        if (!array_key_exists($protocol, $allowed_protocols)) {\r\n+            throw new Exception(\"Permission denied on $file. The communication protocol is not supported.\");\r\n+        }\r\n+\r\n+        if ($protocol === \"file:\u002F\u002F\") {\r\n+            $ext = strtolower(pathinfo($uri, PATHINFO_EXTENSION));\r\n+            if (!in_array($ext, $this->allowedLocalFileExtensions)) {\r\n+                throw new Exception(\"Permission denied on $file: The file extension is forbidden.\");\r\n+            }\r\n+        }\r\n+\r\n+        foreach ($allowed_protocols[$protocol][\"rules\"] as $rule) {\r\n+            [$result, $message] = $rule($uri);\r\n+            if (!$result) {\r\n+                throw new Exception(\"Error loading $file: $message\");\r\n+            }\r\n+        }\r\n+\r\n+        [$contents, $http_response_header] = Helpers::getFileContent($uri, $this->options->getHttpContext());\r\n+        if ($contents === null) {\r\n+            throw new Exception(\"File '$file' not found.\");\r\n+        }\r\n+\r\n+        \u002F\u002F See http:\u002F\u002Fthe-stickman.com\u002Fweb-development\u002Fphp\u002Fgetting-http-response-headers-when-using-file_get_contents\u002F\r\n+        if (isset($http_response_header)) {\r\n+            foreach ($http_response_header as $_header) {\r\n+                if (preg_match(\"@Content-Type:\\s*[\\w\u002F]+;\\s*?charset=([^\\s]+)@i\", $_header, $matches)) {\r\n+                    $encoding = strtoupper($matches[1]);\r\n+                    break;\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        $this->restorePhpConfig();\r\n+\r\n+        $this->loadHtml($contents, $encoding);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param string $str\r\n+     * @param string $encoding\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function load_html($str, $encoding = null)\r\n+    {\r\n+        $this->loadHtml($str, $encoding);\r\n+    }\r\n+\r\n+    public function loadDOM($doc, $quirksmode = false) {\r\n+        \u002F\u002F Remove #text children nodes in nodes that shouldn't have\r\n+        $tag_names = [\"html\", \"head\", \"table\", \"tbody\", \"thead\", \"tfoot\", \"tr\"];\r\n+        foreach ($tag_names as $tag_name) {\r\n+            $nodes = $doc->getElementsByTagName($tag_name);\r\n+\r\n+            foreach ($nodes as $node) {\r\n+                self::removeTextNodes($node);\r\n+            }\r\n+        }\r\n+\r\n+        $this->dom = $doc;\r\n+        $this->quirksmode = $quirksmode;\r\n+        $this->tree = new FrameTree($this->dom);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Loads an HTML string\r\n+     * Parse errors are stored in the global array _dompdf_warnings.\r\n+     *\r\n+     * @param string $str HTML text to load\r\n+     * @param string $encoding Encoding of $str\r\n+     *\u002F\r\n+    public function loadHtml($str, $encoding = null)\r\n+    {\r\n+        $this->setPhpConfig();\r\n+\r\n+        \u002F\u002F Determine character encoding when $encoding parameter not used\r\n+        if ($encoding === null) {\r\n+            mb_detect_order('auto');\r\n+            if (($encoding = mb_detect_encoding($str, null, true)) === false) {\r\n+\r\n+                \u002F\u002F\"auto\" is expanded to \"ASCII,JIS,UTF-8,EUC-JP,SJIS\"\r\n+                $encoding = \"auto\";\r\n+            }\r\n+        }\r\n+\r\n+        if (in_array(strtoupper($encoding), array('UTF-8','UTF8')) === false) {\r\n+            $str = mb_convert_encoding($str, 'UTF-8', $encoding);\r\n+\r\n+            \u002F\u002FUpdate encoding after converting\r\n+            $encoding = 'UTF-8';\r\n+        }\r\n+\r\n+        $metatags = [\r\n+            '@\u003Cmeta\\s+http-equiv=\"Content-Type\"\\s+content=\"(?:[\\w\u002F]+)(?:;\\s*?charset=([^\\s\"]+))?@i',\r\n+            '@\u003Cmeta\\s+content=\"(?:[\\w\u002F]+)(?:;\\s*?charset=([^\\s\"]+))\"?\\s+http-equiv=\"Content-Type\"@i',\r\n+            '@\u003Cmeta [^>]*charset\\s*=\\s*[\"\\']?\\s*([^\"\\' ]+)@i',\r\n+        ];\r\n+        foreach ($metatags as $metatag) {\r\n+            if (preg_match($metatag, $str, $matches)) {\r\n+                if (isset($matches[1]) && in_array($matches[1], mb_list_encodings())) {\r\n+                    $document_encoding = $matches[1];\r\n+                    break;\r\n+                }\r\n+            }\r\n+        }\r\n+        if (isset($document_encoding) && in_array(strtoupper($document_encoding), ['UTF-8','UTF8']) === false) {\r\n+            $str = preg_replace('\u002Fcharset=([^\\s\"]+)\u002Fi', 'charset=UTF-8', $str);\r\n+        } elseif (isset($document_encoding) === false && strpos($str, '\u003Chead>') !== false) {\r\n+            $str = str_replace('\u003Chead>', '\u003Chead>\u003Cmeta http-equiv=\"Content-Type\" content=\"text\u002Fhtml;charset=UTF-8\">', $str);\r\n+        } elseif (isset($document_encoding) === false) {\r\n+            $str = '\u003Cmeta http-equiv=\"Content-Type\" content=\"text\u002Fhtml;charset=UTF-8\">' . $str;\r\n+        }\r\n+\r\n+        \u002F\u002F remove BOM mark from UTF-8, it's treated as document text by DOMDocument\r\n+        \u002F\u002F FIXME: roll this into the encoding detection using UTF-8\u002F16\u002F32 BOM (http:\u002F\u002Fus2.php.net\u002Fmanual\u002Fen\u002Ffunction.mb-detect-encoding.php#91051)?\r\n+        if (substr($str, 0, 3) == chr(0xEF) . chr(0xBB) . chr(0xBF)) {\r\n+            $str = substr($str, 3);\r\n+        }\r\n+\r\n+        \u002F\u002F Store parsing warnings as messages\r\n+        set_error_handler([Helpers::class, 'record_warnings']);\r\n+\r\n+        try {\r\n+            \u002F\u002F @todo Take the quirksmode into account\r\n+            \u002F\u002F https:\u002F\u002Fquirks.spec.whatwg.org\u002F\r\n+            \u002F\u002F http:\u002F\u002Fhsivonen.iki.fi\u002Fdoctype\u002F\r\n+            $quirksmode = false;\r\n+\r\n+            $html5 = new HTML5(['encoding' => $encoding, 'disable_html_ns' => true]);\r\n+            $dom = $html5->loadHTML($str);\r\n+\r\n+            \u002F\u002F extra step to normalize the HTML document structure\r\n+            \u002F\u002F see Masterminds\u002Fhtml5-php#166\r\n+            $doc = new DOMDocument(\"1.0\", $encoding);\r\n+            $doc->preserveWhiteSpace = true;\r\n+            $doc->loadHTML($html5->saveHTML($dom), LIBXML_NOWARNING | LIBXML_NOERROR);\r\n+\r\n+            $this->loadDOM($doc, $quirksmode);\r\n+        } finally {\r\n+            restore_error_handler();\r\n+            $this->restorePhpConfig();\r\n+        }\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param DOMNode $node\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public static function remove_text_nodes(DOMNode $node)\r\n+    {\r\n+        self::removeTextNodes($node);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param DOMNode $node\r\n+     *\u002F\r\n+    public static function removeTextNodes(DOMNode $node)\r\n+    {\r\n+        $children = [];\r\n+        for ($i = 0; $i \u003C $node->childNodes->length; $i++) {\r\n+            $child = $node->childNodes->item($i);\r\n+            if ($child->nodeName === \"#text\") {\r\n+                $children[] = $child;\r\n+            }\r\n+        }\r\n+\r\n+        foreach ($children as $child) {\r\n+            $node->removeChild($child);\r\n+        }\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Builds the {@link FrameTree}, loads any CSS and applies the styles to\r\n+     * the {@link FrameTree}\r\n+     *\u002F\r\n+    private function processHtml()\r\n+    {\r\n+        $this->tree->build_tree();\r\n+\r\n+        $this->css->load_css_file($this->css->getDefaultStylesheet(), Stylesheet::ORIG_UA);\r\n+\r\n+        $acceptedmedia = Stylesheet::$ACCEPTED_GENERIC_MEDIA_TYPES;\r\n+        $acceptedmedia[] = $this->options->getDefaultMediaType();\r\n+\r\n+        \u002F\u002F \u003Cbase href=\"\" \u002F>\r\n+        \u002F** @var \\DOMElement|null *\u002F\r\n+        $baseNode = $this->dom->getElementsByTagName(\"base\")->item(0);\r\n+        $baseHref = $baseNode ? $baseNode->getAttribute(\"href\") : \"\";\r\n+        if ($baseHref !== \"\") {\r\n+            [$this->protocol, $this->baseHost, $this->basePath] = Helpers::explode_url($baseHref);\r\n+        }\r\n+\r\n+        \u002F\u002F Set the base path of the Stylesheet to that of the file being processed\r\n+        $this->css->set_protocol($this->protocol);\r\n+        $this->css->set_host($this->baseHost);\r\n+        $this->css->set_base_path($this->basePath);\r\n+\r\n+        \u002F\u002F Get all the stylesheets so that they are processed in document order\r\n+        $xpath = new DOMXPath($this->dom);\r\n+        $stylesheets = $xpath->query(\"\u002F\u002F*[name() = 'link' or name() = 'style']\");\r\n+\r\n+        \u002F** @var \\DOMElement $tag *\u002F\r\n+        foreach ($stylesheets as $tag) {\r\n+            switch (strtolower($tag->nodeName)) {\r\n+                \u002F\u002F load \u003Clink rel=\"STYLESHEET\" ... \u002F> tags\r\n+                case \"link\":\r\n+                    if (mb_strtolower(stripos($tag->getAttribute(\"rel\"), \"stylesheet\") !== false) || \u002F\u002F may be \"appendix stylesheet\"\r\n+                        mb_strtolower($tag->getAttribute(\"type\")) === \"text\u002Fcss\"\r\n+                    ) {\r\n+                        \u002F\u002FCheck if the css file is for an accepted media type\r\n+                        \u002F\u002Fmedia not given then always valid\r\n+                        $formedialist = preg_split(\"\u002F[\\s\\n,]\u002F\", $tag->getAttribute(\"media\"), -1, PREG_SPLIT_NO_EMPTY);\r\n+                        if (count($formedialist) > 0) {\r\n+                            $accept = false;\r\n+                            foreach ($formedialist as $type) {\r\n+                                if (in_array(mb_strtolower(trim($type)), $acceptedmedia)) {\r\n+                                    $accept = true;\r\n+                                    break;\r\n+                                }\r\n+                            }\r\n+\r\n+                            if (!$accept) {\r\n+                                \u002F\u002Ffound at least one mediatype, but none of the accepted ones\r\n+                                \u002F\u002FSkip this css file.\r\n+                                break;\r\n+                            }\r\n+                        }\r\n+\r\n+                        $url = $tag->getAttribute(\"href\");\r\n+                        $url = Helpers::build_url($this->protocol, $this->baseHost, $this->basePath, $url);\r\n+\r\n+                        if ($url !== null) {\r\n+                            $this->css->load_css_file($url, Stylesheet::ORIG_AUTHOR);\r\n+                        }\r\n+                    }\r\n+                    break;\r\n+\r\n+                \u002F\u002F load \u003Cstyle> tags\r\n+                case \"style\":\r\n+                    \u002F\u002F Accept all \u003Cstyle> tags by default (note this is contrary to W3C\r\n+                    \u002F\u002F HTML 4.0 spec:\r\n+                    \u002F\u002F http:\u002F\u002Fwww.w3.org\u002FTR\u002FREC-html40\u002Fpresent\u002Fstyles.html#adef-media\r\n+                    \u002F\u002F which states that the default media type is 'screen'\r\n+                    if ($tag->hasAttributes() &&\r\n+                        ($media = $tag->getAttribute(\"media\")) &&\r\n+                        !in_array($media, $acceptedmedia)\r\n+                    ) {\r\n+                        break;\r\n+                    }\r\n+\r\n+                    $css = \"\";\r\n+                    if ($tag->hasChildNodes()) {\r\n+                        $child = $tag->firstChild;\r\n+                        while ($child) {\r\n+                            $css .= $child->nodeValue; \u002F\u002F Handle \u003Cstyle>\u003C!-- blah -->\u003C\u002Fstyle>\r\n+                            $child = $child->nextSibling;\r\n+                        }\r\n+                    } else {\r\n+                        $css = $tag->nodeValue;\r\n+                    }\r\n+\r\n+                    \u002F\u002F Set the base path of the Stylesheet to that of the file being processed\r\n+                    $this->css->set_protocol($this->protocol);\r\n+                    $this->css->set_host($this->baseHost);\r\n+                    $this->css->set_base_path($this->basePath);\r\n+\r\n+                    $this->css->load_css($css, Stylesheet::ORIG_AUTHOR);\r\n+                    break;\r\n+            }\r\n+\r\n+            \u002F\u002F Set the base path of the Stylesheet to that of the file being processed\r\n+            $this->css->set_protocol($this->protocol);\r\n+            $this->css->set_host($this->baseHost);\r\n+            $this->css->set_base_path($this->basePath);\r\n+        }\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param string $cacheId\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function enable_caching($cacheId)\r\n+    {\r\n+        $this->enableCaching($cacheId);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Enable experimental caching capability\r\n+     *\r\n+     * @param string $cacheId\r\n+     *\u002F\r\n+    public function enableCaching($cacheId)\r\n+    {\r\n+        $this->cacheId = $cacheId;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param string $value\r\n+     * @return bool\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function parse_default_view($value)\r\n+    {\r\n+        return $this->parseDefaultView($value);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param string $value\r\n+     * @return bool\r\n+     *\u002F\r\n+    public function parseDefaultView($value)\r\n+    {\r\n+        $valid = [\"XYZ\", \"Fit\", \"FitH\", \"FitV\", \"FitR\", \"FitB\", \"FitBH\", \"FitBV\"];\r\n+\r\n+        $options = preg_split(\"\u002F\\s*,\\s*\u002F\", trim($value));\r\n+        $defaultView = array_shift($options);\r\n+\r\n+        if (!in_array($defaultView, $valid)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        $this->setDefaultView($defaultView, $options);\r\n+        return true;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Renders the HTML to PDF\r\n+     *\u002F\r\n+    public function render()\r\n+    {\r\n+        $this->setPhpConfig();\r\n+\r\n+        $logOutputFile = $this->options->getLogOutputFile();\r\n+        if ($logOutputFile) {\r\n+            if (!file_exists($logOutputFile) && is_writable(dirname($logOutputFile))) {\r\n+                touch($logOutputFile);\r\n+            }\r\n+\r\n+            $startTime = microtime(true);\r\n+            if (is_writable($logOutputFile)) {\r\n+                ob_start();\r\n+            }\r\n+        }\r\n+\r\n+        $this->processHtml();\r\n+\r\n+        $this->css->apply_styles($this->tree);\r\n+\r\n+        \u002F\u002F @page style rules : size, margins\r\n+        $pageStyles = $this->css->get_page_styles();\r\n+        $basePageStyle = $pageStyles[\"base\"];\r\n+        unset($pageStyles[\"base\"]);\r\n+\r\n+        foreach ($pageStyles as $pageStyle) {\r\n+            $pageStyle->inherit($basePageStyle);\r\n+        }\r\n+\r\n+        \u002F\u002F Set paper size if defined via CSS\r\n+        if (is_array($basePageStyle->size)) {\r\n+            [$width, $height] = $basePageStyle->size;\r\n+            $this->setPaper([0, 0, $width, $height]);\r\n+        }\r\n+\r\n+        \u002F\u002F Create a new canvas instance if the current one does not match the\r\n+        \u002F\u002F desired paper size\r\n+        $canvasWidth = $this->canvas->get_width();\r\n+        $canvasHeight = $this->canvas->get_height();\r\n+        $size = $this->getPaperSize();\r\n+\r\n+        if ($canvasWidth !== $size[2] || $canvasHeight !== $size[3]) {\r\n+            $this->canvas = CanvasFactory::get_instance($this, $this->paperSize, $this->paperOrientation);\r\n+            $this->fontMetrics->setCanvas($this->canvas);\r\n+        }\r\n+\r\n+        $canvas = $this->canvas;\r\n+\r\n+        $root_frame = $this->tree->get_root();\r\n+        $root = Factory::decorate_root($root_frame, $this);\r\n+        foreach ($this->tree as $frame) {\r\n+            if ($frame === $root_frame) {\r\n+                continue;\r\n+            }\r\n+            Factory::decorate_frame($frame, $this, $root);\r\n+        }\r\n+\r\n+        \u002F\u002F Add meta information\r\n+        $title = $this->dom->getElementsByTagName(\"title\");\r\n+        if ($title->length) {\r\n+            $canvas->add_info(\"Title\", trim($title->item(0)->nodeValue));\r\n+        }\r\n+\r\n+        $metas = $this->dom->getElementsByTagName(\"meta\");\r\n+        $labels = [\r\n+            \"author\" => \"Author\",\r\n+            \"keywords\" => \"Keywords\",\r\n+            \"description\" => \"Subject\",\r\n+        ];\r\n+        \u002F** @var \\DOMElement $meta *\u002F\r\n+        foreach ($metas as $meta) {\r\n+            $name = mb_strtolower($meta->getAttribute(\"name\"));\r\n+            $value = trim($meta->getAttribute(\"content\"));\r\n+\r\n+            if (isset($labels[$name])) {\r\n+                $canvas->add_info($labels[$name], $value);\r\n+                continue;\r\n+            }\r\n+\r\n+            if ($name === \"dompdf.view\" && $this->parseDefaultView($value)) {\r\n+                $canvas->set_default_view($this->defaultView, $this->defaultViewOptions);\r\n+            }\r\n+        }\r\n+\r\n+        $root->set_containing_block(0, 0, $canvas->get_width(), $canvas->get_height());\r\n+        $root->set_renderer(new Renderer($this));\r\n+\r\n+        \u002F\u002F This is where the magic happens:\r\n+        $root->reflow();\r\n+\r\n+        if (isset($this->callbacks[\"end_document\"])) {\r\n+            $fs = $this->callbacks[\"end_document\"];\r\n+\r\n+            foreach ($fs as $f) {\r\n+                $canvas->page_script($f);\r\n+            }\r\n+        }\r\n+\r\n+        \u002F\u002F Clean up cached images\r\n+        if (!$this->options->getDebugKeepTemp()) {\r\n+            Cache::clear($this->options->getDebugPng());\r\n+        }\r\n+\r\n+        global $_dompdf_warnings, $_dompdf_show_warnings;\r\n+        if ($_dompdf_show_warnings && isset($_dompdf_warnings)) {\r\n+            echo '\u003Cb>Dompdf Warnings\u003C\u002Fb>\u003Cbr>\u003Cpre>';\r\n+            foreach ($_dompdf_warnings as $msg) {\r\n+                echo $msg . \"\\n\";\r\n+            }\r\n+\r\n+            if ($canvas instanceof CPDF) {\r\n+                echo $canvas->get_cpdf()->messages;\r\n+            }\r\n+            echo '\u003C\u002Fpre>';\r\n+            flush();\r\n+        }\r\n+\r\n+        if ($logOutputFile && is_writable($logOutputFile)) {\r\n+            $this->writeLog($logOutputFile, $startTime);\r\n+            ob_end_clean();\r\n+        }\r\n+\r\n+        $this->restorePhpConfig();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Writes the output buffer in the log file\r\n+     *\r\n+     * @param string $logOutputFile\r\n+     * @param float $startTime\r\n+     *\u002F\r\n+    private function writeLog(string $logOutputFile, float $startTime): void\r\n+    {\r\n+        $frames = Frame::$ID_COUNTER;\r\n+        $memory = memory_get_peak_usage(true) \u002F 1024;\r\n+        $time = (microtime(true) - $startTime) * 1000;\r\n+\r\n+        $out = sprintf(\r\n+            \"\u003Cspan style='color: #000' title='Frames'>%6d\u003C\u002Fspan>\" .\r\n+            \"\u003Cspan style='color: #009' title='Memory'>%10.2f KB\u003C\u002Fspan>\" .\r\n+            \"\u003Cspan style='color: #900' title='Time'>%10.2f ms\u003C\u002Fspan>\" .\r\n+            \"\u003Cspan  title='Quirksmode'>  \" .\r\n+            ($this->quirksmode ? \"\u003Cspan style='color: #d00'> ON\u003C\u002Fspan>\" : \"\u003Cspan style='color: #0d0'>OFF\u003C\u002Fspan>\") .\r\n+            \"\u003C\u002Fspan>\u003Cbr \u002F>\", $frames, $memory, $time);\r\n+\r\n+        $out .= ob_get_contents();\r\n+        ob_clean();\r\n+\r\n+        file_put_contents($logOutputFile, $out);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Add meta information to the PDF after rendering.\r\n+     *\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function add_info($label, $value)\r\n+    {\r\n+        $this->addInfo($label, $value);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Add meta information to the PDF after rendering.\r\n+     *\r\n+     * @param string $label Label of the value (Creator, Producer, etc.)\r\n+     * @param string $value The text to set\r\n+     *\u002F\r\n+    public function addInfo(string $label, string $value): void\r\n+    {\r\n+        $this->canvas->add_info($label, $value);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Streams the PDF to the client.\r\n+     *\r\n+     * The file will open a download dialog by default. The options\r\n+     * parameter controls the output. Accepted options (array keys) are:\r\n+     *\r\n+     * 'compress' = > 1 (=default) or 0:\r\n+     *   Apply content stream compression\r\n+     *\r\n+     * 'Attachment' => 1 (=default) or 0:\r\n+     *   Set the 'Content-Disposition:' HTTP header to 'attachment'\r\n+     *   (thereby causing the browser to open a download dialog)\r\n+     *\r\n+     * @param string $filename the name of the streamed file\r\n+     * @param array $options header options (see above)\r\n+     *\u002F\r\n+    public function stream($filename = \"document.pdf\", $options = [])\r\n+    {\r\n+        $this->setPhpConfig();\r\n+\r\n+        $this->canvas->stream($filename, $options);\r\n+\r\n+        $this->restorePhpConfig();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Returns the PDF as a string.\r\n+     *\r\n+     * The options parameter controls the output. Accepted options are:\r\n+     *\r\n+     * 'compress' = > 1 or 0 - apply content stream compression, this is\r\n+     *    on (1) by default\r\n+     *\r\n+     * @param array $options options (see above)\r\n+     *\r\n+     * @return string|null\r\n+     *\u002F\r\n+    public function output($options = [])\r\n+    {\r\n+        $this->setPhpConfig();\r\n+\r\n+        $output = $this->canvas->output($options);\r\n+\r\n+        $this->restorePhpConfig();\r\n+\r\n+        return $output;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return string\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function output_html()\r\n+    {\r\n+        return $this->outputHtml();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Returns the underlying HTML document as a string\r\n+     *\r\n+     * @return string\r\n+     *\u002F\r\n+    public function outputHtml()\r\n+    {\r\n+        return $this->dom->saveHTML();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Get the dompdf option value\r\n+     *\r\n+     * @param string $key\r\n+     * @return mixed\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function get_option($key)\r\n+    {\r\n+        return $this->options->get($key);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param string $key\r\n+     * @param mixed $value\r\n+     * @return $this\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function set_option($key, $value)\r\n+    {\r\n+        $this->options->set($key, $value);\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param array $options\r\n+     * @return $this\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function set_options(array $options)\r\n+    {\r\n+        $this->options->set($options);\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param string $size\r\n+     * @param string $orientation\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function set_paper($size, $orientation = \"portrait\")\r\n+    {\r\n+        $this->setPaper($size, $orientation);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Sets the paper size & orientation\r\n+     *\r\n+     * @param string|float[] $size 'letter', 'legal', 'A4', etc. {@link Dompdf\\Adapter\\CPDF::$PAPER_SIZES}\r\n+     * @param string $orientation 'portrait' or 'landscape'\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setPaper($size, string $orientation = \"portrait\"): self\r\n+    {\r\n+        $this->paperSize = $size;\r\n+        $this->paperOrientation = $orientation;\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Gets the paper size\r\n+     *\r\n+     * @return float[] A four-element float array\r\n+     *\u002F\r\n+    public function getPaperSize(): array\r\n+    {\r\n+        $paper = $this->paperSize;\r\n+        $orientation = $this->paperOrientation;\r\n+\r\n+        if (is_array($paper)) {\r\n+            $size = array_map(\"floatval\", $paper);\r\n+        } else {\r\n+            $paper = strtolower($paper);\r\n+            $size = CPDF::$PAPER_SIZES[$paper] ?? CPDF::$PAPER_SIZES[\"letter\"];\r\n+        }\r\n+\r\n+        if (strtolower($orientation) === \"landscape\") {\r\n+            [$size[2], $size[3]] = [$size[3], $size[2]];\r\n+        }\r\n+\r\n+        return $size;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Gets the paper orientation\r\n+     *\r\n+     * @return string Either \"portrait\" or \"landscape\"\r\n+     *\u002F\r\n+    public function getPaperOrientation(): string\r\n+    {\r\n+        return $this->paperOrientation;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param FrameTree $tree\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setTree(FrameTree $tree)\r\n+    {\r\n+        $this->tree = $tree;\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return FrameTree\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function get_tree()\r\n+    {\r\n+        return $this->getTree();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Returns the underlying {@link FrameTree} object\r\n+     *\r\n+     * @return FrameTree\r\n+     *\u002F\r\n+    public function getTree()\r\n+    {\r\n+        return $this->tree;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param string $protocol\r\n+     * @return $this\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function set_protocol($protocol)\r\n+    {\r\n+        return $this->setProtocol($protocol);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Sets the protocol to use\r\n+     * FIXME validate these\r\n+     *\r\n+     * @param string $protocol\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setProtocol(string $protocol)\r\n+    {\r\n+        $this->protocol = $protocol;\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return string\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function get_protocol()\r\n+    {\r\n+        return $this->getProtocol();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Returns the protocol in use\r\n+     *\r\n+     * @return string\r\n+     *\u002F\r\n+    public function getProtocol()\r\n+    {\r\n+        return $this->protocol;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param string $host\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function set_host($host)\r\n+    {\r\n+        $this->setBaseHost($host);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Sets the base hostname\r\n+     *\r\n+     * @param string $baseHost\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setBaseHost(string $baseHost)\r\n+    {\r\n+        $this->baseHost = $baseHost;\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return string\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function get_host()\r\n+    {\r\n+        return $this->getBaseHost();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Returns the base hostname\r\n+     *\r\n+     * @return string\r\n+     *\u002F\r\n+    public function getBaseHost()\r\n+    {\r\n+        return $this->baseHost;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Sets the base path\r\n+     *\r\n+     * @param string $path\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function set_base_path($path)\r\n+    {\r\n+        $this->setBasePath($path);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Sets the base path\r\n+     *\r\n+     * @param string $basePath\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setBasePath(string $basePath)\r\n+    {\r\n+        $this->basePath = $basePath;\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return string\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function get_base_path()\r\n+    {\r\n+        return $this->getBasePath();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Returns the base path\r\n+     *\r\n+     * @return string\r\n+     *\u002F\r\n+    public function getBasePath()\r\n+    {\r\n+        return $this->basePath;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param string $default_view The default document view\r\n+     * @param array $options The view's options\r\n+     * @return $this\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function set_default_view($default_view, $options)\r\n+    {\r\n+        return $this->setDefaultView($default_view, $options);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Sets the default view\r\n+     *\r\n+     * @param string $defaultView The default document view\r\n+     * @param array $options The view's options\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setDefaultView($defaultView, $options)\r\n+    {\r\n+        $this->defaultView = $defaultView;\r\n+        $this->defaultViewOptions = $options;\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param resource $http_context\r\n+     * @return $this\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function set_http_context($http_context)\r\n+    {\r\n+        return $this->setHttpContext($http_context);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Sets the HTTP context\r\n+     *\r\n+     * @param resource|array $httpContext\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setHttpContext($httpContext)\r\n+    {\r\n+        $this->options->setHttpContext($httpContext);\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return resource\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function get_http_context()\r\n+    {\r\n+        return $this->getHttpContext();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Returns the HTTP context\r\n+     *\r\n+     * @return resource\r\n+     *\u002F\r\n+    public function getHttpContext()\r\n+    {\r\n+        return $this->options->getHttpContext();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Set a custom `Canvas` instance to render the document to.\r\n+     *\r\n+     * Be aware that the instance will be replaced on render if the document\r\n+     * defines a paper size different from the canvas.\r\n+     *\r\n+     * @param Canvas $canvas\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setCanvas(Canvas $canvas)\r\n+    {\r\n+        $this->canvas = $canvas;\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return Canvas\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function get_canvas()\r\n+    {\r\n+        return $this->getCanvas();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Return the underlying Canvas instance (e.g. Dompdf\\Adapter\\CPDF, Dompdf\\Adapter\\GD)\r\n+     *\r\n+     * @return Canvas\r\n+     *\u002F\r\n+    public function getCanvas()\r\n+    {\r\n+        return $this->canvas;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param Stylesheet $css\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setCss(Stylesheet $css)\r\n+    {\r\n+        $this->css = $css;\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return Stylesheet\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function get_css()\r\n+    {\r\n+        return $this->getCss();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Returns the stylesheet\r\n+     *\r\n+     * @return Stylesheet\r\n+     *\u002F\r\n+    public function getCss()\r\n+    {\r\n+        return $this->css;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param DOMDocument $dom\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setDom(DOMDocument $dom)\r\n+    {\r\n+        $this->dom = $dom;\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return DOMDocument\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function get_dom()\r\n+    {\r\n+        return $this->getDom();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return DOMDocument\r\n+     *\u002F\r\n+    public function getDom()\r\n+    {\r\n+        return $this->dom;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param Options $options\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setOptions(Options $options)\r\n+    {\r\n+        \u002F\u002F For backwards compatibility\r\n+        if ($this->options && $this->options->getHttpContext() && !$options->getHttpContext()) {\r\n+            $options->setHttpContext($this->options->getHttpContext());\r\n+        }\r\n+\r\n+        $this->options = $options;\r\n+        $fontMetrics = $this->fontMetrics;\r\n+        if (isset($fontMetrics)) {\r\n+            $fontMetrics->setOptions($options);\r\n+        }\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return Options\r\n+     *\u002F\r\n+    public function getOptions()\r\n+    {\r\n+        return $this->options;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return array\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function get_callbacks()\r\n+    {\r\n+        return $this->getCallbacks();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Returns the callbacks array\r\n+     *\r\n+     * @return array\r\n+     *\u002F\r\n+    public function getCallbacks()\r\n+    {\r\n+        return $this->callbacks;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param array $callbacks the set of callbacks to set\r\n+     * @return $this\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function set_callbacks($callbacks)\r\n+    {\r\n+        return $this->setCallbacks($callbacks);\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Define callbacks that allow modifying the document during render.\r\n+     *\r\n+     * The callbacks array should contain arrays with `event` set to a callback\r\n+     * event name and `f` set to a function or any other callable.\r\n+     *\r\n+     * The available callback events are:\r\n+     * * `begin_page_reflow`: called before page reflow\r\n+     * * `begin_frame`: called before a frame is rendered\r\n+     * * `end_frame`: called after frame rendering is complete\r\n+     * * `begin_page_render`: called before a page is rendered\r\n+     * * `end_page_render`: called after page rendering is complete\r\n+     * * `end_document`: called for every page after rendering is complete\r\n+     *\r\n+     * The function `f` receives three arguments `Frame $frame`, `Canvas $canvas`,\r\n+     * and `FontMetrics $fontMetrics` for all events but `end_document`. For\r\n+     * `end_document`, the function receives four arguments `int $pageNumber`,\r\n+     * `int $pageCount`, `Canvas $canvas`, and `FontMetrics $fontMetrics` instead.\r\n+     *\r\n+     * @param array $callbacks The set of callbacks to set.\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setCallbacks(array $callbacks): self\r\n+    {\r\n+        $this->callbacks = [];\r\n+\r\n+        foreach ($callbacks as $c) {\r\n+            if (is_array($c) && isset($c[\"event\"]) && isset($c[\"f\"])) {\r\n+                $event = $c[\"event\"];\r\n+                $f = $c[\"f\"];\r\n+                if (is_string($event) && is_callable($f)) {\r\n+                    $this->callbacks[$event][] = $f;\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return boolean\r\n+     * @deprecated\r\n+     *\u002F\r\n+    public function get_quirksmode()\r\n+    {\r\n+        return $this->getQuirksmode();\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * Get the quirks mode\r\n+     *\r\n+     * @return boolean true if quirks mode is active\r\n+     *\u002F\r\n+    public function getQuirksmode()\r\n+    {\r\n+        return $this->quirksmode;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @param FontMetrics $fontMetrics\r\n+     * @return $this\r\n+     *\u002F\r\n+    public function setFontMetrics(FontMetrics $fontMetrics)\r\n+    {\r\n+        $this->fontMetrics = $fontMetrics;\r\n+        return $this;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * @return FontMetrics\r\n+     *\u002F\r\n+    public function getFontMetrics()\r\n+    {\r\n+        return $this->fontMetrics;\r\n+    }\r\n+\r\n+    \u002F**\r\n+     * PHP5 overloaded getter\r\n+     * Along with {@link Dompdf::__set()} __get() provides access to all\r\n+     * properties directly.  Typically __get() is not called directly outside\r\n+     * of this class.\r\n+     *\r\n+     * @param string $prop\r\n+     *\r\n+     * @throws Exception\r\n+     * @return mixed\r\n+     *\u002F\r\n+    function __get($prop)\r\n+    {\r\n+        switch ($prop) {\r\n+            case 'version':\r\n+                return $this->version;\r\n+            default:\r\n+                throw new Exception('Invalid property: ' . $prop);\r\n+        }\r\n+    }\r\n+}\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourierbi.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourierbi.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourierbi.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourierbi.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,10 +1,10 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Courier-BoldOblique';\n-$up = -100;\n-$ut = 50;\n-for($i=0;$i\u003C=255;$i++)\n-\t$cw[chr($i)] = 600;\n-$enc = 'cp1252';\n-$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Courier-BoldOblique';\r\n+$up = -100;\r\n+$ut = 50;\r\n+for($i=0;$i\u003C=255;$i++)\r\n+\t$cw[chr($i)] = 600;\r\n+$enc = 'cp1252';\r\n+$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourierb.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourierb.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourierb.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourierb.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,10 +1,10 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Courier-Bold';\n-$up = -100;\n-$ut = 50;\n-for($i=0;$i\u003C=255;$i++)\n-\t$cw[chr($i)] = 600;\n-$enc = 'cp1252';\n-$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Courier-Bold';\r\n+$up = -100;\r\n+$ut = 50;\r\n+for($i=0;$i\u003C=255;$i++)\r\n+\t$cw[chr($i)] = 600;\r\n+$enc = 'cp1252';\r\n+$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourieri.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourieri.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourieri.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourieri.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,10 +1,10 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Courier-Oblique';\n-$up = -100;\n-$ut = 50;\n-for($i=0;$i\u003C=255;$i++)\n-\t$cw[chr($i)] = 600;\n-$enc = 'cp1252';\n-$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Courier-Oblique';\r\n+$up = -100;\r\n+$ut = 50;\r\n+for($i=0;$i\u003C=255;$i++)\r\n+\t$cw[chr($i)] = 600;\r\n+$enc = 'cp1252';\r\n+$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourier.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourier.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourier.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fcourier.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,10 +1,10 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Courier';\n-$up = -100;\n-$ut = 50;\n-for($i=0;$i\u003C=255;$i++)\n-\t$cw[chr($i)] = 600;\n-$enc = 'cp1252';\n-$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Courier';\r\n+$up = -100;\r\n+$ut = 50;\r\n+for($i=0;$i\u003C=255;$i++)\r\n+\t$cw[chr($i)] = 600;\r\n+$enc = 'cp1252';\r\n+$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelveticabi.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelveticabi.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelveticabi.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelveticabi.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,21 +1,21 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Helvetica-BoldOblique';\n-$up = -100;\n-$ut = 50;\n-$cw = array(\n-\tchr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,\n-\tchr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'\"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,\n-\t','=>278,'-'=>333,'.'=>278,'\u002F'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'\u003C'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,\n-\t'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,\n-\t'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,\n-\t'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,\n-\tchr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,\n-\tchr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,\n-\tchr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,\n-\tchr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,\n-\tchr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,\n-\tchr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);\n-$enc = 'cp1252';\n-$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Helvetica-BoldOblique';\r\n+$up = -100;\r\n+$ut = 50;\r\n+$cw = array(\r\n+\tchr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,\r\n+\tchr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'\"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,\r\n+\t','=>278,'-'=>333,'.'=>278,'\u002F'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'\u003C'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,\r\n+\t'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,\r\n+\t'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,\r\n+\t'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,\r\n+\tchr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,\r\n+\tchr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,\r\n+\tchr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,\r\n+\tchr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,\r\n+\tchr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,\r\n+\tchr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);\r\n+$enc = 'cp1252';\r\n+$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelveticab.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelveticab.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelveticab.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelveticab.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,21 +1,21 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Helvetica-Bold';\n-$up = -100;\n-$ut = 50;\n-$cw = array(\n-\tchr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,\n-\tchr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'\"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,\n-\t','=>278,'-'=>333,'.'=>278,'\u002F'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'\u003C'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,\n-\t'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,\n-\t'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,\n-\t'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,\n-\tchr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,\n-\tchr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,\n-\tchr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,\n-\tchr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,\n-\tchr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,\n-\tchr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);\n-$enc = 'cp1252';\n-$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Helvetica-Bold';\r\n+$up = -100;\r\n+$ut = 50;\r\n+$cw = array(\r\n+\tchr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,\r\n+\tchr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'\"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,\r\n+\t','=>278,'-'=>333,'.'=>278,'\u002F'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'\u003C'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,\r\n+\t'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,\r\n+\t'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,\r\n+\t'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,\r\n+\tchr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,\r\n+\tchr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,\r\n+\tchr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,\r\n+\tchr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,\r\n+\tchr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,\r\n+\tchr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);\r\n+$enc = 'cp1252';\r\n+$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelveticai.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelveticai.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelveticai.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelveticai.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,21 +1,21 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Helvetica-Oblique';\n-$up = -100;\n-$ut = 50;\n-$cw = array(\n-\tchr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,\n-\tchr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'\"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,\n-\t','=>278,'-'=>333,'.'=>278,'\u002F'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'\u003C'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,\n-\t'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,\n-\t'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,\n-\t'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,\n-\tchr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,\n-\tchr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,\n-\tchr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,\n-\tchr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,\n-\tchr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,\n-\tchr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);\n-$enc = 'cp1252';\n-$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Helvetica-Oblique';\r\n+$up = -100;\r\n+$ut = 50;\r\n+$cw = array(\r\n+\tchr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,\r\n+\tchr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'\"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,\r\n+\t','=>278,'-'=>333,'.'=>278,'\u002F'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'\u003C'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,\r\n+\t'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,\r\n+\t'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,\r\n+\t'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,\r\n+\tchr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,\r\n+\tchr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,\r\n+\tchr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,\r\n+\tchr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,\r\n+\tchr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,\r\n+\tchr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);\r\n+$enc = 'cp1252';\r\n+$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelvetica.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelvetica.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelvetica.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fhelvetica.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,21 +1,21 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Helvetica';\n-$up = -100;\n-$ut = 50;\n-$cw = array(\n-\tchr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,\n-\tchr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'\"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,\n-\t','=>278,'-'=>333,'.'=>278,'\u002F'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'\u003C'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,\n-\t'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,\n-\t'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,\n-\t'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,\n-\tchr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,\n-\tchr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,\n-\tchr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,\n-\tchr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,\n-\tchr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,\n-\tchr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);\n-$enc = 'cp1252';\n-$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Helvetica';\r\n+$up = -100;\r\n+$ut = 50;\r\n+$cw = array(\r\n+\tchr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,\r\n+\tchr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'\"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,\r\n+\t','=>278,'-'=>333,'.'=>278,'\u002F'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'\u003C'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,\r\n+\t'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,\r\n+\t'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,\r\n+\t'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,\r\n+\tchr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,\r\n+\tchr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,\r\n+\tchr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,\r\n+\tchr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,\r\n+\tchr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,\r\n+\tchr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);\r\n+$enc = 'cp1252';\r\n+$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fsymbol.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fsymbol.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fsymbol.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fsymbol.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,20 +1,20 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Symbol';\n-$up = -100;\n-$ut = 50;\n-$cw = array(\n-\tchr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,\n-\tchr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'\"'=>713,'#'=>500,'$'=>549,'%'=>833,'&'=>778,'\\''=>439,'('=>333,')'=>333,'*'=>500,'+'=>549,\n-\t','=>250,'-'=>549,'.'=>250,'\u002F'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'\u003C'=>549,'='=>549,'>'=>549,'?'=>444,'@'=>549,'A'=>722,\n-\t'B'=>667,'C'=>722,'D'=>612,'E'=>611,'F'=>763,'G'=>603,'H'=>722,'I'=>333,'J'=>631,'K'=>722,'L'=>686,'M'=>889,'N'=>722,'O'=>722,'P'=>768,'Q'=>741,'R'=>556,'S'=>592,'T'=>611,'U'=>690,'V'=>439,'W'=>768,\n-\t'X'=>645,'Y'=>795,'Z'=>611,'['=>333,'\\\\'=>863,']'=>333,'^'=>658,'_'=>500,'`'=>500,'a'=>631,'b'=>549,'c'=>549,'d'=>494,'e'=>439,'f'=>521,'g'=>411,'h'=>603,'i'=>329,'j'=>603,'k'=>549,'l'=>549,'m'=>576,\n-\t'n'=>521,'o'=>549,'p'=>549,'q'=>521,'r'=>549,'s'=>603,'t'=>439,'u'=>576,'v'=>713,'w'=>686,'x'=>493,'y'=>686,'z'=>494,'{'=>480,'|'=>200,'}'=>480,'~'=>549,chr(127)=>0,chr(128)=>0,chr(129)=>0,chr(130)=>0,chr(131)=>0,\n-\tchr(132)=>0,chr(133)=>0,chr(134)=>0,chr(135)=>0,chr(136)=>0,chr(137)=>0,chr(138)=>0,chr(139)=>0,chr(140)=>0,chr(141)=>0,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,\n-\tchr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>750,chr(161)=>620,chr(162)=>247,chr(163)=>549,chr(164)=>167,chr(165)=>713,chr(166)=>500,chr(167)=>753,chr(168)=>753,chr(169)=>753,chr(170)=>753,chr(171)=>1042,chr(172)=>987,chr(173)=>603,chr(174)=>987,chr(175)=>603,\n-\tchr(176)=>400,chr(177)=>549,chr(178)=>411,chr(179)=>549,chr(180)=>549,chr(181)=>713,chr(182)=>494,chr(183)=>460,chr(184)=>549,chr(185)=>549,chr(186)=>549,chr(187)=>549,chr(188)=>1000,chr(189)=>603,chr(190)=>1000,chr(191)=>658,chr(192)=>823,chr(193)=>686,chr(194)=>795,chr(195)=>987,chr(196)=>768,chr(197)=>768,\n-\tchr(198)=>823,chr(199)=>768,chr(200)=>768,chr(201)=>713,chr(202)=>713,chr(203)=>713,chr(204)=>713,chr(205)=>713,chr(206)=>713,chr(207)=>713,chr(208)=>768,chr(209)=>713,chr(210)=>790,chr(211)=>790,chr(212)=>890,chr(213)=>823,chr(214)=>549,chr(215)=>250,chr(216)=>713,chr(217)=>603,chr(218)=>603,chr(219)=>1042,\n-\tchr(220)=>987,chr(221)=>603,chr(222)=>987,chr(223)=>603,chr(224)=>494,chr(225)=>329,chr(226)=>790,chr(227)=>790,chr(228)=>786,chr(229)=>713,chr(230)=>384,chr(231)=>384,chr(232)=>384,chr(233)=>384,chr(234)=>384,chr(235)=>384,chr(236)=>494,chr(237)=>494,chr(238)=>494,chr(239)=>494,chr(240)=>0,chr(241)=>329,\n-\tchr(242)=>274,chr(243)=>686,chr(244)=>686,chr(245)=>686,chr(246)=>384,chr(247)=>384,chr(248)=>384,chr(249)=>384,chr(250)=>384,chr(251)=>384,chr(252)=>494,chr(253)=>494,chr(254)=>494,chr(255)=>0);\n-$uv = array(32=>160,33=>33,34=>8704,35=>35,36=>8707,37=>array(37,2),39=>8715,40=>array(40,2),42=>8727,43=>array(43,2),45=>8722,46=>array(46,18),64=>8773,65=>array(913,2),67=>935,68=>array(916,2),70=>934,71=>915,72=>919,73=>921,74=>977,75=>array(922,4),79=>array(927,2),81=>920,82=>929,83=>array(931,3),86=>962,87=>937,88=>926,89=>936,90=>918,91=>91,92=>8756,93=>93,94=>8869,95=>95,96=>63717,97=>array(945,2),99=>967,100=>array(948,2),102=>966,103=>947,104=>951,105=>953,106=>981,107=>array(954,4),111=>array(959,2),113=>952,114=>961,115=>array(963,3),118=>982,119=>969,120=>958,121=>968,122=>950,123=>array(123,3),126=>8764,160=>8364,161=>978,162=>8242,163=>8804,164=>8725,165=>8734,166=>402,167=>9827,168=>9830,169=>9829,170=>9824,171=>8596,172=>array(8592,4),176=>array(176,2),178=>8243,179=>8805,180=>215,181=>8733,182=>8706,183=>8226,184=>247,185=>array(8800,2),187=>8776,188=>8230,189=>array(63718,2),191=>8629,192=>8501,193=>8465,194=>8476,195=>8472,196=>8855,197=>8853,198=>8709,199=>array(8745,2),201=>8835,202=>8839,203=>8836,204=>8834,205=>8838,206=>array(8712,2),208=>8736,209=>8711,210=>63194,211=>63193,212=>63195,213=>8719,214=>8730,215=>8901,216=>172,217=>array(8743,2),219=>8660,220=>array(8656,4),224=>9674,225=>9001,226=>array(63720,3),229=>8721,230=>array(63723,10),241=>9002,242=>8747,243=>8992,244=>63733,245=>8993,246=>array(63734,9));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Symbol';\r\n+$up = -100;\r\n+$ut = 50;\r\n+$cw = array(\r\n+\tchr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,\r\n+\tchr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'\"'=>713,'#'=>500,'$'=>549,'%'=>833,'&'=>778,'\\''=>439,'('=>333,')'=>333,'*'=>500,'+'=>549,\r\n+\t','=>250,'-'=>549,'.'=>250,'\u002F'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'\u003C'=>549,'='=>549,'>'=>549,'?'=>444,'@'=>549,'A'=>722,\r\n+\t'B'=>667,'C'=>722,'D'=>612,'E'=>611,'F'=>763,'G'=>603,'H'=>722,'I'=>333,'J'=>631,'K'=>722,'L'=>686,'M'=>889,'N'=>722,'O'=>722,'P'=>768,'Q'=>741,'R'=>556,'S'=>592,'T'=>611,'U'=>690,'V'=>439,'W'=>768,\r\n+\t'X'=>645,'Y'=>795,'Z'=>611,'['=>333,'\\\\'=>863,']'=>333,'^'=>658,'_'=>500,'`'=>500,'a'=>631,'b'=>549,'c'=>549,'d'=>494,'e'=>439,'f'=>521,'g'=>411,'h'=>603,'i'=>329,'j'=>603,'k'=>549,'l'=>549,'m'=>576,\r\n+\t'n'=>521,'o'=>549,'p'=>549,'q'=>521,'r'=>549,'s'=>603,'t'=>439,'u'=>576,'v'=>713,'w'=>686,'x'=>493,'y'=>686,'z'=>494,'{'=>480,'|'=>200,'}'=>480,'~'=>549,chr(127)=>0,chr(128)=>0,chr(129)=>0,chr(130)=>0,chr(131)=>0,\r\n+\tchr(132)=>0,chr(133)=>0,chr(134)=>0,chr(135)=>0,chr(136)=>0,chr(137)=>0,chr(138)=>0,chr(139)=>0,chr(140)=>0,chr(141)=>0,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,\r\n+\tchr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>750,chr(161)=>620,chr(162)=>247,chr(163)=>549,chr(164)=>167,chr(165)=>713,chr(166)=>500,chr(167)=>753,chr(168)=>753,chr(169)=>753,chr(170)=>753,chr(171)=>1042,chr(172)=>987,chr(173)=>603,chr(174)=>987,chr(175)=>603,\r\n+\tchr(176)=>400,chr(177)=>549,chr(178)=>411,chr(179)=>549,chr(180)=>549,chr(181)=>713,chr(182)=>494,chr(183)=>460,chr(184)=>549,chr(185)=>549,chr(186)=>549,chr(187)=>549,chr(188)=>1000,chr(189)=>603,chr(190)=>1000,chr(191)=>658,chr(192)=>823,chr(193)=>686,chr(194)=>795,chr(195)=>987,chr(196)=>768,chr(197)=>768,\r\n+\tchr(198)=>823,chr(199)=>768,chr(200)=>768,chr(201)=>713,chr(202)=>713,chr(203)=>713,chr(204)=>713,chr(205)=>713,chr(206)=>713,chr(207)=>713,chr(208)=>768,chr(209)=>713,chr(210)=>790,chr(211)=>790,chr(212)=>890,chr(213)=>823,chr(214)=>549,chr(215)=>250,chr(216)=>713,chr(217)=>603,chr(218)=>603,chr(219)=>1042,\r\n+\tchr(220)=>987,chr(221)=>603,chr(222)=>987,chr(223)=>603,chr(224)=>494,chr(225)=>329,chr(226)=>790,chr(227)=>790,chr(228)=>786,chr(229)=>713,chr(230)=>384,chr(231)=>384,chr(232)=>384,chr(233)=>384,chr(234)=>384,chr(235)=>384,chr(236)=>494,chr(237)=>494,chr(238)=>494,chr(239)=>494,chr(240)=>0,chr(241)=>329,\r\n+\tchr(242)=>274,chr(243)=>686,chr(244)=>686,chr(245)=>686,chr(246)=>384,chr(247)=>384,chr(248)=>384,chr(249)=>384,chr(250)=>384,chr(251)=>384,chr(252)=>494,chr(253)=>494,chr(254)=>494,chr(255)=>0);\r\n+$uv = array(32=>160,33=>33,34=>8704,35=>35,36=>8707,37=>array(37,2),39=>8715,40=>array(40,2),42=>8727,43=>array(43,2),45=>8722,46=>array(46,18),64=>8773,65=>array(913,2),67=>935,68=>array(916,2),70=>934,71=>915,72=>919,73=>921,74=>977,75=>array(922,4),79=>array(927,2),81=>920,82=>929,83=>array(931,3),86=>962,87=>937,88=>926,89=>936,90=>918,91=>91,92=>8756,93=>93,94=>8869,95=>95,96=>63717,97=>array(945,2),99=>967,100=>array(948,2),102=>966,103=>947,104=>951,105=>953,106=>981,107=>array(954,4),111=>array(959,2),113=>952,114=>961,115=>array(963,3),118=>982,119=>969,120=>958,121=>968,122=>950,123=>array(123,3),126=>8764,160=>8364,161=>978,162=>8242,163=>8804,164=>8725,165=>8734,166=>402,167=>9827,168=>9830,169=>9829,170=>9824,171=>8596,172=>array(8592,4),176=>array(176,2),178=>8243,179=>8805,180=>215,181=>8733,182=>8706,183=>8226,184=>247,185=>array(8800,2),187=>8776,188=>8230,189=>array(63718,2),191=>8629,192=>8501,193=>8465,194=>8476,195=>8472,196=>8855,197=>8853,198=>8709,199=>array(8745,2),201=>8835,202=>8839,203=>8836,204=>8834,205=>8838,206=>array(8712,2),208=>8736,209=>8711,210=>63194,211=>63193,212=>63195,213=>8719,214=>8730,215=>8901,216=>172,217=>array(8743,2),219=>8660,220=>array(8656,4),224=>9674,225=>9001,226=>array(63720,3),229=>8721,230=>array(63723,10),241=>9002,242=>8747,243=>8992,244=>63733,245=>8993,246=>array(63734,9));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimesbi.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimesbi.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimesbi.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimesbi.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,21 +1,21 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Times-BoldItalic';\n-$up = -100;\n-$ut = 50;\n-$cw = array(\n-\tchr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,\n-\tchr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>389,'\"'=>555,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,\n-\t','=>250,'-'=>333,'.'=>250,'\u002F'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'\u003C'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>832,'A'=>667,\n-\t'B'=>667,'C'=>667,'D'=>722,'E'=>667,'F'=>667,'G'=>722,'H'=>778,'I'=>389,'J'=>500,'K'=>667,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>611,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>667,'W'=>889,\n-\t'X'=>667,'Y'=>611,'Z'=>611,'['=>333,'\\\\'=>278,']'=>333,'^'=>570,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,\n-\t'n'=>556,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>556,'v'=>444,'w'=>667,'x'=>500,'y'=>444,'z'=>389,'{'=>348,'|'=>220,'}'=>348,'~'=>570,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,\n-\tchr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,\n-\tchr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>389,chr(159)=>611,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>266,chr(171)=>500,chr(172)=>606,chr(173)=>333,chr(174)=>747,chr(175)=>333,\n-\tchr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>576,chr(182)=>500,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>300,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,\n-\tchr(198)=>944,chr(199)=>667,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>570,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,\n-\tchr(220)=>722,chr(221)=>611,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,\n-\tchr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>444,chr(254)=>500,chr(255)=>444);\n-$enc = 'cp1252';\n-$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Times-BoldItalic';\r\n+$up = -100;\r\n+$ut = 50;\r\n+$cw = array(\r\n+\tchr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,\r\n+\tchr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>389,'\"'=>555,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,\r\n+\t','=>250,'-'=>333,'.'=>250,'\u002F'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'\u003C'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>832,'A'=>667,\r\n+\t'B'=>667,'C'=>667,'D'=>722,'E'=>667,'F'=>667,'G'=>722,'H'=>778,'I'=>389,'J'=>500,'K'=>667,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>611,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>667,'W'=>889,\r\n+\t'X'=>667,'Y'=>611,'Z'=>611,'['=>333,'\\\\'=>278,']'=>333,'^'=>570,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,\r\n+\t'n'=>556,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>556,'v'=>444,'w'=>667,'x'=>500,'y'=>444,'z'=>389,'{'=>348,'|'=>220,'}'=>348,'~'=>570,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,\r\n+\tchr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,\r\n+\tchr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>389,chr(159)=>611,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>266,chr(171)=>500,chr(172)=>606,chr(173)=>333,chr(174)=>747,chr(175)=>333,\r\n+\tchr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>576,chr(182)=>500,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>300,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,\r\n+\tchr(198)=>944,chr(199)=>667,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>570,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,\r\n+\tchr(220)=>722,chr(221)=>611,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,\r\n+\tchr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>444,chr(254)=>500,chr(255)=>444);\r\n+$enc = 'cp1252';\r\n+$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimesb.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimesb.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimesb.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimesb.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,21 +1,21 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Times-Bold';\n-$up = -100;\n-$ut = 50;\n-$cw = array(\n-\tchr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,\n-\tchr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'\"'=>555,'#'=>500,'$'=>500,'%'=>1000,'&'=>833,'\\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,\n-\t','=>250,'-'=>333,'.'=>250,'\u002F'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'\u003C'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>930,'A'=>722,\n-\t'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>778,'I'=>389,'J'=>500,'K'=>778,'L'=>667,'M'=>944,'N'=>722,'O'=>778,'P'=>611,'Q'=>778,'R'=>722,'S'=>556,'T'=>667,'U'=>722,'V'=>722,'W'=>1000,\n-\t'X'=>722,'Y'=>722,'Z'=>667,'['=>333,'\\\\'=>278,']'=>333,'^'=>581,'_'=>500,'`'=>333,'a'=>500,'b'=>556,'c'=>444,'d'=>556,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>333,'k'=>556,'l'=>278,'m'=>833,\n-\t'n'=>556,'o'=>500,'p'=>556,'q'=>556,'r'=>444,'s'=>389,'t'=>333,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>394,'|'=>220,'}'=>394,'~'=>520,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,\n-\tchr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>667,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,\n-\tchr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>300,chr(171)=>500,chr(172)=>570,chr(173)=>333,chr(174)=>747,chr(175)=>333,\n-\tchr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>556,chr(182)=>540,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>330,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,\n-\tchr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>570,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,\n-\tchr(220)=>722,chr(221)=>722,chr(222)=>611,chr(223)=>556,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,\n-\tchr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);\n-$enc = 'cp1252';\n-$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Times-Bold';\r\n+$up = -100;\r\n+$ut = 50;\r\n+$cw = array(\r\n+\tchr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,\r\n+\tchr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'\"'=>555,'#'=>500,'$'=>500,'%'=>1000,'&'=>833,'\\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,\r\n+\t','=>250,'-'=>333,'.'=>250,'\u002F'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'\u003C'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>930,'A'=>722,\r\n+\t'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>778,'I'=>389,'J'=>500,'K'=>778,'L'=>667,'M'=>944,'N'=>722,'O'=>778,'P'=>611,'Q'=>778,'R'=>722,'S'=>556,'T'=>667,'U'=>722,'V'=>722,'W'=>1000,\r\n+\t'X'=>722,'Y'=>722,'Z'=>667,'['=>333,'\\\\'=>278,']'=>333,'^'=>581,'_'=>500,'`'=>333,'a'=>500,'b'=>556,'c'=>444,'d'=>556,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>333,'k'=>556,'l'=>278,'m'=>833,\r\n+\t'n'=>556,'o'=>500,'p'=>556,'q'=>556,'r'=>444,'s'=>389,'t'=>333,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>394,'|'=>220,'}'=>394,'~'=>520,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,\r\n+\tchr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>667,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,\r\n+\tchr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>300,chr(171)=>500,chr(172)=>570,chr(173)=>333,chr(174)=>747,chr(175)=>333,\r\n+\tchr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>556,chr(182)=>540,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>330,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,\r\n+\tchr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>570,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,\r\n+\tchr(220)=>722,chr(221)=>722,chr(222)=>611,chr(223)=>556,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,\r\n+\tchr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);\r\n+$enc = 'cp1252';\r\n+$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimesi.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimesi.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimesi.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimesi.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,21 +1,21 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Times-Italic';\n-$up = -100;\n-$ut = 50;\n-$cw = array(\n-\tchr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,\n-\tchr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'\"'=>420,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\\''=>214,'('=>333,')'=>333,'*'=>500,'+'=>675,\n-\t','=>250,'-'=>333,'.'=>250,'\u002F'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'\u003C'=>675,'='=>675,'>'=>675,'?'=>500,'@'=>920,'A'=>611,\n-\t'B'=>611,'C'=>667,'D'=>722,'E'=>611,'F'=>611,'G'=>722,'H'=>722,'I'=>333,'J'=>444,'K'=>667,'L'=>556,'M'=>833,'N'=>667,'O'=>722,'P'=>611,'Q'=>722,'R'=>611,'S'=>500,'T'=>556,'U'=>722,'V'=>611,'W'=>833,\n-\t'X'=>611,'Y'=>556,'Z'=>556,'['=>389,'\\\\'=>278,']'=>389,'^'=>422,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>278,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>444,'l'=>278,'m'=>722,\n-\t'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>500,'v'=>444,'w'=>667,'x'=>444,'y'=>444,'z'=>389,'{'=>400,'|'=>275,'}'=>400,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,\n-\tchr(132)=>556,chr(133)=>889,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>500,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>556,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>556,chr(148)=>556,chr(149)=>350,chr(150)=>500,chr(151)=>889,chr(152)=>333,chr(153)=>980,\n-\tchr(154)=>389,chr(155)=>333,chr(156)=>667,chr(157)=>350,chr(158)=>389,chr(159)=>556,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>275,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>675,chr(173)=>333,chr(174)=>760,chr(175)=>333,\n-\tchr(176)=>400,chr(177)=>675,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>523,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>611,chr(193)=>611,chr(194)=>611,chr(195)=>611,chr(196)=>611,chr(197)=>611,\n-\tchr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>667,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>675,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,\n-\tchr(220)=>722,chr(221)=>556,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,\n-\tchr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>675,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>444,chr(254)=>500,chr(255)=>444);\n-$enc = 'cp1252';\n-$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Times-Italic';\r\n+$up = -100;\r\n+$ut = 50;\r\n+$cw = array(\r\n+\tchr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,\r\n+\tchr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'\"'=>420,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\\''=>214,'('=>333,')'=>333,'*'=>500,'+'=>675,\r\n+\t','=>250,'-'=>333,'.'=>250,'\u002F'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'\u003C'=>675,'='=>675,'>'=>675,'?'=>500,'@'=>920,'A'=>611,\r\n+\t'B'=>611,'C'=>667,'D'=>722,'E'=>611,'F'=>611,'G'=>722,'H'=>722,'I'=>333,'J'=>444,'K'=>667,'L'=>556,'M'=>833,'N'=>667,'O'=>722,'P'=>611,'Q'=>722,'R'=>611,'S'=>500,'T'=>556,'U'=>722,'V'=>611,'W'=>833,\r\n+\t'X'=>611,'Y'=>556,'Z'=>556,'['=>389,'\\\\'=>278,']'=>389,'^'=>422,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>278,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>444,'l'=>278,'m'=>722,\r\n+\t'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>500,'v'=>444,'w'=>667,'x'=>444,'y'=>444,'z'=>389,'{'=>400,'|'=>275,'}'=>400,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,\r\n+\tchr(132)=>556,chr(133)=>889,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>500,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>556,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>556,chr(148)=>556,chr(149)=>350,chr(150)=>500,chr(151)=>889,chr(152)=>333,chr(153)=>980,\r\n+\tchr(154)=>389,chr(155)=>333,chr(156)=>667,chr(157)=>350,chr(158)=>389,chr(159)=>556,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>275,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>675,chr(173)=>333,chr(174)=>760,chr(175)=>333,\r\n+\tchr(176)=>400,chr(177)=>675,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>523,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>611,chr(193)=>611,chr(194)=>611,chr(195)=>611,chr(196)=>611,chr(197)=>611,\r\n+\tchr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>667,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>675,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,\r\n+\tchr(220)=>722,chr(221)=>556,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,\r\n+\tchr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>675,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>444,chr(254)=>500,chr(255)=>444);\r\n+$enc = 'cp1252';\r\n+$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimes.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimes.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimes.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Ftimes.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,21 +1,21 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'Times-Roman';\n-$up = -100;\n-$ut = 50;\n-$cw = array(\n-\tchr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,\n-\tchr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'\"'=>408,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\\''=>180,'('=>333,')'=>333,'*'=>500,'+'=>564,\n-\t','=>250,'-'=>333,'.'=>250,'\u002F'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'\u003C'=>564,'='=>564,'>'=>564,'?'=>444,'@'=>921,'A'=>722,\n-\t'B'=>667,'C'=>667,'D'=>722,'E'=>611,'F'=>556,'G'=>722,'H'=>722,'I'=>333,'J'=>389,'K'=>722,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>556,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>722,'W'=>944,\n-\t'X'=>722,'Y'=>722,'Z'=>611,'['=>333,'\\\\'=>278,']'=>333,'^'=>469,'_'=>500,'`'=>333,'a'=>444,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,\n-\t'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>333,'s'=>389,'t'=>278,'u'=>500,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>480,'|'=>200,'}'=>480,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,\n-\tchr(132)=>444,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>889,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>444,chr(148)=>444,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>980,\n-\tchr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>200,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>564,chr(173)=>333,chr(174)=>760,chr(175)=>333,\n-\tchr(176)=>400,chr(177)=>564,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>453,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>444,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,\n-\tchr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>564,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,\n-\tchr(220)=>722,chr(221)=>722,chr(222)=>556,chr(223)=>500,chr(224)=>444,chr(225)=>444,chr(226)=>444,chr(227)=>444,chr(228)=>444,chr(229)=>444,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,\n-\tchr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>564,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>500,chr(254)=>500,chr(255)=>500);\n-$enc = 'cp1252';\n-$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'Times-Roman';\r\n+$up = -100;\r\n+$ut = 50;\r\n+$cw = array(\r\n+\tchr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,\r\n+\tchr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'\"'=>408,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\\''=>180,'('=>333,')'=>333,'*'=>500,'+'=>564,\r\n+\t','=>250,'-'=>333,'.'=>250,'\u002F'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'\u003C'=>564,'='=>564,'>'=>564,'?'=>444,'@'=>921,'A'=>722,\r\n+\t'B'=>667,'C'=>667,'D'=>722,'E'=>611,'F'=>556,'G'=>722,'H'=>722,'I'=>333,'J'=>389,'K'=>722,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>556,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>722,'W'=>944,\r\n+\t'X'=>722,'Y'=>722,'Z'=>611,'['=>333,'\\\\'=>278,']'=>333,'^'=>469,'_'=>500,'`'=>333,'a'=>444,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,\r\n+\t'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>333,'s'=>389,'t'=>278,'u'=>500,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>480,'|'=>200,'}'=>480,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,\r\n+\tchr(132)=>444,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>889,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>444,chr(148)=>444,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>980,\r\n+\tchr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>200,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>564,chr(173)=>333,chr(174)=>760,chr(175)=>333,\r\n+\tchr(176)=>400,chr(177)=>564,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>453,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>444,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,\r\n+\tchr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>564,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,\r\n+\tchr(220)=>722,chr(221)=>722,chr(222)=>556,chr(223)=>500,chr(224)=>444,chr(225)=>444,chr(226)=>444,chr(227)=>444,chr(228)=>444,chr(229)=>444,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,\r\n+\tchr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>564,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>500,chr(254)=>500,chr(255)=>500);\r\n+$enc = 'cp1252';\r\n+$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fzapfdingbats.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fzapfdingbats.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fzapfdingbats.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffont\u002Fzapfdingbats.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,20 +1,20 @@\n-\u003C?php\n-$type = 'Core';\n-$name = 'ZapfDingbats';\n-$up = -100;\n-$ut = 50;\n-$cw = array(\n-\tchr(0)=>0,chr(1)=>0,chr(2)=>0,chr(3)=>0,chr(4)=>0,chr(5)=>0,chr(6)=>0,chr(7)=>0,chr(8)=>0,chr(9)=>0,chr(10)=>0,chr(11)=>0,chr(12)=>0,chr(13)=>0,chr(14)=>0,chr(15)=>0,chr(16)=>0,chr(17)=>0,chr(18)=>0,chr(19)=>0,chr(20)=>0,chr(21)=>0,\n-\tchr(22)=>0,chr(23)=>0,chr(24)=>0,chr(25)=>0,chr(26)=>0,chr(27)=>0,chr(28)=>0,chr(29)=>0,chr(30)=>0,chr(31)=>0,' '=>278,'!'=>974,'\"'=>961,'#'=>974,'$'=>980,'%'=>719,'&'=>789,'\\''=>790,'('=>791,')'=>690,'*'=>960,'+'=>939,\n-\t','=>549,'-'=>855,'.'=>911,'\u002F'=>933,'0'=>911,'1'=>945,'2'=>974,'3'=>755,'4'=>846,'5'=>762,'6'=>761,'7'=>571,'8'=>677,'9'=>763,':'=>760,';'=>759,'\u003C'=>754,'='=>494,'>'=>552,'?'=>537,'@'=>577,'A'=>692,\n-\t'B'=>786,'C'=>788,'D'=>788,'E'=>790,'F'=>793,'G'=>794,'H'=>816,'I'=>823,'J'=>789,'K'=>841,'L'=>823,'M'=>833,'N'=>816,'O'=>831,'P'=>923,'Q'=>744,'R'=>723,'S'=>749,'T'=>790,'U'=>792,'V'=>695,'W'=>776,\n-\t'X'=>768,'Y'=>792,'Z'=>759,'['=>707,'\\\\'=>708,']'=>682,'^'=>701,'_'=>826,'`'=>815,'a'=>789,'b'=>789,'c'=>707,'d'=>687,'e'=>696,'f'=>689,'g'=>786,'h'=>787,'i'=>713,'j'=>791,'k'=>785,'l'=>791,'m'=>873,\n-\t'n'=>761,'o'=>762,'p'=>762,'q'=>759,'r'=>759,'s'=>892,'t'=>892,'u'=>788,'v'=>784,'w'=>438,'x'=>138,'y'=>277,'z'=>415,'{'=>392,'|'=>392,'}'=>668,'~'=>668,chr(127)=>0,chr(128)=>390,chr(129)=>390,chr(130)=>317,chr(131)=>317,\n-\tchr(132)=>276,chr(133)=>276,chr(134)=>509,chr(135)=>509,chr(136)=>410,chr(137)=>410,chr(138)=>234,chr(139)=>234,chr(140)=>334,chr(141)=>334,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,\n-\tchr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>0,chr(161)=>732,chr(162)=>544,chr(163)=>544,chr(164)=>910,chr(165)=>667,chr(166)=>760,chr(167)=>760,chr(168)=>776,chr(169)=>595,chr(170)=>694,chr(171)=>626,chr(172)=>788,chr(173)=>788,chr(174)=>788,chr(175)=>788,\n-\tchr(176)=>788,chr(177)=>788,chr(178)=>788,chr(179)=>788,chr(180)=>788,chr(181)=>788,chr(182)=>788,chr(183)=>788,chr(184)=>788,chr(185)=>788,chr(186)=>788,chr(187)=>788,chr(188)=>788,chr(189)=>788,chr(190)=>788,chr(191)=>788,chr(192)=>788,chr(193)=>788,chr(194)=>788,chr(195)=>788,chr(196)=>788,chr(197)=>788,\n-\tchr(198)=>788,chr(199)=>788,chr(200)=>788,chr(201)=>788,chr(202)=>788,chr(203)=>788,chr(204)=>788,chr(205)=>788,chr(206)=>788,chr(207)=>788,chr(208)=>788,chr(209)=>788,chr(210)=>788,chr(211)=>788,chr(212)=>894,chr(213)=>838,chr(214)=>1016,chr(215)=>458,chr(216)=>748,chr(217)=>924,chr(218)=>748,chr(219)=>918,\n-\tchr(220)=>927,chr(221)=>928,chr(222)=>928,chr(223)=>834,chr(224)=>873,chr(225)=>828,chr(226)=>924,chr(227)=>924,chr(228)=>917,chr(229)=>930,chr(230)=>931,chr(231)=>463,chr(232)=>883,chr(233)=>836,chr(234)=>836,chr(235)=>867,chr(236)=>867,chr(237)=>696,chr(238)=>696,chr(239)=>874,chr(240)=>0,chr(241)=>874,\n-\tchr(242)=>760,chr(243)=>946,chr(244)=>771,chr(245)=>865,chr(246)=>771,chr(247)=>888,chr(248)=>967,chr(249)=>888,chr(250)=>831,chr(251)=>873,chr(252)=>927,chr(253)=>970,chr(254)=>918,chr(255)=>0);\n-$uv = array(32=>32,33=>array(9985,4),37=>9742,38=>array(9990,4),42=>9755,43=>9758,44=>array(9996,28),72=>9733,73=>array(10025,35),108=>9679,109=>10061,110=>9632,111=>array(10063,4),115=>9650,116=>9660,117=>9670,118=>10070,119=>9687,120=>array(10072,7),128=>array(10088,14),161=>array(10081,7),168=>9827,169=>9830,170=>9829,171=>9824,172=>array(9312,10),182=>array(10102,31),213=>8594,214=>array(8596,2),216=>array(10136,24),241=>array(10161,14));\n-?>\n+\u003C?php\r\n+$type = 'Core';\r\n+$name = 'ZapfDingbats';\r\n+$up = -100;\r\n+$ut = 50;\r\n+$cw = array(\r\n+\tchr(0)=>0,chr(1)=>0,chr(2)=>0,chr(3)=>0,chr(4)=>0,chr(5)=>0,chr(6)=>0,chr(7)=>0,chr(8)=>0,chr(9)=>0,chr(10)=>0,chr(11)=>0,chr(12)=>0,chr(13)=>0,chr(14)=>0,chr(15)=>0,chr(16)=>0,chr(17)=>0,chr(18)=>0,chr(19)=>0,chr(20)=>0,chr(21)=>0,\r\n+\tchr(22)=>0,chr(23)=>0,chr(24)=>0,chr(25)=>0,chr(26)=>0,chr(27)=>0,chr(28)=>0,chr(29)=>0,chr(30)=>0,chr(31)=>0,' '=>278,'!'=>974,'\"'=>961,'#'=>974,'$'=>980,'%'=>719,'&'=>789,'\\''=>790,'('=>791,')'=>690,'*'=>960,'+'=>939,\r\n+\t','=>549,'-'=>855,'.'=>911,'\u002F'=>933,'0'=>911,'1'=>945,'2'=>974,'3'=>755,'4'=>846,'5'=>762,'6'=>761,'7'=>571,'8'=>677,'9'=>763,':'=>760,';'=>759,'\u003C'=>754,'='=>494,'>'=>552,'?'=>537,'@'=>577,'A'=>692,\r\n+\t'B'=>786,'C'=>788,'D'=>788,'E'=>790,'F'=>793,'G'=>794,'H'=>816,'I'=>823,'J'=>789,'K'=>841,'L'=>823,'M'=>833,'N'=>816,'O'=>831,'P'=>923,'Q'=>744,'R'=>723,'S'=>749,'T'=>790,'U'=>792,'V'=>695,'W'=>776,\r\n+\t'X'=>768,'Y'=>792,'Z'=>759,'['=>707,'\\\\'=>708,']'=>682,'^'=>701,'_'=>826,'`'=>815,'a'=>789,'b'=>789,'c'=>707,'d'=>687,'e'=>696,'f'=>689,'g'=>786,'h'=>787,'i'=>713,'j'=>791,'k'=>785,'l'=>791,'m'=>873,\r\n+\t'n'=>761,'o'=>762,'p'=>762,'q'=>759,'r'=>759,'s'=>892,'t'=>892,'u'=>788,'v'=>784,'w'=>438,'x'=>138,'y'=>277,'z'=>415,'{'=>392,'|'=>392,'}'=>668,'~'=>668,chr(127)=>0,chr(128)=>390,chr(129)=>390,chr(130)=>317,chr(131)=>317,\r\n+\tchr(132)=>276,chr(133)=>276,chr(134)=>509,chr(135)=>509,chr(136)=>410,chr(137)=>410,chr(138)=>234,chr(139)=>234,chr(140)=>334,chr(141)=>334,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,\r\n+\tchr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>0,chr(161)=>732,chr(162)=>544,chr(163)=>544,chr(164)=>910,chr(165)=>667,chr(166)=>760,chr(167)=>760,chr(168)=>776,chr(169)=>595,chr(170)=>694,chr(171)=>626,chr(172)=>788,chr(173)=>788,chr(174)=>788,chr(175)=>788,\r\n+\tchr(176)=>788,chr(177)=>788,chr(178)=>788,chr(179)=>788,chr(180)=>788,chr(181)=>788,chr(182)=>788,chr(183)=>788,chr(184)=>788,chr(185)=>788,chr(186)=>788,chr(187)=>788,chr(188)=>788,chr(189)=>788,chr(190)=>788,chr(191)=>788,chr(192)=>788,chr(193)=>788,chr(194)=>788,chr(195)=>788,chr(196)=>788,chr(197)=>788,\r\n+\tchr(198)=>788,chr(199)=>788,chr(200)=>788,chr(201)=>788,chr(202)=>788,chr(203)=>788,chr(204)=>788,chr(205)=>788,chr(206)=>788,chr(207)=>788,chr(208)=>788,chr(209)=>788,chr(210)=>788,chr(211)=>788,chr(212)=>894,chr(213)=>838,chr(214)=>1016,chr(215)=>458,chr(216)=>748,chr(217)=>924,chr(218)=>748,chr(219)=>918,\r\n+\tchr(220)=>927,chr(221)=>928,chr(222)=>928,chr(223)=>834,chr(224)=>873,chr(225)=>828,chr(226)=>924,chr(227)=>924,chr(228)=>917,chr(229)=>930,chr(230)=>931,chr(231)=>463,chr(232)=>883,chr(233)=>836,chr(234)=>836,chr(235)=>867,chr(236)=>867,chr(237)=>696,chr(238)=>696,chr(239)=>874,chr(240)=>0,chr(241)=>874,\r\n+\tchr(242)=>760,chr(243)=>946,chr(244)=>771,chr(245)=>865,chr(246)=>771,chr(247)=>888,chr(248)=>967,chr(249)=>888,chr(250)=>831,chr(251)=>873,chr(252)=>927,chr(253)=>970,chr(254)=>918,chr(255)=>0);\r\n+$uv = array(32=>32,33=>array(9985,4),37=>9742,38=>array(9990,4),42=>9755,43=>9758,44=>array(9996,28),72=>9733,73=>array(10025,35),108=>9679,109=>10061,110=>9632,111=>array(10063,4),115=>9650,116=>9660,117=>9670,118=>10070,119=>9687,120=>array(10072,7),128=>array(10088,14),161=>array(10081,7),168=>9827,169=>9830,170=>9829,171=>9824,172=>array(9312,10),182=>array(10102,31),213=>8594,214=>array(8596,2),216=>array(10136,24),241=>array(10161,14));\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffpdf.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffpdf.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Ffpdf.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Ffpdf.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,1935 +1,1935 @@\n-\u003C?php\n-\u002F*******************************************************************************\n-* FPDF                                                                         *\n-*                                                                              *\n-* Version: 1.85                                                                *\n-* Date:    2022-11-10                                                          *\n-* Author:  Olivier PLATHEY                                                     *\n-*******************************************************************************\u002F\n-\n-class FPDF\n-{\n-const VERSION = '1.85';\n-protected $page;               \u002F\u002F current page number\n-protected $n;                  \u002F\u002F current object number\n-protected $offsets;            \u002F\u002F array of object offsets\n-protected $buffer;             \u002F\u002F buffer holding in-memory PDF\n-protected $pages;              \u002F\u002F array containing pages\n-protected $state;              \u002F\u002F current document state\n-protected $compress;           \u002F\u002F compression flag\n-protected $iconv;              \u002F\u002F whether iconv is available\n-protected $k;                  \u002F\u002F scale factor (number of points in user unit)\n-protected $DefOrientation;     \u002F\u002F default orientation\n-protected $CurOrientation;     \u002F\u002F current orientation\n-protected $StdPageSizes;       \u002F\u002F standard page sizes\n-protected $DefPageSize;        \u002F\u002F default page size\n-protected $CurPageSize;        \u002F\u002F current page size\n-protected $CurRotation;        \u002F\u002F current page rotation\n-protected $PageInfo;           \u002F\u002F page-related data\n-protected $wPt, $hPt;          \u002F\u002F dimensions of current page in points\n-protected $w, $h;              \u002F\u002F dimensions of current page in user unit\n-protected $lMargin;            \u002F\u002F left margin\n-protected $tMargin;            \u002F\u002F top margin\n-protected $rMargin;            \u002F\u002F right margin\n-protected $bMargin;            \u002F\u002F page break margin\n-protected $cMargin;            \u002F\u002F cell margin\n-protected $x, $y;              \u002F\u002F current position in user unit\n-protected $lasth;              \u002F\u002F height of last printed cell\n-protected $LineWidth;          \u002F\u002F line width in user unit\n-protected $fontpath;           \u002F\u002F path containing fonts\n-protected $CoreFonts;          \u002F\u002F array of core font names\n-protected $fonts;              \u002F\u002F array of used fonts\n-protected $FontFiles;          \u002F\u002F array of font files\n-protected $encodings;          \u002F\u002F array of encodings\n-protected $cmaps;              \u002F\u002F array of ToUnicode CMaps\n-protected $FontFamily;         \u002F\u002F current font family\n-protected $FontStyle;          \u002F\u002F current font style\n-protected $underline;          \u002F\u002F underlining flag\n-protected $CurrentFont;        \u002F\u002F current font info\n-protected $FontSizePt;         \u002F\u002F current font size in points\n-protected $FontSize;           \u002F\u002F current font size in user unit\n-protected $DrawColor;          \u002F\u002F commands for drawing color\n-protected $FillColor;          \u002F\u002F commands for filling color\n-protected $TextColor;          \u002F\u002F commands for text color\n-protected $ColorFlag;          \u002F\u002F indicates whether fill and text colors are different\n-protected $WithAlpha;          \u002F\u002F indicates whether alpha channel is used\n-protected $ws;                 \u002F\u002F word spacing\n-protected $images;             \u002F\u002F array of used images\n-protected $PageLinks;          \u002F\u002F array of links in pages\n-protected $links;              \u002F\u002F array of internal links\n-protected $AutoPageBreak;      \u002F\u002F automatic page breaking\n-protected $PageBreakTrigger;   \u002F\u002F threshold used to trigger page breaks\n-protected $InHeader;           \u002F\u002F flag set when processing header\n-protected $InFooter;           \u002F\u002F flag set when processing footer\n-protected $AliasNbPages;       \u002F\u002F alias for total number of pages\n-protected $ZoomMode;           \u002F\u002F zoom display mode\n-protected $LayoutMode;         \u002F\u002F layout display mode\n-protected $metadata;           \u002F\u002F document properties\n-protected $CreationDate;       \u002F\u002F document creation date\n-protected $PDFVersion;         \u002F\u002F PDF version number\n-\n-\u002F*******************************************************************************\n-*                               Public methods                                 *\n-*******************************************************************************\u002F\n-\n-function __construct($orientation='P', $unit='mm', $size='A4')\n-{\n-\t\u002F\u002F Initialization of properties\n-\t$this->state = 0;\n-\t$this->page = 0;\n-\t$this->n = 2;\n-\t$this->buffer = '';\n-\t$this->pages = array();\n-\t$this->PageInfo = array();\n-\t$this->fonts = array();\n-\t$this->FontFiles = array();\n-\t$this->encodings = array();\n-\t$this->cmaps = array();\n-\t$this->images = array();\n-\t$this->links = array();\n-\t$this->InHeader = false;\n-\t$this->InFooter = false;\n-\t$this->lasth = 0;\n-\t$this->FontFamily = '';\n-\t$this->FontStyle = '';\n-\t$this->FontSizePt = 12;\n-\t$this->underline = false;\n-\t$this->DrawColor = '0 G';\n-\t$this->FillColor = '0 g';\n-\t$this->TextColor = '0 g';\n-\t$this->ColorFlag = false;\n-\t$this->WithAlpha = false;\n-\t$this->ws = 0;\n-\t$this->iconv = function_exists('iconv');\n-\t\u002F\u002F Font path\n-\tif(defined('FPDF_FONTPATH'))\n-\t{\n-\t\t$this->fontpath = FPDF_FONTPATH;\n-\t\tif(substr($this->fontpath,-1)!='\u002F' && substr($this->fontpath,-1)!='\\\\')\n-\t\t\t$this->fontpath .= '\u002F';\n-\t}\n-\telseif(is_dir(dirname(__FILE__).'\u002Ffont'))\n-\t\t$this->fontpath = dirname(__FILE__).'\u002Ffont\u002F';\n-\telse\n-\t\t$this->fontpath = '';\n-\t\u002F\u002F Core fonts\n-\t$this->CoreFonts = array('courier', 'helvetica', 'times', 'symbol', 'zapfdingbats');\n-\t\u002F\u002F Scale factor\n-\tif($unit=='pt')\n-\t\t$this->k = 1;\n-\telseif($unit=='mm')\n-\t\t$this->k = 72\u002F25.4;\n-\telseif($unit=='cm')\n-\t\t$this->k = 72\u002F2.54;\n-\telseif($unit=='in')\n-\t\t$this->k = 72;\n-\telse\n-\t\t$this->Error('Incorrect unit: '.$unit);\n-\t\u002F\u002F Page sizes\n-\t$this->StdPageSizes = array('a3'=>array(841.89,1190.55), 'a4'=>array(595.28,841.89), 'a5'=>array(420.94,595.28),\n-\t\t'letter'=>array(612,792), 'legal'=>array(612,1008));\n-\t$size = $this->_getpagesize($size);\n-\t$this->DefPageSize = $size;\n-\t$this->CurPageSize = $size;\n-\t\u002F\u002F Page orientation\n-\t$orientation = strtolower($orientation);\n-\tif($orientation=='p' || $orientation=='portrait')\n-\t{\n-\t\t$this->DefOrientation = 'P';\n-\t\t$this->w = $size[0];\n-\t\t$this->h = $size[1];\n-\t}\n-\telseif($orientation=='l' || $orientation=='landscape')\n-\t{\n-\t\t$this->DefOrientation = 'L';\n-\t\t$this->w = $size[1];\n-\t\t$this->h = $size[0];\n-\t}\n-\telse\n-\t\t$this->Error('Incorrect orientation: '.$orientation);\n-\t$this->CurOrientation = $this->DefOrientation;\n-\t$this->wPt = $this->w*$this->k;\n-\t$this->hPt = $this->h*$this->k;\n-\t\u002F\u002F Page rotation\n-\t$this->CurRotation = 0;\n-\t\u002F\u002F Page margins (1 cm)\n-\t$margin = 28.35\u002F$this->k;\n-\t$this->SetMargins($margin,$margin);\n-\t\u002F\u002F Interior cell margin (1 mm)\n-\t$this->cMargin = $margin\u002F10;\n-\t\u002F\u002F Line width (0.2 mm)\n-\t$this->LineWidth = .567\u002F$this->k;\n-\t\u002F\u002F Automatic page break\n-\t$this->SetAutoPageBreak(true,2*$margin);\n-\t\u002F\u002F Default display mode\n-\t$this->SetDisplayMode('default');\n-\t\u002F\u002F Enable compression\n-\t$this->SetCompression(true);\n-\t\u002F\u002F Metadata\n-\t$this->metadata = array('Producer'=>'FPDF '.self::VERSION);\n-\t\u002F\u002F Set default PDF version number\n-\t$this->PDFVersion = '1.3';\n-}\n-\n-function SetMargins($left, $top, $right=null)\n-{\n-\t\u002F\u002F Set left, top and right margins\n-\t$this->lMargin = $left;\n-\t$this->tMargin = $top;\n-\tif($right===null)\n-\t\t$right = $left;\n-\t$this->rMargin = $right;\n-}\n-\n-function SetLeftMargin($margin)\n-{\n-\t\u002F\u002F Set left margin\n-\t$this->lMargin = $margin;\n-\tif($this->page>0 && $this->x\u003C$margin)\n-\t\t$this->x = $margin;\n-}\n-\n-function SetTopMargin($margin)\n-{\n-\t\u002F\u002F Set top margin\n-\t$this->tMargin = $margin;\n-}\n-\n-function SetRightMargin($margin)\n-{\n-\t\u002F\u002F Set right margin\n-\t$this->rMargin = $margin;\n-}\n-\n-function SetAutoPageBreak($auto, $margin=0)\n-{\n-\t\u002F\u002F Set auto page break mode and triggering margin\n-\t$this->AutoPageBreak = $auto;\n-\t$this->bMargin = $margin;\n-\t$this->PageBreakTrigger = $this->h-$margin;\n-}\n-\n-function SetDisplayMode($zoom, $layout='default')\n-{\n-\t\u002F\u002F Set display mode in viewer\n-\tif($zoom=='fullpage' || $zoom=='fullwidth' || $zoom=='real' || $zoom=='default' || !is_string($zoom))\n-\t\t$this->ZoomMode = $zoom;\n-\telse\n-\t\t$this->Error('Incorrect zoom display mode: '.$zoom);\n-\tif($layout=='single' || $layout=='continuous' || $layout=='two' || $layout=='default')\n-\t\t$this->LayoutMode = $layout;\n-\telse\n-\t\t$this->Error('Incorrect layout display mode: '.$layout);\n-}\n-\n-function SetCompression($compress)\n-{\n-\t\u002F\u002F Set page compression\n-\tif(function_exists('gzcompress'))\n-\t\t$this->compress = $compress;\n-\telse\n-\t\t$this->compress = false;\n-}\n-\n-function SetTitle($title, $isUTF8=false)\n-{\n-\t\u002F\u002F Title of document\n-\t$this->metadata['Title'] = $isUTF8 ? $title : $this->_UTF8encode($title);\n-}\n-\n-function SetAuthor($author, $isUTF8=false)\n-{\n-\t\u002F\u002F Author of document\n-\t$this->metadata['Author'] = $isUTF8 ? $author : $this->_UTF8encode($author);\n-}\n-\n-function SetSubject($subject, $isUTF8=false)\n-{\n-\t\u002F\u002F Subject of document\n-\t$this->metadata['Subject'] = $isUTF8 ? $subject : $this->_UTF8encode($subject);\n-}\n-\n-function SetKeywords($keywords, $isUTF8=false)\n-{\n-\t\u002F\u002F Keywords of document\n-\t$this->metadata['Keywords'] = $isUTF8 ? $keywords : $this->_UTF8encode($keywords);\n-}\n-\n-function SetCreator($creator, $isUTF8=false)\n-{\n-\t\u002F\u002F Creator of document\n-\t$this->metadata['Creator'] = $isUTF8 ? $creator : $this->_UTF8encode($creator);\n-}\n-\n-function AliasNbPages($alias='{nb}')\n-{\n-\t\u002F\u002F Define an alias for total number of pages\n-\t$this->AliasNbPages = $alias;\n-}\n-\n-function Error($msg)\n-{\n-\t\u002F\u002F Fatal error\n-\tthrow new Exception('FPDF error: '.$msg);\n-}\n-\n-function Close()\n-{\n-\t\u002F\u002F Terminate document\n-\tif($this->state==3)\n-\t\treturn;\n-\tif($this->page==0)\n-\t\t$this->AddPage();\n-\t\u002F\u002F Page footer\n-\t$this->InFooter = true;\n-\t$this->Footer();\n-\t$this->InFooter = false;\n-\t\u002F\u002F Close page\n-\t$this->_endpage();\n-\t\u002F\u002F Close document\n-\t$this->_enddoc();\n-}\n-\n-function AddPage($orientation='', $size='', $rotation=0)\n-{\n-\t\u002F\u002F Start a new page\n-\tif($this->state==3)\n-\t\t$this->Error('The document is closed');\n-\t$family = $this->FontFamily;\n-\t$style = $this->FontStyle.($this->underline ? 'U' : '');\n-\t$fontsize = $this->FontSizePt;\n-\t$lw = $this->LineWidth;\n-\t$dc = $this->DrawColor;\n-\t$fc = $this->FillColor;\n-\t$tc = $this->TextColor;\n-\t$cf = $this->ColorFlag;\n-\tif($this->page>0)\n-\t{\n-\t\t\u002F\u002F Page footer\n-\t\t$this->InFooter = true;\n-\t\t$this->Footer();\n-\t\t$this->InFooter = false;\n-\t\t\u002F\u002F Close page\n-\t\t$this->_endpage();\n-\t}\n-\t\u002F\u002F Start new page\n-\t$this->_beginpage($orientation,$size,$rotation);\n-\t\u002F\u002F Set line cap style to square\n-\t$this->_out('2 J');\n-\t\u002F\u002F Set line width\n-\t$this->LineWidth = $lw;\n-\t$this->_out(sprintf('%.2F w',$lw*$this->k));\n-\t\u002F\u002F Set font\n-\tif($family)\n-\t\t$this->SetFont($family,$style,$fontsize);\n-\t\u002F\u002F Set colors\n-\t$this->DrawColor = $dc;\n-\tif($dc!='0 G')\n-\t\t$this->_out($dc);\n-\t$this->FillColor = $fc;\n-\tif($fc!='0 g')\n-\t\t$this->_out($fc);\n-\t$this->TextColor = $tc;\n-\t$this->ColorFlag = $cf;\n-\t\u002F\u002F Page header\n-\t$this->InHeader = true;\n-\t$this->Header();\n-\t$this->InHeader = false;\n-\t\u002F\u002F Restore line width\n-\tif($this->LineWidth!=$lw)\n-\t{\n-\t\t$this->LineWidth = $lw;\n-\t\t$this->_out(sprintf('%.2F w',$lw*$this->k));\n-\t}\n-\t\u002F\u002F Restore font\n-\tif($family)\n-\t\t$this->SetFont($family,$style,$fontsize);\n-\t\u002F\u002F Restore colors\n-\tif($this->DrawColor!=$dc)\n-\t{\n-\t\t$this->DrawColor = $dc;\n-\t\t$this->_out($dc);\n-\t}\n-\tif($this->FillColor!=$fc)\n-\t{\n-\t\t$this->FillColor = $fc;\n-\t\t$this->_out($fc);\n-\t}\n-\t$this->TextColor = $tc;\n-\t$this->ColorFlag = $cf;\n-}\n-\n-function Header()\n-{\n-\t\u002F\u002F To be implemented in your own inherited class\n-}\n-\n-function Footer()\n-{\n-\t\u002F\u002F To be implemented in your own inherited class\n-}\n-\n-function PageNo()\n-{\n-\t\u002F\u002F Get current page number\n-\treturn $this->page;\n-}\n-\n-function SetDrawColor($r, $g=null, $b=null)\n-{\n-\t\u002F\u002F Set color for all stroking operations\n-\tif(($r==0 && $g==0 && $b==0) || $g===null)\n-\t\t$this->DrawColor = sprintf('%.3F G',$r\u002F255);\n-\telse\n-\t\t$this->DrawColor = sprintf('%.3F %.3F %.3F RG',$r\u002F255,$g\u002F255,$b\u002F255);\n-\tif($this->page>0)\n-\t\t$this->_out($this->DrawColor);\n-}\n-\n-function SetFillColor($r, $g=null, $b=null)\n-{\n-\t\u002F\u002F Set color for all filling operations\n-\tif(($r==0 && $g==0 && $b==0) || $g===null)\n-\t\t$this->FillColor = sprintf('%.3F g',$r\u002F255);\n-\telse\n-\t\t$this->FillColor = sprintf('%.3F %.3F %.3F rg',$r\u002F255,$g\u002F255,$b\u002F255);\n-\t$this->ColorFlag = ($this->FillColor!=$this->TextColor);\n-\tif($this->page>0)\n-\t\t$this->_out($this->FillColor);\n-}\n-\n-function SetTextColor($r, $g=null, $b=null)\n-{\n-\t\u002F\u002F Set color for text\n-\tif(($r==0 && $g==0 && $b==0) || $g===null)\n-\t\t$this->TextColor = sprintf('%.3F g',$r\u002F255);\n-\telse\n-\t\t$this->TextColor = sprintf('%.3F %.3F %.3F rg',$r\u002F255,$g\u002F255,$b\u002F255);\n-\t$this->ColorFlag = ($this->FillColor!=$this->TextColor);\n-}\n-\n-function GetStringWidth($s)\n-{\n-\t\u002F\u002F Get width of a string in the current font\n-\t$cw = $this->CurrentFont['cw'];\n-\t$w = 0;\n-\t$s = (string)$s;\n-\t$l = strlen($s);\n-\tfor($i=0;$i\u003C$l;$i++)\n-\t\t$w += $cw[$s[$i]];\n-\treturn $w*$this->FontSize\u002F1000;\n-}\n-\n-function SetLineWidth($width)\n-{\n-\t\u002F\u002F Set line width\n-\t$this->LineWidth = $width;\n-\tif($this->page>0)\n-\t\t$this->_out(sprintf('%.2F w',$width*$this->k));\n-}\n-\n-function Line($x1, $y1, $x2, $y2)\n-{\n-\t\u002F\u002F Draw a line\n-\t$this->_out(sprintf('%.2F %.2F m %.2F %.2F l S',$x1*$this->k,($this->h-$y1)*$this->k,$x2*$this->k,($this->h-$y2)*$this->k));\n-}\n-\n-function Rect($x, $y, $w, $h, $style='')\n-{\n-\t\u002F\u002F Draw a rectangle\n-\tif($style=='F')\n-\t\t$op = 'f';\n-\telseif($style=='FD' || $style=='DF')\n-\t\t$op = 'B';\n-\telse\n-\t\t$op = 'S';\n-\t$this->_out(sprintf('%.2F %.2F %.2F %.2F re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op));\n-}\n-\n-function AddFont($family, $style='', $file='')\n-{\n-\t\u002F\u002F Add a TrueType, OpenType or Type1 font\n-\t$family = strtolower($family);\n-\tif($file=='')\n-\t\t$file = str_replace(' ','',$family).strtolower($style).'.php';\n-\t$style = strtoupper($style);\n-\tif($style=='IB')\n-\t\t$style = 'BI';\n-\t$fontkey = $family.$style;\n-\tif(isset($this->fonts[$fontkey]))\n-\t\treturn;\n-\t$info = $this->_loadfont($file);\n-\t$info['i'] = count($this->fonts)+1;\n-\tif(!empty($info['file']))\n-\t{\n-\t\t\u002F\u002F Embedded font\n-\t\tif($info['type']=='TrueType')\n-\t\t\t$this->FontFiles[$info['file']] = array('length1'=>$info['originalsize']);\n-\t\telse\n-\t\t\t$this->FontFiles[$info['file']] = array('length1'=>$info['size1'], 'length2'=>$info['size2']);\n-\t}\n-\t$this->fonts[$fontkey] = $info;\n-}\n-\n-function SetFont($family, $style='', $size=0)\n-{\n-\t\u002F\u002F Select a font; size given in points\n-\tif($family=='')\n-\t\t$family = $this->FontFamily;\n-\telse\n-\t\t$family = strtolower($family);\n-\t$style = strtoupper($style);\n-\tif(strpos($style,'U')!==false)\n-\t{\n-\t\t$this->underline = true;\n-\t\t$style = str_replace('U','',$style);\n-\t}\n-\telse\n-\t\t$this->underline = false;\n-\tif($style=='IB')\n-\t\t$style = 'BI';\n-\tif($size==0)\n-\t\t$size = $this->FontSizePt;\n-\t\u002F\u002F Test if font is already selected\n-\tif($this->FontFamily==$family && $this->FontStyle==$style && $this->FontSizePt==$size)\n-\t\treturn;\n-\t\u002F\u002F Test if font is already loaded\n-\t$fontkey = $family.$style;\n-\tif(!isset($this->fonts[$fontkey]))\n-\t{\n-\t\t\u002F\u002F Test if one of the core fonts\n-\t\tif($family=='arial')\n-\t\t\t$family = 'helvetica';\n-\t\tif(in_array($family,$this->CoreFonts))\n-\t\t{\n-\t\t\tif($family=='symbol' || $family=='zapfdingbats')\n-\t\t\t\t$style = '';\n-\t\t\t$fontkey = $family.$style;\n-\t\t\tif(!isset($this->fonts[$fontkey]))\n-\t\t\t\t$this->AddFont($family,$style);\n-\t\t}\n-\t\telse\n-\t\t\t$this->Error('Undefined font: '.$family.' '.$style);\n-\t}\n-\t\u002F\u002F Select it\n-\t$this->FontFamily = $family;\n-\t$this->FontStyle = $style;\n-\t$this->FontSizePt = $size;\n-\t$this->FontSize = $size\u002F$this->k;\n-\t$this->CurrentFont = $this->fonts[$fontkey];\n-\tif($this->page>0)\n-\t\t$this->_out(sprintf('BT \u002FF%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));\n-}\n-\n-function SetFontSize($size)\n-{\n-\t\u002F\u002F Set font size in points\n-\tif($this->FontSizePt==$size)\n-\t\treturn;\n-\t$this->FontSizePt = $size;\n-\t$this->FontSize = $size\u002F$this->k;\n-\tif($this->page>0 && isset($this->CurrentFont))\n-\t\t$this->_out(sprintf('BT \u002FF%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));\n-}\n-\n-function AddLink()\n-{\n-\t\u002F\u002F Create a new internal link\n-\t$n = count($this->links)+1;\n-\t$this->links[$n] = array(0, 0);\n-\treturn $n;\n-}\n-\n-function SetLink($link, $y=0, $page=-1)\n-{\n-\t\u002F\u002F Set destination of internal link\n-\tif($y==-1)\n-\t\t$y = $this->y;\n-\tif($page==-1)\n-\t\t$page = $this->page;\n-\t$this->links[$link] = array($page, $y);\n-}\n-\n-function Link($x, $y, $w, $h, $link)\n-{\n-\t\u002F\u002F Put a link on the page\n-\t$this->PageLinks[$this->page][] = array($x*$this->k, $this->hPt-$y*$this->k, $w*$this->k, $h*$this->k, $link);\n-}\n-\n-function Text($x, $y, $txt)\n-{\n-\t\u002F\u002F Output a string\n-\tif(!isset($this->CurrentFont))\n-\t\t$this->Error('No font has been set');\n-\t$txt = (string)$txt;\n-\t$s = sprintf('BT %.2F %.2F Td (%s) Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt));\n-\tif($this->underline && $txt!=='')\n-\t\t$s .= ' '.$this->_dounderline($x,$y,$txt);\n-\tif($this->ColorFlag)\n-\t\t$s = 'q '.$this->TextColor.' '.$s.' Q';\n-\t$this->_out($s);\n-}\n-\n-function AcceptPageBreak()\n-{\n-\t\u002F\u002F Accept automatic page break or not\n-\treturn $this->AutoPageBreak;\n-}\n-\n-function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='')\n-{\n-\t\u002F\u002F Output a cell\n-\t$k = $this->k;\n-\tif($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())\n-\t{\n-\t\t\u002F\u002F Automatic page break\n-\t\t$x = $this->x;\n-\t\t$ws = $this->ws;\n-\t\tif($ws>0)\n-\t\t{\n-\t\t\t$this->ws = 0;\n-\t\t\t$this->_out('0 Tw');\n-\t\t}\n-\t\t$this->AddPage($this->CurOrientation,$this->CurPageSize,$this->CurRotation);\n-\t\t$this->x = $x;\n-\t\tif($ws>0)\n-\t\t{\n-\t\t\t$this->ws = $ws;\n-\t\t\t$this->_out(sprintf('%.3F Tw',$ws*$k));\n-\t\t}\n-\t}\n-\tif($w==0)\n-\t\t$w = $this->w-$this->rMargin-$this->x;\n-\t$s = '';\n-\tif($fill || $border==1)\n-\t{\n-\t\tif($fill)\n-\t\t\t$op = ($border==1) ? 'B' : 'f';\n-\t\telse\n-\t\t\t$op = 'S';\n-\t\t$s = sprintf('%.2F %.2F %.2F %.2F re %s ',$this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op);\n-\t}\n-\tif(is_string($border))\n-\t{\n-\t\t$x = $this->x;\n-\t\t$y = $this->y;\n-\t\tif(strpos($border,'L')!==false)\n-\t\t\t$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k);\n-\t\tif(strpos($border,'T')!==false)\n-\t\t\t$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k);\n-\t\tif(strpos($border,'R')!==false)\n-\t\t\t$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k);\n-\t\tif(strpos($border,'B')!==false)\n-\t\t\t$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k);\n-\t}\n-\t$txt = (string)$txt;\n-\tif($txt!=='')\n-\t{\n-\t\tif(!isset($this->CurrentFont))\n-\t\t\t$this->Error('No font has been set');\n-\t\tif($align=='R')\n-\t\t\t$dx = $w-$this->cMargin-$this->GetStringWidth($txt);\n-\t\telseif($align=='C')\n-\t\t\t$dx = ($w-$this->GetStringWidth($txt))\u002F2;\n-\t\telse\n-\t\t\t$dx = $this->cMargin;\n-\t\tif($this->ColorFlag)\n-\t\t\t$s .= 'q '.$this->TextColor.' ';\n-\t\t$s .= sprintf('BT %.2F %.2F Td (%s) Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$this->_escape($txt));\n-\t\tif($this->underline)\n-\t\t\t$s .= ' '.$this->_dounderline($this->x+$dx,$this->y+.5*$h+.3*$this->FontSize,$txt);\n-\t\tif($this->ColorFlag)\n-\t\t\t$s .= ' Q';\n-\t\tif($link)\n-\t\t\t$this->Link($this->x+$dx,$this->y+.5*$h-.5*$this->FontSize,$this->GetStringWidth($txt),$this->FontSize,$link);\n-\t}\n-\tif($s)\n-\t\t$this->_out($s);\n-\t$this->lasth = $h;\n-\tif($ln>0)\n-\t{\n-\t\t\u002F\u002F Go to next line\n-\t\t$this->y += $h;\n-\t\tif($ln==1)\n-\t\t\t$this->x = $this->lMargin;\n-\t}\n-\telse\n-\t\t$this->x += $w;\n-}\n-\n-function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false)\n-{\n-\t\u002F\u002F Output text with automatic or explicit line breaks\n-\tif(!isset($this->CurrentFont))\n-\t\t$this->Error('No font has been set');\n-\t$cw = $this->CurrentFont['cw'];\n-\tif($w==0)\n-\t\t$w = $this->w-$this->rMargin-$this->x;\n-\t$wmax = ($w-2*$this->cMargin)*1000\u002F$this->FontSize;\n-\t$s = str_replace(\"\\r\",'',(string)$txt);\n-\t$nb = strlen($s);\n-\tif($nb>0 && $s[$nb-1]==\"\\n\")\n-\t\t$nb--;\n-\t$b = 0;\n-\tif($border)\n-\t{\n-\t\tif($border==1)\n-\t\t{\n-\t\t\t$border = 'LTRB';\n-\t\t\t$b = 'LRT';\n-\t\t\t$b2 = 'LR';\n-\t\t}\n-\t\telse\n-\t\t{\n-\t\t\t$b2 = '';\n-\t\t\tif(strpos($border,'L')!==false)\n-\t\t\t\t$b2 .= 'L';\n-\t\t\tif(strpos($border,'R')!==false)\n-\t\t\t\t$b2 .= 'R';\n-\t\t\t$b = (strpos($border,'T')!==false) ? $b2.'T' : $b2;\n-\t\t}\n-\t}\n-\t$sep = -1;\n-\t$i = 0;\n-\t$j = 0;\n-\t$l = 0;\n-\t$ns = 0;\n-\t$nl = 1;\n-\twhile($i\u003C$nb)\n-\t{\n-\t\t\u002F\u002F Get next character\n-\t\t$c = $s[$i];\n-\t\tif($c==\"\\n\")\n-\t\t{\n-\t\t\t\u002F\u002F Explicit line break\n-\t\t\tif($this->ws>0)\n-\t\t\t{\n-\t\t\t\t$this->ws = 0;\n-\t\t\t\t$this->_out('0 Tw');\n-\t\t\t}\n-\t\t\t$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);\n-\t\t\t$i++;\n-\t\t\t$sep = -1;\n-\t\t\t$j = $i;\n-\t\t\t$l = 0;\n-\t\t\t$ns = 0;\n-\t\t\t$nl++;\n-\t\t\tif($border && $nl==2)\n-\t\t\t\t$b = $b2;\n-\t\t\tcontinue;\n-\t\t}\n-\t\tif($c==' ')\n-\t\t{\n-\t\t\t$sep = $i;\n-\t\t\t$ls = $l;\n-\t\t\t$ns++;\n-\t\t}\n-\t\t$l += $cw[$c];\n-\t\tif($l>$wmax)\n-\t\t{\n-\t\t\t\u002F\u002F Automatic line break\n-\t\t\tif($sep==-1)\n-\t\t\t{\n-\t\t\t\tif($i==$j)\n-\t\t\t\t\t$i++;\n-\t\t\t\tif($this->ws>0)\n-\t\t\t\t{\n-\t\t\t\t\t$this->ws = 0;\n-\t\t\t\t\t$this->_out('0 Tw');\n-\t\t\t\t}\n-\t\t\t\t$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);\n-\t\t\t}\n-\t\t\telse\n-\t\t\t{\n-\t\t\t\tif($align=='J')\n-\t\t\t\t{\n-\t\t\t\t\t$this->ws = ($ns>1) ? ($wmax-$ls)\u002F1000*$this->FontSize\u002F($ns-1) : 0;\n-\t\t\t\t\t$this->_out(sprintf('%.3F Tw',$this->ws*$this->k));\n-\t\t\t\t}\n-\t\t\t\t$this->Cell($w,$h,substr($s,$j,$sep-$j),$b,2,$align,$fill);\n-\t\t\t\t$i = $sep+1;\n-\t\t\t}\n-\t\t\t$sep = -1;\n-\t\t\t$j = $i;\n-\t\t\t$l = 0;\n-\t\t\t$ns = 0;\n-\t\t\t$nl++;\n-\t\t\tif($border && $nl==2)\n-\t\t\t\t$b = $b2;\n-\t\t}\n-\t\telse\n-\t\t\t$i++;\n-\t}\n-\t\u002F\u002F Last chunk\n-\tif($this->ws>0)\n-\t{\n-\t\t$this->ws = 0;\n-\t\t$this->_out('0 Tw');\n-\t}\n-\tif($border && strpos($border,'B')!==false)\n-\t\t$b .= 'B';\n-\t$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);\n-\t$this->x = $this->lMargin;\n-}\n-\n-function Write($h, $txt, $link='')\n-{\n-\t\u002F\u002F Output text in flowing mode\n-\tif(!isset($this->CurrentFont))\n-\t\t$this->Error('No font has been set');\n-\t$cw = $this->CurrentFont['cw'];\n-\t$w = $this->w-$this->rMargin-$this->x;\n-\t$wmax = ($w-2*$this->cMargin)*1000\u002F$this->FontSize;\n-\t$s = str_replace(\"\\r\",'',(string)$txt);\n-\t$nb = strlen($s);\n-\t$sep = -1;\n-\t$i = 0;\n-\t$j = 0;\n-\t$l = 0;\n-\t$nl = 1;\n-\twhile($i\u003C$nb)\n-\t{\n-\t\t\u002F\u002F Get next character\n-\t\t$c = $s[$i];\n-\t\tif($c==\"\\n\")\n-\t\t{\n-\t\t\t\u002F\u002F Explicit line break\n-\t\t\t$this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',false,$link);\n-\t\t\t$i++;\n-\t\t\t$sep = -1;\n-\t\t\t$j = $i;\n-\t\t\t$l = 0;\n-\t\t\tif($nl==1)\n-\t\t\t{\n-\t\t\t\t$this->x = $this->lMargin;\n-\t\t\t\t$w = $this->w-$this->rMargin-$this->x;\n-\t\t\t\t$wmax = ($w-2*$this->cMargin)*1000\u002F$this->FontSize;\n-\t\t\t}\n-\t\t\t$nl++;\n-\t\t\tcontinue;\n-\t\t}\n-\t\tif($c==' ')\n-\t\t\t$sep = $i;\n-\t\t$l += $cw[$c];\n-\t\tif($l>$wmax)\n-\t\t{\n-\t\t\t\u002F\u002F Automatic line break\n-\t\t\tif($sep==-1)\n-\t\t\t{\n-\t\t\t\tif($this->x>$this->lMargin)\n-\t\t\t\t{\n-\t\t\t\t\t\u002F\u002F Move to next line\n-\t\t\t\t\t$this->x = $this->lMargin;\n-\t\t\t\t\t$this->y += $h;\n-\t\t\t\t\t$w = $this->w-$this->rMargin-$this->x;\n-\t\t\t\t\t$wmax = ($w-2*$this->cMargin)*1000\u002F$this->FontSize;\n-\t\t\t\t\t$i++;\n-\t\t\t\t\t$nl++;\n-\t\t\t\t\tcontinue;\n-\t\t\t\t}\n-\t\t\t\tif($i==$j)\n-\t\t\t\t\t$i++;\n-\t\t\t\t$this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',false,$link);\n-\t\t\t}\n-\t\t\telse\n-\t\t\t{\n-\t\t\t\t$this->Cell($w,$h,substr($s,$j,$sep-$j),0,2,'',false,$link);\n-\t\t\t\t$i = $sep+1;\n-\t\t\t}\n-\t\t\t$sep = -1;\n-\t\t\t$j = $i;\n-\t\t\t$l = 0;\n-\t\t\tif($nl==1)\n-\t\t\t{\n-\t\t\t\t$this->x = $this->lMargin;\n-\t\t\t\t$w = $this->w-$this->rMargin-$this->x;\n-\t\t\t\t$wmax = ($w-2*$this->cMargin)*1000\u002F$this->FontSize;\n-\t\t\t}\n-\t\t\t$nl++;\n-\t\t}\n-\t\telse\n-\t\t\t$i++;\n-\t}\n-\t\u002F\u002F Last chunk\n-\tif($i!=$j)\n-\t\t$this->Cell($l\u002F1000*$this->FontSize,$h,substr($s,$j),0,0,'',false,$link);\n-}\n-\n-function Ln($h=null)\n-{\n-\t\u002F\u002F Line feed; default value is the last cell height\n-\t$this->x = $this->lMargin;\n-\tif($h===null)\n-\t\t$this->y += $this->lasth;\n-\telse\n-\t\t$this->y += $h;\n-}\n-\n-function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='')\n-{\n-\t\u002F\u002F Put an image on the page\n-\tif($file=='')\n-\t\t$this->Error('Image file name is empty');\n-\tif(!isset($this->images[$file]))\n-\t{\n-\t\t\u002F\u002F First use of this image, get info\n-\t\tif($type=='')\n-\t\t{\n-\t\t\t$pos = strrpos($file,'.');\n-\t\t\tif(!$pos)\n-\t\t\t\t$this->Error('Image file has no extension and no type was specified: '.$file);\n-\t\t\t$type = substr($file,$pos+1);\n-\t\t}\n-\t\t$type = strtolower($type);\n-\t\tif($type=='jpeg')\n-\t\t\t$type = 'jpg';\n-\t\t$mtd = '_parse'.$type;\n-\t\tif(!method_exists($this,$mtd))\n-\t\t\t$this->Error('Unsupported image type: '.$type);\n-\t\t$info = $this->$mtd($file);\n-\t\t$info['i'] = count($this->images)+1;\n-\t\t$this->images[$file] = $info;\n-\t}\n-\telse\n-\t\t$info = $this->images[$file];\n-\n-\t\u002F\u002F Automatic width and height calculation if needed\n-\tif($w==0 && $h==0)\n-\t{\n-\t\t\u002F\u002F Put image at 96 dpi\n-\t\t$w = -96;\n-\t\t$h = -96;\n-\t}\n-\tif($w\u003C0)\n-\t\t$w = -$info['w']*72\u002F$w\u002F$this->k;\n-\tif($h\u003C0)\n-\t\t$h = -$info['h']*72\u002F$h\u002F$this->k;\n-\tif($w==0)\n-\t\t$w = $h*$info['w']\u002F$info['h'];\n-\tif($h==0)\n-\t\t$h = $w*$info['h']\u002F$info['w'];\n-\n-\t\u002F\u002F Flowing mode\n-\tif($y===null)\n-\t{\n-\t\tif($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())\n-\t\t{\n-\t\t\t\u002F\u002F Automatic page break\n-\t\t\t$x2 = $this->x;\n-\t\t\t$this->AddPage($this->CurOrientation,$this->CurPageSize,$this->CurRotation);\n-\t\t\t$this->x = $x2;\n-\t\t}\n-\t\t$y = $this->y;\n-\t\t$this->y += $h;\n-\t}\n-\n-\tif($x===null)\n-\t\t$x = $this->x;\n-\t$this->_out(sprintf('q %.2F 0 0 %.2F %.2F %.2F cm \u002FI%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i']));\n-\tif($link)\n-\t\t$this->Link($x,$y,$w,$h,$link);\n-}\n-\n-function GetPageWidth()\n-{\n-\t\u002F\u002F Get current page width\n-\treturn $this->w;\n-}\n-\n-function GetPageHeight()\n-{\n-\t\u002F\u002F Get current page height\n-\treturn $this->h;\n-}\n-\n-function GetX()\n-{\n-\t\u002F\u002F Get x position\n-\treturn $this->x;\n-}\n-\n-function SetX($x)\n-{\n-\t\u002F\u002F Set x position\n-\tif($x>=0)\n-\t\t$this->x = $x;\n-\telse\n-\t\t$this->x = $this->w+$x;\n-}\n-\n-function GetY()\n-{\n-\t\u002F\u002F Get y position\n-\treturn $this->y;\n-}\n-\n-function SetY($y, $resetX=true)\n-{\n-\t\u002F\u002F Set y position and optionally reset x\n-\tif($y>=0)\n-\t\t$this->y = $y;\n-\telse\n-\t\t$this->y = $this->h+$y;\n-\tif($resetX)\n-\t\t$this->x = $this->lMargin;\n-}\n-\n-function SetXY($x, $y)\n-{\n-\t\u002F\u002F Set x and y positions\n-\t$this->SetX($x);\n-\t$this->SetY($y,false);\n-}\n-\n-function Output($dest='', $name='', $isUTF8=false)\n-{\n-\t\u002F\u002F Output PDF to some destination\n-\t$this->Close();\n-\tif(strlen($name)==1 && strlen($dest)!=1)\n-\t{\n-\t\t\u002F\u002F Fix parameter order\n-\t\t$tmp = $dest;\n-\t\t$dest = $name;\n-\t\t$name = $tmp;\n-\t}\n-\tif($dest=='')\n-\t\t$dest = 'I';\n-\tif($name=='')\n-\t\t$name = 'doc.pdf';\n-\tswitch(strtoupper($dest))\n-\t{\n-\t\tcase 'I':\n-\t\t\t\u002F\u002F Send to standard output\n-\t\t\t$this->_checkoutput();\n-\t\t\tif(PHP_SAPI!='cli')\n-\t\t\t{\n-\t\t\t\t\u002F\u002F We send to a browser\n-\t\t\t\theader('Content-Type: application\u002Fpdf');\n-\t\t\t\theader('Content-Disposition: inline; '.$this->_httpencode('filename',$name,$isUTF8));\n-\t\t\t\theader('Cache-Control: private, max-age=0, must-revalidate');\n-\t\t\t\theader('Pragma: public');\n-\t\t\t}\n-\t\t\techo $this->buffer;\n-\t\t\tbreak;\n-\t\tcase 'D':\n-\t\t\t\u002F\u002F Download file\n-\t\t\t$this->_checkoutput();\n-\t\t\theader('Content-Type: application\u002Fpdf');\n-\t\t\theader('Content-Disposition: attachment; '.$this->_httpencode('filename',$name,$isUTF8));\n-\t\t\theader('Cache-Control: private, max-age=0, must-revalidate');\n-\t\t\theader('Pragma: public');\n-\t\t\techo $this->buffer;\n-\t\t\tbreak;\n-\t\tcase 'F':\n-\t\t\t\u002F\u002F Save to local file\n-\t\t\tif(!file_put_contents($name,$this->buffer))\n-\t\t\t\t$this->Error('Unable to create output file: '.$name);\n-\t\t\tbreak;\n-\t\tcase 'S':\n-\t\t\t\u002F\u002F Return as a string\n-\t\t\treturn $this->buffer;\n-\t\tdefault:\n-\t\t\t$this->Error('Incorrect output destination: '.$dest);\n-\t}\n-\treturn '';\n-}\n-\n-\u002F*******************************************************************************\n-*                              Protected methods                               *\n-*******************************************************************************\u002F\n-\n-protected function _checkoutput()\n-{\n-\tif(PHP_SAPI!='cli')\n-\t{\n-\t\tif(headers_sent($file,$line))\n-\t\t\t$this->Error(\"Some data has already been output, can't send PDF file (output started at $file:$line)\");\n-\t}\n-\tif(ob_get_length())\n-\t{\n-\t\t\u002F\u002F The output buffer is not empty\n-\t\tif(preg_match('\u002F^(\\xEF\\xBB\\xBF)?\\s*$\u002F',ob_get_contents()))\n-\t\t{\n-\t\t\t\u002F\u002F It contains only a UTF-8 BOM and\u002For whitespace, let's clean it\n-\t\t\tob_clean();\n-\t\t}\n-\t\telse\n-\t\t\t$this->Error(\"Some data has already been output, can't send PDF file\");\n-\t}\n-}\n-\n-protected function _getpagesize($size)\n-{\n-\tif(is_string($size))\n-\t{\n-\t\t$size = strtolower($size);\n-\t\tif(!isset($this->StdPageSizes[$size]))\n-\t\t\t$this->Error('Unknown page size: '.$size);\n-\t\t$a = $this->StdPageSizes[$size];\n-\t\treturn array($a[0]\u002F$this->k, $a[1]\u002F$this->k);\n-\t}\n-\telse\n-\t{\n-\t\tif($size[0]>$size[1])\n-\t\t\treturn array($size[1], $size[0]);\n-\t\telse\n-\t\t\treturn $size;\n-\t}\n-}\n-\n-protected function _beginpage($orientation, $size, $rotation)\n-{\n-\t$this->page++;\n-\t$this->pages[$this->page] = '';\n-\t$this->PageLinks[$this->page] = array();\n-\t$this->state = 2;\n-\t$this->x = $this->lMargin;\n-\t$this->y = $this->tMargin;\n-\t$this->FontFamily = '';\n-\t\u002F\u002F Check page size and orientation\n-\tif($orientation=='')\n-\t\t$orientation = $this->DefOrientation;\n-\telse\n-\t\t$orientation = strtoupper($orientation[0]);\n-\tif($size=='')\n-\t\t$size = $this->DefPageSize;\n-\telse\n-\t\t$size = $this->_getpagesize($size);\n-\tif($orientation!=$this->CurOrientation || $size[0]!=$this->CurPageSize[0] || $size[1]!=$this->CurPageSize[1])\n-\t{\n-\t\t\u002F\u002F New size or orientation\n-\t\tif($orientation=='P')\n-\t\t{\n-\t\t\t$this->w = $size[0];\n-\t\t\t$this->h = $size[1];\n-\t\t}\n-\t\telse\n-\t\t{\n-\t\t\t$this->w = $size[1];\n-\t\t\t$this->h = $size[0];\n-\t\t}\n-\t\t$this->wPt = $this->w*$this->k;\n-\t\t$this->hPt = $this->h*$this->k;\n-\t\t$this->PageBreakTrigger = $this->h-$this->bMargin;\n-\t\t$this->CurOrientation = $orientation;\n-\t\t$this->CurPageSize = $size;\n-\t}\n-\tif($orientation!=$this->DefOrientation || $size[0]!=$this->DefPageSize[0] || $size[1]!=$this->DefPageSize[1])\n-\t\t$this->PageInfo[$this->page]['size'] = array($this->wPt, $this->hPt);\n-\tif($rotation!=0)\n-\t{\n-\t\tif($rotation%90!=0)\n-\t\t\t$this->Error('Incorrect rotation value: '.$rotation);\n-\t\t$this->PageInfo[$this->page]['rotation'] = $rotation;\n-\t}\n-\t$this->CurRotation = $rotation;\n-}\n-\n-protected function _endpage()\n-{\n-\t$this->state = 1;\n-}\n-\n-protected function _loadfont($font)\n-{\n-\t\u002F\u002F Load a font definition file from the font directory\n-\tif(strpos($font,'\u002F')!==false || strpos($font,\"\\\\\")!==false)\n-\t\t$this->Error('Incorrect font definition file name: '.$font);\n-\tinclude($this->fontpath.$font);\n-\tif(!isset($name))\n-\t\t$this->Error('Could not include font definition file');\n-\tif(isset($enc))\n-\t\t$enc = strtolower($enc);\n-\tif(!isset($subsetted))\n-\t\t$subsetted = false;\n-\treturn get_defined_vars();\n-}\n-\n-protected function _isascii($s)\n-{\n-\t\u002F\u002F Test if string is ASCII\n-\t$nb = strlen($s);\n-\tfor($i=0;$i\u003C$nb;$i++)\n-\t{\n-\t\tif(ord($s[$i])>127)\n-\t\t\treturn false;\n-\t}\n-\treturn true;\n-}\n-\n-protected function _httpencode($param, $value, $isUTF8)\n-{\n-\t\u002F\u002F Encode HTTP header field parameter\n-\tif($this->_isascii($value))\n-\t\treturn $param.'=\"'.$value.'\"';\n-\tif(!$isUTF8)\n-\t\t$value = $this->_UTF8encode($value);\n-\treturn $param.\"*=UTF-8''\".rawurlencode($value);\n-}\n-\n-protected function _UTF8encode($s)\n-{\n-\t\u002F\u002F Convert ISO-8859-1 to UTF-8\n-\tif($this->iconv)\n-\t\treturn iconv('ISO-8859-1','UTF-8',$s);\n-\t$res = '';\n-\t$nb = strlen($s);\n-\tfor($i=0;$i\u003C$nb;$i++)\n-\t{\n-\t\t$c = $s[$i];\n-\t\t$v = ord($c);\n-\t\tif($v>=128)\n-\t\t{\n-\t\t\t$res .= chr(0xC0 | ($v >> 6));\n-\t\t\t$res .= chr(0x80 | ($v & 0x3F));\n-\t\t}\n-\t\telse\n-\t\t\t$res .= $c;\n-\t}\n-\treturn $res;\n-}\n-\n-protected function _UTF8toUTF16($s)\n-{\n-\t\u002F\u002F Convert UTF-8 to UTF-16BE with BOM\n-\t$res = \"\\xFE\\xFF\";\n-\tif($this->iconv)\n-\t\treturn $res.iconv('UTF-8','UTF-16BE',$s);\n-\t$nb = strlen($s);\n-\t$i = 0;\n-\twhile($i\u003C$nb)\n-\t{\n-\t\t$c1 = ord($s[$i++]);\n-\t\tif($c1>=224)\n-\t\t{\n-\t\t\t\u002F\u002F 3-byte character\n-\t\t\t$c2 = ord($s[$i++]);\n-\t\t\t$c3 = ord($s[$i++]);\n-\t\t\t$res .= chr((($c1 & 0x0F)\u003C\u003C4) + (($c2 & 0x3C)>>2));\n-\t\t\t$res .= chr((($c2 & 0x03)\u003C\u003C6) + ($c3 & 0x3F));\n-\t\t}\n-\t\telseif($c1>=192)\n-\t\t{\n-\t\t\t\u002F\u002F 2-byte character\n-\t\t\t$c2 = ord($s[$i++]);\n-\t\t\t$res .= chr(($c1 & 0x1C)>>2);\n-\t\t\t$res .= chr((($c1 & 0x03)\u003C\u003C6) + ($c2 & 0x3F));\n-\t\t}\n-\t\telse\n-\t\t{\n-\t\t\t\u002F\u002F Single-byte character\n-\t\t\t$res .= \"\\0\".chr($c1);\n-\t\t}\n-\t}\n-\treturn $res;\n-}\n-\n-protected function _escape($s)\n-{\n-\t\u002F\u002F Escape special characters\n-\tif(strpos($s,'(')!==false || strpos($s,')')!==false || strpos($s,'\\\\')!==false || strpos($s,\"\\r\")!==false)\n-\t\treturn str_replace(array('\\\\','(',')',\"\\r\"), array('\\\\\\\\','\\\\(','\\\\)','\\\\r'), $s);\n-\telse\n-\t\treturn $s;\n-}\n-\n-protected function _textstring($s)\n-{\n-\t\u002F\u002F Format a text string\n-\tif(!$this->_isascii($s))\n-\t\t$s = $this->_UTF8toUTF16($s);\n-\treturn '('.$this->_escape($s).')';\n-}\n-\n-protected function _dounderline($x, $y, $txt)\n-{\n-\t\u002F\u002F Underline text\n-\t$up = $this->CurrentFont['up'];\n-\t$ut = $this->CurrentFont['ut'];\n-\t$w = $this->GetStringWidth($txt)+$this->ws*substr_count($txt,' ');\n-\treturn sprintf('%.2F %.2F %.2F %.2F re f',$x*$this->k,($this->h-($y-$up\u002F1000*$this->FontSize))*$this->k,$w*$this->k,-$ut\u002F1000*$this->FontSizePt);\n-}\n-\n-protected function _parsejpg($file)\n-{\n-\t\u002F\u002F Extract info from a JPEG file\n-\t$a = getimagesize($file);\n-\tif(!$a)\n-\t\t$this->Error('Missing or incorrect image file: '.$file);\n-\tif($a[2]!=2)\n-\t\t$this->Error('Not a JPEG file: '.$file);\n-\tif(!isset($a['channels']) || $a['channels']==3)\n-\t\t$colspace = 'DeviceRGB';\n-\telseif($a['channels']==4)\n-\t\t$colspace = 'DeviceCMYK';\n-\telse\n-\t\t$colspace = 'DeviceGray';\n-\t$bpc = isset($a['bits']) ? $a['bits'] : 8;\n-\t$data = file_get_contents($file);\n-\treturn array('w'=>$a[0], 'h'=>$a[1], 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'DCTDecode', 'data'=>$data);\n-}\n-\n-protected function _parsepng($file)\n-{\n-\t\u002F\u002F Extract info from a PNG file\n-\t$f = fopen($file,'rb');\n-\tif(!$f)\n-\t\t$this->Error('Can\\'t open image file: '.$file);\n-\t$info = $this->_parsepngstream($f,$file);\n-\tfclose($f);\n-\treturn $info;\n-}\n-\n-protected function _parsepngstream($f, $file)\n-{\n-\t\u002F\u002F Check signature\n-\tif($this->_readstream($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10))\n-\t\t$this->Error('Not a PNG file: '.$file);\n-\n-\t\u002F\u002F Read header chunk\n-\t$this->_readstream($f,4);\n-\tif($this->_readstream($f,4)!='IHDR')\n-\t\t$this->Error('Incorrect PNG file: '.$file);\n-\t$w = $this->_readint($f);\n-\t$h = $this->_readint($f);\n-\t$bpc = ord($this->_readstream($f,1));\n-\tif($bpc>8)\n-\t\t$this->Error('16-bit depth not supported: '.$file);\n-\t$ct = ord($this->_readstream($f,1));\n-\tif($ct==0 || $ct==4)\n-\t\t$colspace = 'DeviceGray';\n-\telseif($ct==2 || $ct==6)\n-\t\t$colspace = 'DeviceRGB';\n-\telseif($ct==3)\n-\t\t$colspace = 'Indexed';\n-\telse\n-\t\t$this->Error('Unknown color type: '.$file);\n-\tif(ord($this->_readstream($f,1))!=0)\n-\t\t$this->Error('Unknown compression method: '.$file);\n-\tif(ord($this->_readstream($f,1))!=0)\n-\t\t$this->Error('Unknown filter method: '.$file);\n-\tif(ord($this->_readstream($f,1))!=0)\n-\t\t$this->Error('Interlacing not supported: '.$file);\n-\t$this->_readstream($f,4);\n-\t$dp = '\u002FPredictor 15 \u002FColors '.($colspace=='DeviceRGB' ? 3 : 1).' \u002FBitsPerComponent '.$bpc.' \u002FColumns '.$w;\n-\n-\t\u002F\u002F Scan chunks looking for palette, transparency and image data\n-\t$pal = '';\n-\t$trns = '';\n-\t$data = '';\n-\tdo\n-\t{\n-\t\t$n = $this->_readint($f);\n-\t\t$type = $this->_readstream($f,4);\n-\t\tif($type=='PLTE')\n-\t\t{\n-\t\t\t\u002F\u002F Read palette\n-\t\t\t$pal = $this->_readstream($f,$n);\n-\t\t\t$this->_readstream($f,4);\n-\t\t}\n-\t\telseif($type=='tRNS')\n-\t\t{\n-\t\t\t\u002F\u002F Read transparency info\n-\t\t\t$t = $this->_readstream($f,$n);\n-\t\t\tif($ct==0)\n-\t\t\t\t$trns = array(ord(substr($t,1,1)));\n-\t\t\telseif($ct==2)\n-\t\t\t\t$trns = array(ord(substr($t,1,1)), ord(substr($t,3,1)), ord(substr($t,5,1)));\n-\t\t\telse\n-\t\t\t{\n-\t\t\t\t$pos = strpos($t,chr(0));\n-\t\t\t\tif($pos!==false)\n-\t\t\t\t\t$trns = array($pos);\n-\t\t\t}\n-\t\t\t$this->_readstream($f,4);\n-\t\t}\n-\t\telseif($type=='IDAT')\n-\t\t{\n-\t\t\t\u002F\u002F Read image data block\n-\t\t\t$data .= $this->_readstream($f,$n);\n-\t\t\t$this->_readstream($f,4);\n-\t\t}\n-\t\telseif($type=='IEND')\n-\t\t\tbreak;\n-\t\telse\n-\t\t\t$this->_readstream($f,$n+4);\n-\t}\n-\twhile($n);\n-\n-\tif($colspace=='Indexed' && empty($pal))\n-\t\t$this->Error('Missing palette in '.$file);\n-\t$info = array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'dp'=>$dp, 'pal'=>$pal, 'trns'=>$trns);\n-\tif($ct>=4)\n-\t{\n-\t\t\u002F\u002F Extract alpha channel\n-\t\tif(!function_exists('gzuncompress'))\n-\t\t\t$this->Error('Zlib not available, can\\'t handle alpha channel: '.$file);\n-\t\t$data = gzuncompress($data);\n-\t\t$color = '';\n-\t\t$alpha = '';\n-\t\tif($ct==4)\n-\t\t{\n-\t\t\t\u002F\u002F Gray image\n-\t\t\t$len = 2*$w;\n-\t\t\tfor($i=0;$i\u003C$h;$i++)\n-\t\t\t{\n-\t\t\t\t$pos = (1+$len)*$i;\n-\t\t\t\t$color .= $data[$pos];\n-\t\t\t\t$alpha .= $data[$pos];\n-\t\t\t\t$line = substr($data,$pos+1,$len);\n-\t\t\t\t$color .= preg_replace('\u002F(.).\u002Fs','$1',$line);\n-\t\t\t\t$alpha .= preg_replace('\u002F.(.)\u002Fs','$1',$line);\n-\t\t\t}\n-\t\t}\n-\t\telse\n-\t\t{\n-\t\t\t\u002F\u002F RGB image\n-\t\t\t$len = 4*$w;\n-\t\t\tfor($i=0;$i\u003C$h;$i++)\n-\t\t\t{\n-\t\t\t\t$pos = (1+$len)*$i;\n-\t\t\t\t$color .= $data[$pos];\n-\t\t\t\t$alpha .= $data[$pos];\n-\t\t\t\t$line = substr($data,$pos+1,$len);\n-\t\t\t\t$color .= preg_replace('\u002F(.{3}).\u002Fs','$1',$line);\n-\t\t\t\t$alpha .= preg_replace('\u002F.{3}(.)\u002Fs','$1',$line);\n-\t\t\t}\n-\t\t}\n-\t\tunset($data);\n-\t\t$data = gzcompress($color);\n-\t\t$info['smask'] = gzcompress($alpha);\n-\t\t$this->WithAlpha = true;\n-\t\tif($this->PDFVersion\u003C'1.4')\n-\t\t\t$this->PDFVersion = '1.4';\n-\t}\n-\t$info['data'] = $data;\n-\treturn $info;\n-}\n-\n-protected function _readstream($f, $n)\n-{\n-\t\u002F\u002F Read n bytes from stream\n-\t$res = '';\n-\twhile($n>0 && !feof($f))\n-\t{\n-\t\t$s = fread($f,$n);\n-\t\tif($s===false)\n-\t\t\t$this->Error('Error while reading stream');\n-\t\t$n -= strlen($s);\n-\t\t$res .= $s;\n-\t}\n-\tif($n>0)\n-\t\t$this->Error('Unexpected end of stream');\n-\treturn $res;\n-}\n-\n-protected function _readint($f)\n-{\n-\t\u002F\u002F Read a 4-byte integer from stream\n-\t$a = unpack('Ni',$this->_readstream($f,4));\n-\treturn $a['i'];\n-}\n-\n-protected function _parsegif($file)\n-{\n-\t\u002F\u002F Extract info from a GIF file (via PNG conversion)\n-\tif(!function_exists('imagepng'))\n-\t\t$this->Error('GD extension is required for GIF support');\n-\tif(!function_exists('imagecreatefromgif'))\n-\t\t$this->Error('GD has no GIF read support');\n-\t$im = imagecreatefromgif($file);\n-\tif(!$im)\n-\t\t$this->Error('Missing or incorrect image file: '.$file);\n-\timageinterlace($im,0);\n-\tob_start();\n-\timagepng($im);\n-\t$data = ob_get_clean();\n-\timagedestroy($im);\n-\t$f = fopen('php:\u002F\u002Ftemp','rb+');\n-\tif(!$f)\n-\t\t$this->Error('Unable to create memory stream');\n-\tfwrite($f,$data);\n-\trewind($f);\n-\t$info = $this->_parsepngstream($f,$file);\n-\tfclose($f);\n-\treturn $info;\n-}\n-\n-protected function _out($s)\n-{\n-\t\u002F\u002F Add a line to the current page\n-\tif($this->state==2)\n-\t\t$this->pages[$this->page] .= $s.\"\\n\";\n-\telseif($this->state==0)\n-\t\t$this->Error('No page has been added yet');\n-\telseif($this->state==1)\n-\t\t$this->Error('Invalid call');\n-\telseif($this->state==3)\n-\t\t$this->Error('The document is closed');\n-}\n-\n-protected function _put($s)\n-{\n-\t\u002F\u002F Add a line to the document\n-\t$this->buffer .= $s.\"\\n\";\n-}\n-\n-protected function _getoffset()\n-{\n-\treturn strlen($this->buffer);\n-}\n-\n-protected function _newobj($n=null)\n-{\n-\t\u002F\u002F Begin a new object\n-\tif($n===null)\n-\t\t$n = ++$this->n;\n-\t$this->offsets[$n] = $this->_getoffset();\n-\t$this->_put($n.' 0 obj');\n-}\n-\n-protected function _putstream($data)\n-{\n-\t$this->_put('stream');\n-\t$this->_put($data);\n-\t$this->_put('endstream');\n-}\n-\n-protected function _putstreamobject($data)\n-{\n-\tif($this->compress)\n-\t{\n-\t\t$entries = '\u002FFilter \u002FFlateDecode ';\n-\t\t$data = gzcompress($data);\n-\t}\n-\telse\n-\t\t$entries = '';\n-\t$entries .= '\u002FLength '.strlen($data);\n-\t$this->_newobj();\n-\t$this->_put('\u003C\u003C'.$entries.'>>');\n-\t$this->_putstream($data);\n-\t$this->_put('endobj');\n-}\n-\n-protected function _putlinks($n)\n-{\n-\tforeach($this->PageLinks[$n] as $pl)\n-\t{\n-\t\t$this->_newobj();\n-\t\t$rect = sprintf('%.2F %.2F %.2F %.2F',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]);\n-\t\t$s = '\u003C\u003C\u002FType \u002FAnnot \u002FSubtype \u002FLink \u002FRect ['.$rect.'] \u002FBorder [0 0 0] ';\n-\t\tif(is_string($pl[4]))\n-\t\t\t$s .= '\u002FA \u003C\u003C\u002FS \u002FURI \u002FURI '.$this->_textstring($pl[4]).'>>>>';\n-\t\telse\n-\t\t{\n-\t\t\t$l = $this->links[$pl[4]];\n-\t\t\tif(isset($this->PageInfo[$l[0]]['size']))\n-\t\t\t\t$h = $this->PageInfo[$l[0]]['size'][1];\n-\t\t\telse\n-\t\t\t\t$h = ($this->DefOrientation=='P') ? $this->DefPageSize[1]*$this->k : $this->DefPageSize[0]*$this->k;\n-\t\t\t$s .= sprintf('\u002FDest [%d 0 R \u002FXYZ 0 %.2F null]>>',$this->PageInfo[$l[0]]['n'],$h-$l[1]*$this->k);\n-\t\t}\n-\t\t$this->_put($s);\n-\t\t$this->_put('endobj');\n-\t}\n-}\n-\n-protected function _putpage($n)\n-{\n-\t$this->_newobj();\n-\t$this->_put('\u003C\u003C\u002FType \u002FPage');\n-\t$this->_put('\u002FParent 1 0 R');\n-\tif(isset($this->PageInfo[$n]['size']))\n-\t\t$this->_put(sprintf('\u002FMediaBox [0 0 %.2F %.2F]',$this->PageInfo[$n]['size'][0],$this->PageInfo[$n]['size'][1]));\n-\tif(isset($this->PageInfo[$n]['rotation']))\n-\t\t$this->_put('\u002FRotate '.$this->PageInfo[$n]['rotation']);\n-\t$this->_put('\u002FResources 2 0 R');\n-\tif(!empty($this->PageLinks[$n]))\n-\t{\n-\t\t$s = '\u002FAnnots [';\n-\t\tforeach($this->PageLinks[$n] as $pl)\n-\t\t\t$s .= $pl[5].' 0 R ';\n-\t\t$s .= ']';\n-\t\t$this->_put($s);\n-\t}\n-\tif($this->WithAlpha)\n-\t\t$this->_put('\u002FGroup \u003C\u003C\u002FType \u002FGroup \u002FS \u002FTransparency \u002FCS \u002FDeviceRGB>>');\n-\t$this->_put('\u002FContents '.($this->n+1).' 0 R>>');\n-\t$this->_put('endobj');\n-\t\u002F\u002F Page content\n-\tif(!empty($this->AliasNbPages))\n-\t\t$this->pages[$n] = str_replace($this->AliasNbPages,$this->page,$this->pages[$n]);\n-\t$this->_putstreamobject($this->pages[$n]);\n-\t\u002F\u002F Link annotations\n-\t$this->_putlinks($n);\n-}\n-\n-protected function _putpages()\n-{\n-\t$nb = $this->page;\n-\t$n = $this->n;\n-\tfor($i=1;$i\u003C=$nb;$i++)\n-\t{\n-\t\t$this->PageInfo[$i]['n'] = ++$n;\n-\t\t$n++;\n-\t\tforeach($this->PageLinks[$i] as &$pl)\n-\t\t\t$pl[5] = ++$n;\n-\t\tunset($pl);\n-\t}\n-\tfor($i=1;$i\u003C=$nb;$i++)\n-\t\t$this->_putpage($i);\n-\t\u002F\u002F Pages root\n-\t$this->_newobj(1);\n-\t$this->_put('\u003C\u003C\u002FType \u002FPages');\n-\t$kids = '\u002FKids [';\n-\tfor($i=1;$i\u003C=$nb;$i++)\n-\t\t$kids .= $this->PageInfo[$i]['n'].' 0 R ';\n-\t$kids .= ']';\n-\t$this->_put($kids);\n-\t$this->_put('\u002FCount '.$nb);\n-\tif($this->DefOrientation=='P')\n-\t{\n-\t\t$w = $this->DefPageSize[0];\n-\t\t$h = $this->DefPageSize[1];\n-\t}\n-\telse\n-\t{\n-\t\t$w = $this->DefPageSize[1];\n-\t\t$h = $this->DefPageSize[0];\n-\t}\n-\t$this->_put(sprintf('\u002FMediaBox [0 0 %.2F %.2F]',$w*$this->k,$h*$this->k));\n-\t$this->_put('>>');\n-\t$this->_put('endobj');\n-}\n-\n-protected function _putfonts()\n-{\n-\tforeach($this->FontFiles as $file=>$info)\n-\t{\n-\t\t\u002F\u002F Font file embedding\n-\t\t$this->_newobj();\n-\t\t$this->FontFiles[$file]['n'] = $this->n;\n-\t\t$font = file_get_contents($this->fontpath.$file,true);\n-\t\tif(!$font)\n-\t\t\t$this->Error('Font file not found: '.$file);\n-\t\t$compressed = (substr($file,-2)=='.z');\n-\t\tif(!$compressed && isset($info['length2']))\n-\t\t\t$font = substr($font,6,$info['length1']).substr($font,6+$info['length1']+6,$info['length2']);\n-\t\t$this->_put('\u003C\u003C\u002FLength '.strlen($font));\n-\t\tif($compressed)\n-\t\t\t$this->_put('\u002FFilter \u002FFlateDecode');\n-\t\t$this->_put('\u002FLength1 '.$info['length1']);\n-\t\tif(isset($info['length2']))\n-\t\t\t$this->_put('\u002FLength2 '.$info['length2'].' \u002FLength3 0');\n-\t\t$this->_put('>>');\n-\t\t$this->_putstream($font);\n-\t\t$this->_put('endobj');\n-\t}\n-\tforeach($this->fonts as $k=>$font)\n-\t{\n-\t\t\u002F\u002F Encoding\n-\t\tif(isset($font['diff']))\n-\t\t{\n-\t\t\tif(!isset($this->encodings[$font['enc']]))\n-\t\t\t{\n-\t\t\t\t$this->_newobj();\n-\t\t\t\t$this->_put('\u003C\u003C\u002FType \u002FEncoding \u002FBaseEncoding \u002FWinAnsiEncoding \u002FDifferences ['.$font['diff'].']>>');\n-\t\t\t\t$this->_put('endobj');\n-\t\t\t\t$this->encodings[$font['enc']] = $this->n;\n-\t\t\t}\n-\t\t}\n-\t\t\u002F\u002F ToUnicode CMap\n-\t\tif(isset($font['uv']))\n-\t\t{\n-\t\t\tif(isset($font['enc']))\n-\t\t\t\t$cmapkey = $font['enc'];\n-\t\t\telse\n-\t\t\t\t$cmapkey = $font['name'];\n-\t\t\tif(!isset($this->cmaps[$cmapkey]))\n-\t\t\t{\n-\t\t\t\t$cmap = $this->_tounicodecmap($font['uv']);\n-\t\t\t\t$this->_putstreamobject($cmap);\n-\t\t\t\t$this->cmaps[$cmapkey] = $this->n;\n-\t\t\t}\n-\t\t}\n-\t\t\u002F\u002F Font object\n-\t\t$this->fonts[$k]['n'] = $this->n+1;\n-\t\t$type = $font['type'];\n-\t\t$name = $font['name'];\n-\t\tif($font['subsetted'])\n-\t\t\t$name = 'AAAAAA+'.$name;\n-\t\tif($type=='Core')\n-\t\t{\n-\t\t\t\u002F\u002F Core font\n-\t\t\t$this->_newobj();\n-\t\t\t$this->_put('\u003C\u003C\u002FType \u002FFont');\n-\t\t\t$this->_put('\u002FBaseFont \u002F'.$name);\n-\t\t\t$this->_put('\u002FSubtype \u002FType1');\n-\t\t\tif($name!='Symbol' && $name!='ZapfDingbats')\n-\t\t\t\t$this->_put('\u002FEncoding \u002FWinAnsiEncoding');\n-\t\t\tif(isset($font['uv']))\n-\t\t\t\t$this->_put('\u002FToUnicode '.$this->cmaps[$cmapkey].' 0 R');\n-\t\t\t$this->_put('>>');\n-\t\t\t$this->_put('endobj');\n-\t\t}\n-\t\telseif($type=='Type1' || $type=='TrueType')\n-\t\t{\n-\t\t\t\u002F\u002F Additional Type1 or TrueType\u002FOpenType font\n-\t\t\t$this->_newobj();\n-\t\t\t$this->_put('\u003C\u003C\u002FType \u002FFont');\n-\t\t\t$this->_put('\u002FBaseFont \u002F'.$name);\n-\t\t\t$this->_put('\u002FSubtype \u002F'.$type);\n-\t\t\t$this->_put('\u002FFirstChar 32 \u002FLastChar 255');\n-\t\t\t$this->_put('\u002FWidths '.($this->n+1).' 0 R');\n-\t\t\t$this->_put('\u002FFontDescriptor '.($this->n+2).' 0 R');\n-\t\t\tif(isset($font['diff']))\n-\t\t\t\t$this->_put('\u002FEncoding '.$this->encodings[$font['enc']].' 0 R');\n-\t\t\telse\n-\t\t\t\t$this->_put('\u002FEncoding \u002FWinAnsiEncoding');\n-\t\t\tif(isset($font['uv']))\n-\t\t\t\t$this->_put('\u002FToUnicode '.$this->cmaps[$cmapkey].' 0 R');\n-\t\t\t$this->_put('>>');\n-\t\t\t$this->_put('endobj');\n-\t\t\t\u002F\u002F Widths\n-\t\t\t$this->_newobj();\n-\t\t\t$cw = $font['cw'];\n-\t\t\t$s = '[';\n-\t\t\tfor($i=32;$i\u003C=255;$i++)\n-\t\t\t\t$s .= $cw[chr($i)].' ';\n-\t\t\t$this->_put($s.']');\n-\t\t\t$this->_put('endobj');\n-\t\t\t\u002F\u002F Descriptor\n-\t\t\t$this->_newobj();\n-\t\t\t$s = '\u003C\u003C\u002FType \u002FFontDescriptor \u002FFontName \u002F'.$name;\n-\t\t\tforeach($font['desc'] as $k=>$v)\n-\t\t\t\t$s .= ' \u002F'.$k.' '.$v;\n-\t\t\tif(!empty($font['file']))\n-\t\t\t\t$s .= ' \u002FFontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$font['file']]['n'].' 0 R';\n-\t\t\t$this->_put($s.'>>');\n-\t\t\t$this->_put('endobj');\n-\t\t}\n-\t\telse\n-\t\t{\n-\t\t\t\u002F\u002F Allow for additional types\n-\t\t\t$mtd = '_put'.strtolower($type);\n-\t\t\tif(!method_exists($this,$mtd))\n-\t\t\t\t$this->Error('Unsupported font type: '.$type);\n-\t\t\t$this->$mtd($font);\n-\t\t}\n-\t}\n-}\n-\n-protected function _tounicodecmap($uv)\n-{\n-\t$ranges = '';\n-\t$nbr = 0;\n-\t$chars = '';\n-\t$nbc = 0;\n-\tforeach($uv as $c=>$v)\n-\t{\n-\t\tif(is_array($v))\n-\t\t{\n-\t\t\t$ranges .= sprintf(\"\u003C%02X> \u003C%02X> \u003C%04X>\\n\",$c,$c+$v[1]-1,$v[0]);\n-\t\t\t$nbr++;\n-\t\t}\n-\t\telse\n-\t\t{\n-\t\t\t$chars .= sprintf(\"\u003C%02X> \u003C%04X>\\n\",$c,$v);\n-\t\t\t$nbc++;\n-\t\t}\n-\t}\n-\t$s = \"\u002FCIDInit \u002FProcSet findresource begin\\n\";\n-\t$s .= \"12 dict begin\\n\";\n-\t$s .= \"begincmap\\n\";\n-\t$s .= \"\u002FCIDSystemInfo\\n\";\n-\t$s .= \"\u003C\u003C\u002FRegistry (Adobe)\\n\";\n-\t$s .= \"\u002FOrdering (UCS)\\n\";\n-\t$s .= \"\u002FSupplement 0\\n\";\n-\t$s .= \">> def\\n\";\n-\t$s .= \"\u002FCMapName \u002FAdobe-Identity-UCS def\\n\";\n-\t$s .= \"\u002FCMapType 2 def\\n\";\n-\t$s .= \"1 begincodespacerange\\n\";\n-\t$s .= \"\u003C00> \u003CFF>\\n\";\n-\t$s .= \"endcodespacerange\\n\";\n-\tif($nbr>0)\n-\t{\n-\t\t$s .= \"$nbr beginbfrange\\n\";\n-\t\t$s .= $ranges;\n-\t\t$s .= \"endbfrange\\n\";\n-\t}\n-\tif($nbc>0)\n-\t{\n-\t\t$s .= \"$nbc beginbfchar\\n\";\n-\t\t$s .= $chars;\n-\t\t$s .= \"endbfchar\\n\";\n-\t}\n-\t$s .= \"endcmap\\n\";\n-\t$s .= \"CMapName currentdict \u002FCMap defineresource pop\\n\";\n-\t$s .= \"end\\n\";\n-\t$s .= \"end\";\n-\treturn $s;\n-}\n-\n-protected function _putimages()\n-{\n-\tforeach(array_keys($this->images) as $file)\n-\t{\n-\t\t$this->_putimage($this->images[$file]);\n-\t\tunset($this->images[$file]['data']);\n-\t\tunset($this->images[$file]['smask']);\n-\t}\n-}\n-\n-protected function _putimage(&$info)\n-{\n-\t$this->_newobj();\n-\t$info['n'] = $this->n;\n-\t$this->_put('\u003C\u003C\u002FType \u002FXObject');\n-\t$this->_put('\u002FSubtype \u002FImage');\n-\t$this->_put('\u002FWidth '.$info['w']);\n-\t$this->_put('\u002FHeight '.$info['h']);\n-\tif($info['cs']=='Indexed')\n-\t\t$this->_put('\u002FColorSpace [\u002FIndexed \u002FDeviceRGB '.(strlen($info['pal'])\u002F3-1).' '.($this->n+1).' 0 R]');\n-\telse\n-\t{\n-\t\t$this->_put('\u002FColorSpace \u002F'.$info['cs']);\n-\t\tif($info['cs']=='DeviceCMYK')\n-\t\t\t$this->_put('\u002FDecode [1 0 1 0 1 0 1 0]');\n-\t}\n-\t$this->_put('\u002FBitsPerComponent '.$info['bpc']);\n-\tif(isset($info['f']))\n-\t\t$this->_put('\u002FFilter \u002F'.$info['f']);\n-\tif(isset($info['dp']))\n-\t\t$this->_put('\u002FDecodeParms \u003C\u003C'.$info['dp'].'>>');\n-\tif(isset($info['trns']) && is_array($info['trns']))\n-\t{\n-\t\t$trns = '';\n-\t\tfor($i=0;$i\u003Ccount($info['trns']);$i++)\n-\t\t\t$trns .= $info['trns'][$i].' '.$info['trns'][$i].' ';\n-\t\t$this->_put('\u002FMask ['.$trns.']');\n-\t}\n-\tif(isset($info['smask']))\n-\t\t$this->_put('\u002FSMask '.($this->n+1).' 0 R');\n-\t$this->_put('\u002FLength '.strlen($info['data']).'>>');\n-\t$this->_putstream($info['data']);\n-\t$this->_put('endobj');\n-\t\u002F\u002F Soft mask\n-\tif(isset($info['smask']))\n-\t{\n-\t\t$dp = '\u002FPredictor 15 \u002FColors 1 \u002FBitsPerComponent 8 \u002FColumns '.$info['w'];\n-\t\t$smask = array('w'=>$info['w'], 'h'=>$info['h'], 'cs'=>'DeviceGray', 'bpc'=>8, 'f'=>$info['f'], 'dp'=>$dp, 'data'=>$info['smask']);\n-\t\t$this->_putimage($smask);\n-\t}\n-\t\u002F\u002F Palette\n-\tif($info['cs']=='Indexed')\n-\t\t$this->_putstreamobject($info['pal']);\n-}\n-\n-protected function _putxobjectdict()\n-{\n-\tforeach($this->images as $image)\n-\t\t$this->_put('\u002FI'.$image['i'].' '.$image['n'].' 0 R');\n-}\n-\n-protected function _putresourcedict()\n-{\n-\t$this->_put('\u002FProcSet [\u002FPDF \u002FText \u002FImageB \u002FImageC \u002FImageI]');\n-\t$this->_put('\u002FFont \u003C\u003C');\n-\tforeach($this->fonts as $font)\n-\t\t$this->_put('\u002FF'.$font['i'].' '.$font['n'].' 0 R');\n-\t$this->_put('>>');\n-\t$this->_put('\u002FXObject \u003C\u003C');\n-\t$this->_putxobjectdict();\n-\t$this->_put('>>');\n-}\n-\n-protected function _putresources()\n-{\n-\t$this->_putfonts();\n-\t$this->_putimages();\n-\t\u002F\u002F Resource dictionary\n-\t$this->_newobj(2);\n-\t$this->_put('\u003C\u003C');\n-\t$this->_putresourcedict();\n-\t$this->_put('>>');\n-\t$this->_put('endobj');\n-}\n-\n-protected function _putinfo()\n-{\n-\t$date = @date('YmdHisO', $this->CreationDate);\n-\t$this->metadata['CreationDate'] = 'D:'.substr($date,0,-2).\"'\".substr($date,-2).\"'\";\n-\tforeach($this->metadata as $key=>$value)\n-\t\t$this->_put('\u002F'.$key.' '.$this->_textstring($value));\n-}\n-\n-protected function _putcatalog()\n-{\n-\t$n = $this->PageInfo[1]['n'];\n-\t$this->_put('\u002FType \u002FCatalog');\n-\t$this->_put('\u002FPages 1 0 R');\n-\tif($this->ZoomMode=='fullpage')\n-\t\t$this->_put('\u002FOpenAction ['.$n.' 0 R \u002FFit]');\n-\telseif($this->ZoomMode=='fullwidth')\n-\t\t$this->_put('\u002FOpenAction ['.$n.' 0 R \u002FFitH null]');\n-\telseif($this->ZoomMode=='real')\n-\t\t$this->_put('\u002FOpenAction ['.$n.' 0 R \u002FXYZ null null 1]');\n-\telseif(!is_string($this->ZoomMode))\n-\t\t$this->_put('\u002FOpenAction ['.$n.' 0 R \u002FXYZ null null '.sprintf('%.2F',$this->ZoomMode\u002F100).']');\n-\tif($this->LayoutMode=='single')\n-\t\t$this->_put('\u002FPageLayout \u002FSinglePage');\n-\telseif($this->LayoutMode=='continuous')\n-\t\t$this->_put('\u002FPageLayout \u002FOneColumn');\n-\telseif($this->LayoutMode=='two')\n-\t\t$this->_put('\u002FPageLayout \u002FTwoColumnLeft');\n-}\n-\n-protected function _putheader()\n-{\n-\t$this->_put('%PDF-'.$this->PDFVersion);\n-}\n-\n-protected function _puttrailer()\n-{\n-\t$this->_put('\u002FSize '.($this->n+1));\n-\t$this->_put('\u002FRoot '.$this->n.' 0 R');\n-\t$this->_put('\u002FInfo '.($this->n-1).' 0 R');\n-}\n-\n-protected function _enddoc()\n-{\n-\t$this->_putheader();\n-\t$this->_putpages();\n-\t$this->_putresources();\n-\t\u002F\u002F Info\n-\t$this->_newobj();\n-\t$this->_put('\u003C\u003C');\n-\t$this->_putinfo();\n-\t$this->_put('>>');\n-\t$this->_put('endobj');\n-\t\u002F\u002F Catalog\n-\t$this->_newobj();\n-\t$this->_put('\u003C\u003C');\n-\t$this->_putcatalog();\n-\t$this->_put('>>');\n-\t$this->_put('endobj');\n-\t\u002F\u002F Cross-ref\n-\t$offset = $this->_getoffset();\n-\t$this->_put('xref');\n-\t$this->_put('0 '.($this->n+1));\n-\t$this->_put('0000000000 65535 f ');\n-\tfor($i=1;$i\u003C=$this->n;$i++)\n-\t\t$this->_put(sprintf('%010d 00000 n ',$this->offsets[$i]));\n-\t\u002F\u002F Trailer\n-\t$this->_put('trailer');\n-\t$this->_put('\u003C\u003C');\n-\t$this->_puttrailer();\n-\t$this->_put('>>');\n-\t$this->_put('startxref');\n-\t$this->_put($offset);\n-\t$this->_put('%%EOF');\n-\t$this->state = 3;\n-\t$this->CreationDate = time();\n-}\n-}\n-?>\n+\u003C?php\r\n+\u002F*******************************************************************************\r\n+* FPDF                                                                         *\r\n+*                                                                              *\r\n+* Version: 1.85                                                                *\r\n+* Date:    2022-11-10                                                          *\r\n+* Author:  Olivier PLATHEY                                                     *\r\n+*******************************************************************************\u002F\r\n+\r\n+class FPDF\r\n+{\r\n+const VERSION = '1.85';\r\n+protected $page;               \u002F\u002F current page number\r\n+protected $n;                  \u002F\u002F current object number\r\n+protected $offsets;            \u002F\u002F array of object offsets\r\n+protected $buffer;             \u002F\u002F buffer holding in-memory PDF\r\n+protected $pages;              \u002F\u002F array containing pages\r\n+protected $state;              \u002F\u002F current document state\r\n+protected $compress;           \u002F\u002F compression flag\r\n+protected $iconv;              \u002F\u002F whether iconv is available\r\n+protected $k;                  \u002F\u002F scale factor (number of points in user unit)\r\n+protected $DefOrientation;     \u002F\u002F default orientation\r\n+protected $CurOrientation;     \u002F\u002F current orientation\r\n+protected $StdPageSizes;       \u002F\u002F standard page sizes\r\n+protected $DefPageSize;        \u002F\u002F default page size\r\n+protected $CurPageSize;        \u002F\u002F current page size\r\n+protected $CurRotation;        \u002F\u002F current page rotation\r\n+protected $PageInfo;           \u002F\u002F page-related data\r\n+protected $wPt, $hPt;          \u002F\u002F dimensions of current page in points\r\n+protected $w, $h;              \u002F\u002F dimensions of current page in user unit\r\n+protected $lMargin;            \u002F\u002F left margin\r\n+protected $tMargin;            \u002F\u002F top margin\r\n+protected $rMargin;            \u002F\u002F right margin\r\n+protected $bMargin;            \u002F\u002F page break margin\r\n+protected $cMargin;            \u002F\u002F cell margin\r\n+protected $x, $y;              \u002F\u002F current position in user unit\r\n+protected $lasth;              \u002F\u002F height of last printed cell\r\n+protected $LineWidth;          \u002F\u002F line width in user unit\r\n+protected $fontpath;           \u002F\u002F path containing fonts\r\n+protected $CoreFonts;          \u002F\u002F array of core font names\r\n+protected $fonts;              \u002F\u002F array of used fonts\r\n+protected $FontFiles;          \u002F\u002F array of font files\r\n+protected $encodings;          \u002F\u002F array of encodings\r\n+protected $cmaps;              \u002F\u002F array of ToUnicode CMaps\r\n+protected $FontFamily;         \u002F\u002F current font family\r\n+protected $FontStyle;          \u002F\u002F current font style\r\n+protected $underline;          \u002F\u002F underlining flag\r\n+protected $CurrentFont;        \u002F\u002F current font info\r\n+protected $FontSizePt;         \u002F\u002F current font size in points\r\n+protected $FontSize;           \u002F\u002F current font size in user unit\r\n+protected $DrawColor;          \u002F\u002F commands for drawing color\r\n+protected $FillColor;          \u002F\u002F commands for filling color\r\n+protected $TextColor;          \u002F\u002F commands for text color\r\n+protected $ColorFlag;          \u002F\u002F indicates whether fill and text colors are different\r\n+protected $WithAlpha;          \u002F\u002F indicates whether alpha channel is used\r\n+protected $ws;                 \u002F\u002F word spacing\r\n+protected $images;             \u002F\u002F array of used images\r\n+protected $PageLinks;          \u002F\u002F array of links in pages\r\n+protected $links;              \u002F\u002F array of internal links\r\n+protected $AutoPageBreak;      \u002F\u002F automatic page breaking\r\n+protected $PageBreakTrigger;   \u002F\u002F threshold used to trigger page breaks\r\n+protected $InHeader;           \u002F\u002F flag set when processing header\r\n+protected $InFooter;           \u002F\u002F flag set when processing footer\r\n+protected $AliasNbPages;       \u002F\u002F alias for total number of pages\r\n+protected $ZoomMode;           \u002F\u002F zoom display mode\r\n+protected $LayoutMode;         \u002F\u002F layout display mode\r\n+protected $metadata;           \u002F\u002F document properties\r\n+protected $CreationDate;       \u002F\u002F document creation date\r\n+protected $PDFVersion;         \u002F\u002F PDF version number\r\n+\r\n+\u002F*******************************************************************************\r\n+*                               Public methods                                 *\r\n+*******************************************************************************\u002F\r\n+\r\n+function __construct($orientation='P', $unit='mm', $size='A4')\r\n+{\r\n+\t\u002F\u002F Initialization of properties\r\n+\t$this->state = 0;\r\n+\t$this->page = 0;\r\n+\t$this->n = 2;\r\n+\t$this->buffer = '';\r\n+\t$this->pages = array();\r\n+\t$this->PageInfo = array();\r\n+\t$this->fonts = array();\r\n+\t$this->FontFiles = array();\r\n+\t$this->encodings = array();\r\n+\t$this->cmaps = array();\r\n+\t$this->images = array();\r\n+\t$this->links = array();\r\n+\t$this->InHeader = false;\r\n+\t$this->InFooter = false;\r\n+\t$this->lasth = 0;\r\n+\t$this->FontFamily = '';\r\n+\t$this->FontStyle = '';\r\n+\t$this->FontSizePt = 12;\r\n+\t$this->underline = false;\r\n+\t$this->DrawColor = '0 G';\r\n+\t$this->FillColor = '0 g';\r\n+\t$this->TextColor = '0 g';\r\n+\t$this->ColorFlag = false;\r\n+\t$this->WithAlpha = false;\r\n+\t$this->ws = 0;\r\n+\t$this->iconv = function_exists('iconv');\r\n+\t\u002F\u002F Font path\r\n+\tif(defined('FPDF_FONTPATH'))\r\n+\t{\r\n+\t\t$this->fontpath = FPDF_FONTPATH;\r\n+\t\tif(substr($this->fontpath,-1)!='\u002F' && substr($this->fontpath,-1)!='\\\\')\r\n+\t\t\t$this->fontpath .= '\u002F';\r\n+\t}\r\n+\telseif(is_dir(dirname(__FILE__).'\u002Ffont'))\r\n+\t\t$this->fontpath = dirname(__FILE__).'\u002Ffont\u002F';\r\n+\telse\r\n+\t\t$this->fontpath = '';\r\n+\t\u002F\u002F Core fonts\r\n+\t$this->CoreFonts = array('courier', 'helvetica', 'times', 'symbol', 'zapfdingbats');\r\n+\t\u002F\u002F Scale factor\r\n+\tif($unit=='pt')\r\n+\t\t$this->k = 1;\r\n+\telseif($unit=='mm')\r\n+\t\t$this->k = 72\u002F25.4;\r\n+\telseif($unit=='cm')\r\n+\t\t$this->k = 72\u002F2.54;\r\n+\telseif($unit=='in')\r\n+\t\t$this->k = 72;\r\n+\telse\r\n+\t\t$this->Error('Incorrect unit: '.$unit);\r\n+\t\u002F\u002F Page sizes\r\n+\t$this->StdPageSizes = array('a3'=>array(841.89,1190.55), 'a4'=>array(595.28,841.89), 'a5'=>array(420.94,595.28),\r\n+\t\t'letter'=>array(612,792), 'legal'=>array(612,1008));\r\n+\t$size = $this->_getpagesize($size);\r\n+\t$this->DefPageSize = $size;\r\n+\t$this->CurPageSize = $size;\r\n+\t\u002F\u002F Page orientation\r\n+\t$orientation = strtolower($orientation);\r\n+\tif($orientation=='p' || $orientation=='portrait')\r\n+\t{\r\n+\t\t$this->DefOrientation = 'P';\r\n+\t\t$this->w = $size[0];\r\n+\t\t$this->h = $size[1];\r\n+\t}\r\n+\telseif($orientation=='l' || $orientation=='landscape')\r\n+\t{\r\n+\t\t$this->DefOrientation = 'L';\r\n+\t\t$this->w = $size[1];\r\n+\t\t$this->h = $size[0];\r\n+\t}\r\n+\telse\r\n+\t\t$this->Error('Incorrect orientation: '.$orientation);\r\n+\t$this->CurOrientation = $this->DefOrientation;\r\n+\t$this->wPt = $this->w*$this->k;\r\n+\t$this->hPt = $this->h*$this->k;\r\n+\t\u002F\u002F Page rotation\r\n+\t$this->CurRotation = 0;\r\n+\t\u002F\u002F Page margins (1 cm)\r\n+\t$margin = 28.35\u002F$this->k;\r\n+\t$this->SetMargins($margin,$margin);\r\n+\t\u002F\u002F Interior cell margin (1 mm)\r\n+\t$this->cMargin = $margin\u002F10;\r\n+\t\u002F\u002F Line width (0.2 mm)\r\n+\t$this->LineWidth = .567\u002F$this->k;\r\n+\t\u002F\u002F Automatic page break\r\n+\t$this->SetAutoPageBreak(true,2*$margin);\r\n+\t\u002F\u002F Default display mode\r\n+\t$this->SetDisplayMode('default');\r\n+\t\u002F\u002F Enable compression\r\n+\t$this->SetCompression(true);\r\n+\t\u002F\u002F Metadata\r\n+\t$this->metadata = array('Producer'=>'FPDF '.self::VERSION);\r\n+\t\u002F\u002F Set default PDF version number\r\n+\t$this->PDFVersion = '1.3';\r\n+}\r\n+\r\n+function SetMargins($left, $top, $right=null)\r\n+{\r\n+\t\u002F\u002F Set left, top and right margins\r\n+\t$this->lMargin = $left;\r\n+\t$this->tMargin = $top;\r\n+\tif($right===null)\r\n+\t\t$right = $left;\r\n+\t$this->rMargin = $right;\r\n+}\r\n+\r\n+function SetLeftMargin($margin)\r\n+{\r\n+\t\u002F\u002F Set left margin\r\n+\t$this->lMargin = $margin;\r\n+\tif($this->page>0 && $this->x\u003C$margin)\r\n+\t\t$this->x = $margin;\r\n+}\r\n+\r\n+function SetTopMargin($margin)\r\n+{\r\n+\t\u002F\u002F Set top margin\r\n+\t$this->tMargin = $margin;\r\n+}\r\n+\r\n+function SetRightMargin($margin)\r\n+{\r\n+\t\u002F\u002F Set right margin\r\n+\t$this->rMargin = $margin;\r\n+}\r\n+\r\n+function SetAutoPageBreak($auto, $margin=0)\r\n+{\r\n+\t\u002F\u002F Set auto page break mode and triggering margin\r\n+\t$this->AutoPageBreak = $auto;\r\n+\t$this->bMargin = $margin;\r\n+\t$this->PageBreakTrigger = $this->h-$margin;\r\n+}\r\n+\r\n+function SetDisplayMode($zoom, $layout='default')\r\n+{\r\n+\t\u002F\u002F Set display mode in viewer\r\n+\tif($zoom=='fullpage' || $zoom=='fullwidth' || $zoom=='real' || $zoom=='default' || !is_string($zoom))\r\n+\t\t$this->ZoomMode = $zoom;\r\n+\telse\r\n+\t\t$this->Error('Incorrect zoom display mode: '.$zoom);\r\n+\tif($layout=='single' || $layout=='continuous' || $layout=='two' || $layout=='default')\r\n+\t\t$this->LayoutMode = $layout;\r\n+\telse\r\n+\t\t$this->Error('Incorrect layout display mode: '.$layout);\r\n+}\r\n+\r\n+function SetCompression($compress)\r\n+{\r\n+\t\u002F\u002F Set page compression\r\n+\tif(function_exists('gzcompress'))\r\n+\t\t$this->compress = $compress;\r\n+\telse\r\n+\t\t$this->compress = false;\r\n+}\r\n+\r\n+function SetTitle($title, $isUTF8=false)\r\n+{\r\n+\t\u002F\u002F Title of document\r\n+\t$this->metadata['Title'] = $isUTF8 ? $title : $this->_UTF8encode($title);\r\n+}\r\n+\r\n+function SetAuthor($author, $isUTF8=false)\r\n+{\r\n+\t\u002F\u002F Author of document\r\n+\t$this->metadata['Author'] = $isUTF8 ? $author : $this->_UTF8encode($author);\r\n+}\r\n+\r\n+function SetSubject($subject, $isUTF8=false)\r\n+{\r\n+\t\u002F\u002F Subject of document\r\n+\t$this->metadata['Subject'] = $isUTF8 ? $subject : $this->_UTF8encode($subject);\r\n+}\r\n+\r\n+function SetKeywords($keywords, $isUTF8=false)\r\n+{\r\n+\t\u002F\u002F Keywords of document\r\n+\t$this->metadata['Keywords'] = $isUTF8 ? $keywords : $this->_UTF8encode($keywords);\r\n+}\r\n+\r\n+function SetCreator($creator, $isUTF8=false)\r\n+{\r\n+\t\u002F\u002F Creator of document\r\n+\t$this->metadata['Creator'] = $isUTF8 ? $creator : $this->_UTF8encode($creator);\r\n+}\r\n+\r\n+function AliasNbPages($alias='{nb}')\r\n+{\r\n+\t\u002F\u002F Define an alias for total number of pages\r\n+\t$this->AliasNbPages = $alias;\r\n+}\r\n+\r\n+function Error($msg)\r\n+{\r\n+\t\u002F\u002F Fatal error\r\n+\tthrow new Exception('FPDF error: '.$msg);\r\n+}\r\n+\r\n+function Close()\r\n+{\r\n+\t\u002F\u002F Terminate document\r\n+\tif($this->state==3)\r\n+\t\treturn;\r\n+\tif($this->page==0)\r\n+\t\t$this->AddPage();\r\n+\t\u002F\u002F Page footer\r\n+\t$this->InFooter = true;\r\n+\t$this->Footer();\r\n+\t$this->InFooter = false;\r\n+\t\u002F\u002F Close page\r\n+\t$this->_endpage();\r\n+\t\u002F\u002F Close document\r\n+\t$this->_enddoc();\r\n+}\r\n+\r\n+function AddPage($orientation='', $size='', $rotation=0)\r\n+{\r\n+\t\u002F\u002F Start a new page\r\n+\tif($this->state==3)\r\n+\t\t$this->Error('The document is closed');\r\n+\t$family = $this->FontFamily;\r\n+\t$style = $this->FontStyle.($this->underline ? 'U' : '');\r\n+\t$fontsize = $this->FontSizePt;\r\n+\t$lw = $this->LineWidth;\r\n+\t$dc = $this->DrawColor;\r\n+\t$fc = $this->FillColor;\r\n+\t$tc = $this->TextColor;\r\n+\t$cf = $this->ColorFlag;\r\n+\tif($this->page>0)\r\n+\t{\r\n+\t\t\u002F\u002F Page footer\r\n+\t\t$this->InFooter = true;\r\n+\t\t$this->Footer();\r\n+\t\t$this->InFooter = false;\r\n+\t\t\u002F\u002F Close page\r\n+\t\t$this->_endpage();\r\n+\t}\r\n+\t\u002F\u002F Start new page\r\n+\t$this->_beginpage($orientation,$size,$rotation);\r\n+\t\u002F\u002F Set line cap style to square\r\n+\t$this->_out('2 J');\r\n+\t\u002F\u002F Set line width\r\n+\t$this->LineWidth = $lw;\r\n+\t$this->_out(sprintf('%.2F w',$lw*$this->k));\r\n+\t\u002F\u002F Set font\r\n+\tif($family)\r\n+\t\t$this->SetFont($family,$style,$fontsize);\r\n+\t\u002F\u002F Set colors\r\n+\t$this->DrawColor = $dc;\r\n+\tif($dc!='0 G')\r\n+\t\t$this->_out($dc);\r\n+\t$this->FillColor = $fc;\r\n+\tif($fc!='0 g')\r\n+\t\t$this->_out($fc);\r\n+\t$this->TextColor = $tc;\r\n+\t$this->ColorFlag = $cf;\r\n+\t\u002F\u002F Page header\r\n+\t$this->InHeader = true;\r\n+\t$this->Header();\r\n+\t$this->InHeader = false;\r\n+\t\u002F\u002F Restore line width\r\n+\tif($this->LineWidth!=$lw)\r\n+\t{\r\n+\t\t$this->LineWidth = $lw;\r\n+\t\t$this->_out(sprintf('%.2F w',$lw*$this->k));\r\n+\t}\r\n+\t\u002F\u002F Restore font\r\n+\tif($family)\r\n+\t\t$this->SetFont($family,$style,$fontsize);\r\n+\t\u002F\u002F Restore colors\r\n+\tif($this->DrawColor!=$dc)\r\n+\t{\r\n+\t\t$this->DrawColor = $dc;\r\n+\t\t$this->_out($dc);\r\n+\t}\r\n+\tif($this->FillColor!=$fc)\r\n+\t{\r\n+\t\t$this->FillColor = $fc;\r\n+\t\t$this->_out($fc);\r\n+\t}\r\n+\t$this->TextColor = $tc;\r\n+\t$this->ColorFlag = $cf;\r\n+}\r\n+\r\n+function Header()\r\n+{\r\n+\t\u002F\u002F To be implemented in your own inherited class\r\n+}\r\n+\r\n+function Footer()\r\n+{\r\n+\t\u002F\u002F To be implemented in your own inherited class\r\n+}\r\n+\r\n+function PageNo()\r\n+{\r\n+\t\u002F\u002F Get current page number\r\n+\treturn $this->page;\r\n+}\r\n+\r\n+function SetDrawColor($r, $g=null, $b=null)\r\n+{\r\n+\t\u002F\u002F Set color for all stroking operations\r\n+\tif(($r==0 && $g==0 && $b==0) || $g===null)\r\n+\t\t$this->DrawColor = sprintf('%.3F G',$r\u002F255);\r\n+\telse\r\n+\t\t$this->DrawColor = sprintf('%.3F %.3F %.3F RG',$r\u002F255,$g\u002F255,$b\u002F255);\r\n+\tif($this->page>0)\r\n+\t\t$this->_out($this->DrawColor);\r\n+}\r\n+\r\n+function SetFillColor($r, $g=null, $b=null)\r\n+{\r\n+\t\u002F\u002F Set color for all filling operations\r\n+\tif(($r==0 && $g==0 && $b==0) || $g===null)\r\n+\t\t$this->FillColor = sprintf('%.3F g',$r\u002F255);\r\n+\telse\r\n+\t\t$this->FillColor = sprintf('%.3F %.3F %.3F rg',$r\u002F255,$g\u002F255,$b\u002F255);\r\n+\t$this->ColorFlag = ($this->FillColor!=$this->TextColor);\r\n+\tif($this->page>0)\r\n+\t\t$this->_out($this->FillColor);\r\n+}\r\n+\r\n+function SetTextColor($r, $g=null, $b=null)\r\n+{\r\n+\t\u002F\u002F Set color for text\r\n+\tif(($r==0 && $g==0 && $b==0) || $g===null)\r\n+\t\t$this->TextColor = sprintf('%.3F g',$r\u002F255);\r\n+\telse\r\n+\t\t$this->TextColor = sprintf('%.3F %.3F %.3F rg',$r\u002F255,$g\u002F255,$b\u002F255);\r\n+\t$this->ColorFlag = ($this->FillColor!=$this->TextColor);\r\n+}\r\n+\r\n+function GetStringWidth($s)\r\n+{\r\n+\t\u002F\u002F Get width of a string in the current font\r\n+\t$cw = $this->CurrentFont['cw'];\r\n+\t$w = 0;\r\n+\t$s = (string)$s;\r\n+\t$l = strlen($s);\r\n+\tfor($i=0;$i\u003C$l;$i++)\r\n+\t\t$w += $cw[$s[$i]];\r\n+\treturn $w*$this->FontSize\u002F1000;\r\n+}\r\n+\r\n+function SetLineWidth($width)\r\n+{\r\n+\t\u002F\u002F Set line width\r\n+\t$this->LineWidth = $width;\r\n+\tif($this->page>0)\r\n+\t\t$this->_out(sprintf('%.2F w',$width*$this->k));\r\n+}\r\n+\r\n+function Line($x1, $y1, $x2, $y2)\r\n+{\r\n+\t\u002F\u002F Draw a line\r\n+\t$this->_out(sprintf('%.2F %.2F m %.2F %.2F l S',$x1*$this->k,($this->h-$y1)*$this->k,$x2*$this->k,($this->h-$y2)*$this->k));\r\n+}\r\n+\r\n+function Rect($x, $y, $w, $h, $style='')\r\n+{\r\n+\t\u002F\u002F Draw a rectangle\r\n+\tif($style=='F')\r\n+\t\t$op = 'f';\r\n+\telseif($style=='FD' || $style=='DF')\r\n+\t\t$op = 'B';\r\n+\telse\r\n+\t\t$op = 'S';\r\n+\t$this->_out(sprintf('%.2F %.2F %.2F %.2F re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op));\r\n+}\r\n+\r\n+function AddFont($family, $style='', $file='')\r\n+{\r\n+\t\u002F\u002F Add a TrueType, OpenType or Type1 font\r\n+\t$family = strtolower($family);\r\n+\tif($file=='')\r\n+\t\t$file = str_replace(' ','',$family).strtolower($style).'.php';\r\n+\t$style = strtoupper($style);\r\n+\tif($style=='IB')\r\n+\t\t$style = 'BI';\r\n+\t$fontkey = $family.$style;\r\n+\tif(isset($this->fonts[$fontkey]))\r\n+\t\treturn;\r\n+\t$info = $this->_loadfont($file);\r\n+\t$info['i'] = count($this->fonts)+1;\r\n+\tif(!empty($info['file']))\r\n+\t{\r\n+\t\t\u002F\u002F Embedded font\r\n+\t\tif($info['type']=='TrueType')\r\n+\t\t\t$this->FontFiles[$info['file']] = array('length1'=>$info['originalsize']);\r\n+\t\telse\r\n+\t\t\t$this->FontFiles[$info['file']] = array('length1'=>$info['size1'], 'length2'=>$info['size2']);\r\n+\t}\r\n+\t$this->fonts[$fontkey] = $info;\r\n+}\r\n+\r\n+function SetFont($family, $style='', $size=0)\r\n+{\r\n+\t\u002F\u002F Select a font; size given in points\r\n+\tif($family=='')\r\n+\t\t$family = $this->FontFamily;\r\n+\telse\r\n+\t\t$family = strtolower($family);\r\n+\t$style = strtoupper($style);\r\n+\tif(strpos($style,'U')!==false)\r\n+\t{\r\n+\t\t$this->underline = true;\r\n+\t\t$style = str_replace('U','',$style);\r\n+\t}\r\n+\telse\r\n+\t\t$this->underline = false;\r\n+\tif($style=='IB')\r\n+\t\t$style = 'BI';\r\n+\tif($size==0)\r\n+\t\t$size = $this->FontSizePt;\r\n+\t\u002F\u002F Test if font is already selected\r\n+\tif($this->FontFamily==$family && $this->FontStyle==$style && $this->FontSizePt==$size)\r\n+\t\treturn;\r\n+\t\u002F\u002F Test if font is already loaded\r\n+\t$fontkey = $family.$style;\r\n+\tif(!isset($this->fonts[$fontkey]))\r\n+\t{\r\n+\t\t\u002F\u002F Test if one of the core fonts\r\n+\t\tif($family=='arial')\r\n+\t\t\t$family = 'helvetica';\r\n+\t\tif(in_array($family,$this->CoreFonts))\r\n+\t\t{\r\n+\t\t\tif($family=='symbol' || $family=='zapfdingbats')\r\n+\t\t\t\t$style = '';\r\n+\t\t\t$fontkey = $family.$style;\r\n+\t\t\tif(!isset($this->fonts[$fontkey]))\r\n+\t\t\t\t$this->AddFont($family,$style);\r\n+\t\t}\r\n+\t\telse\r\n+\t\t\t$this->Error('Undefined font: '.$family.' '.$style);\r\n+\t}\r\n+\t\u002F\u002F Select it\r\n+\t$this->FontFamily = $family;\r\n+\t$this->FontStyle = $style;\r\n+\t$this->FontSizePt = $size;\r\n+\t$this->FontSize = $size\u002F$this->k;\r\n+\t$this->CurrentFont = $this->fonts[$fontkey];\r\n+\tif($this->page>0)\r\n+\t\t$this->_out(sprintf('BT \u002FF%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));\r\n+}\r\n+\r\n+function SetFontSize($size)\r\n+{\r\n+\t\u002F\u002F Set font size in points\r\n+\tif($this->FontSizePt==$size)\r\n+\t\treturn;\r\n+\t$this->FontSizePt = $size;\r\n+\t$this->FontSize = $size\u002F$this->k;\r\n+\tif($this->page>0 && isset($this->CurrentFont))\r\n+\t\t$this->_out(sprintf('BT \u002FF%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));\r\n+}\r\n+\r\n+function AddLink()\r\n+{\r\n+\t\u002F\u002F Create a new internal link\r\n+\t$n = count($this->links)+1;\r\n+\t$this->links[$n] = array(0, 0);\r\n+\treturn $n;\r\n+}\r\n+\r\n+function SetLink($link, $y=0, $page=-1)\r\n+{\r\n+\t\u002F\u002F Set destination of internal link\r\n+\tif($y==-1)\r\n+\t\t$y = $this->y;\r\n+\tif($page==-1)\r\n+\t\t$page = $this->page;\r\n+\t$this->links[$link] = array($page, $y);\r\n+}\r\n+\r\n+function Link($x, $y, $w, $h, $link)\r\n+{\r\n+\t\u002F\u002F Put a link on the page\r\n+\t$this->PageLinks[$this->page][] = array($x*$this->k, $this->hPt-$y*$this->k, $w*$this->k, $h*$this->k, $link);\r\n+}\r\n+\r\n+function Text($x, $y, $txt)\r\n+{\r\n+\t\u002F\u002F Output a string\r\n+\tif(!isset($this->CurrentFont))\r\n+\t\t$this->Error('No font has been set');\r\n+\t$txt = (string)$txt;\r\n+\t$s = sprintf('BT %.2F %.2F Td (%s) Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt));\r\n+\tif($this->underline && $txt!=='')\r\n+\t\t$s .= ' '.$this->_dounderline($x,$y,$txt);\r\n+\tif($this->ColorFlag)\r\n+\t\t$s = 'q '.$this->TextColor.' '.$s.' Q';\r\n+\t$this->_out($s);\r\n+}\r\n+\r\n+function AcceptPageBreak()\r\n+{\r\n+\t\u002F\u002F Accept automatic page break or not\r\n+\treturn $this->AutoPageBreak;\r\n+}\r\n+\r\n+function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='')\r\n+{\r\n+\t\u002F\u002F Output a cell\r\n+\t$k = $this->k;\r\n+\tif($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())\r\n+\t{\r\n+\t\t\u002F\u002F Automatic page break\r\n+\t\t$x = $this->x;\r\n+\t\t$ws = $this->ws;\r\n+\t\tif($ws>0)\r\n+\t\t{\r\n+\t\t\t$this->ws = 0;\r\n+\t\t\t$this->_out('0 Tw');\r\n+\t\t}\r\n+\t\t$this->AddPage($this->CurOrientation,$this->CurPageSize,$this->CurRotation);\r\n+\t\t$this->x = $x;\r\n+\t\tif($ws>0)\r\n+\t\t{\r\n+\t\t\t$this->ws = $ws;\r\n+\t\t\t$this->_out(sprintf('%.3F Tw',$ws*$k));\r\n+\t\t}\r\n+\t}\r\n+\tif($w==0)\r\n+\t\t$w = $this->w-$this->rMargin-$this->x;\r\n+\t$s = '';\r\n+\tif($fill || $border==1)\r\n+\t{\r\n+\t\tif($fill)\r\n+\t\t\t$op = ($border==1) ? 'B' : 'f';\r\n+\t\telse\r\n+\t\t\t$op = 'S';\r\n+\t\t$s = sprintf('%.2F %.2F %.2F %.2F re %s ',$this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op);\r\n+\t}\r\n+\tif(is_string($border))\r\n+\t{\r\n+\t\t$x = $this->x;\r\n+\t\t$y = $this->y;\r\n+\t\tif(strpos($border,'L')!==false)\r\n+\t\t\t$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k);\r\n+\t\tif(strpos($border,'T')!==false)\r\n+\t\t\t$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k);\r\n+\t\tif(strpos($border,'R')!==false)\r\n+\t\t\t$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k);\r\n+\t\tif(strpos($border,'B')!==false)\r\n+\t\t\t$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k);\r\n+\t}\r\n+\t$txt = (string)$txt;\r\n+\tif($txt!=='')\r\n+\t{\r\n+\t\tif(!isset($this->CurrentFont))\r\n+\t\t\t$this->Error('No font has been set');\r\n+\t\tif($align=='R')\r\n+\t\t\t$dx = $w-$this->cMargin-$this->GetStringWidth($txt);\r\n+\t\telseif($align=='C')\r\n+\t\t\t$dx = ($w-$this->GetStringWidth($txt))\u002F2;\r\n+\t\telse\r\n+\t\t\t$dx = $this->cMargin;\r\n+\t\tif($this->ColorFlag)\r\n+\t\t\t$s .= 'q '.$this->TextColor.' ';\r\n+\t\t$s .= sprintf('BT %.2F %.2F Td (%s) Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$this->_escape($txt));\r\n+\t\tif($this->underline)\r\n+\t\t\t$s .= ' '.$this->_dounderline($this->x+$dx,$this->y+.5*$h+.3*$this->FontSize,$txt);\r\n+\t\tif($this->ColorFlag)\r\n+\t\t\t$s .= ' Q';\r\n+\t\tif($link)\r\n+\t\t\t$this->Link($this->x+$dx,$this->y+.5*$h-.5*$this->FontSize,$this->GetStringWidth($txt),$this->FontSize,$link);\r\n+\t}\r\n+\tif($s)\r\n+\t\t$this->_out($s);\r\n+\t$this->lasth = $h;\r\n+\tif($ln>0)\r\n+\t{\r\n+\t\t\u002F\u002F Go to next line\r\n+\t\t$this->y += $h;\r\n+\t\tif($ln==1)\r\n+\t\t\t$this->x = $this->lMargin;\r\n+\t}\r\n+\telse\r\n+\t\t$this->x += $w;\r\n+}\r\n+\r\n+function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false)\r\n+{\r\n+\t\u002F\u002F Output text with automatic or explicit line breaks\r\n+\tif(!isset($this->CurrentFont))\r\n+\t\t$this->Error('No font has been set');\r\n+\t$cw = $this->CurrentFont['cw'];\r\n+\tif($w==0)\r\n+\t\t$w = $this->w-$this->rMargin-$this->x;\r\n+\t$wmax = ($w-2*$this->cMargin)*1000\u002F$this->FontSize;\r\n+\t$s = str_replace(\"\\r\",'',(string)$txt);\r\n+\t$nb = strlen($s);\r\n+\tif($nb>0 && $s[$nb-1]==\"\\n\")\r\n+\t\t$nb--;\r\n+\t$b = 0;\r\n+\tif($border)\r\n+\t{\r\n+\t\tif($border==1)\r\n+\t\t{\r\n+\t\t\t$border = 'LTRB';\r\n+\t\t\t$b = 'LRT';\r\n+\t\t\t$b2 = 'LR';\r\n+\t\t}\r\n+\t\telse\r\n+\t\t{\r\n+\t\t\t$b2 = '';\r\n+\t\t\tif(strpos($border,'L')!==false)\r\n+\t\t\t\t$b2 .= 'L';\r\n+\t\t\tif(strpos($border,'R')!==false)\r\n+\t\t\t\t$b2 .= 'R';\r\n+\t\t\t$b = (strpos($border,'T')!==false) ? $b2.'T' : $b2;\r\n+\t\t}\r\n+\t}\r\n+\t$sep = -1;\r\n+\t$i = 0;\r\n+\t$j = 0;\r\n+\t$l = 0;\r\n+\t$ns = 0;\r\n+\t$nl = 1;\r\n+\twhile($i\u003C$nb)\r\n+\t{\r\n+\t\t\u002F\u002F Get next character\r\n+\t\t$c = $s[$i];\r\n+\t\tif($c==\"\\n\")\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Explicit line break\r\n+\t\t\tif($this->ws>0)\r\n+\t\t\t{\r\n+\t\t\t\t$this->ws = 0;\r\n+\t\t\t\t$this->_out('0 Tw');\r\n+\t\t\t}\r\n+\t\t\t$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);\r\n+\t\t\t$i++;\r\n+\t\t\t$sep = -1;\r\n+\t\t\t$j = $i;\r\n+\t\t\t$l = 0;\r\n+\t\t\t$ns = 0;\r\n+\t\t\t$nl++;\r\n+\t\t\tif($border && $nl==2)\r\n+\t\t\t\t$b = $b2;\r\n+\t\t\tcontinue;\r\n+\t\t}\r\n+\t\tif($c==' ')\r\n+\t\t{\r\n+\t\t\t$sep = $i;\r\n+\t\t\t$ls = $l;\r\n+\t\t\t$ns++;\r\n+\t\t}\r\n+\t\t$l += $cw[$c];\r\n+\t\tif($l>$wmax)\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Automatic line break\r\n+\t\t\tif($sep==-1)\r\n+\t\t\t{\r\n+\t\t\t\tif($i==$j)\r\n+\t\t\t\t\t$i++;\r\n+\t\t\t\tif($this->ws>0)\r\n+\t\t\t\t{\r\n+\t\t\t\t\t$this->ws = 0;\r\n+\t\t\t\t\t$this->_out('0 Tw');\r\n+\t\t\t\t}\r\n+\t\t\t\t$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);\r\n+\t\t\t}\r\n+\t\t\telse\r\n+\t\t\t{\r\n+\t\t\t\tif($align=='J')\r\n+\t\t\t\t{\r\n+\t\t\t\t\t$this->ws = ($ns>1) ? ($wmax-$ls)\u002F1000*$this->FontSize\u002F($ns-1) : 0;\r\n+\t\t\t\t\t$this->_out(sprintf('%.3F Tw',$this->ws*$this->k));\r\n+\t\t\t\t}\r\n+\t\t\t\t$this->Cell($w,$h,substr($s,$j,$sep-$j),$b,2,$align,$fill);\r\n+\t\t\t\t$i = $sep+1;\r\n+\t\t\t}\r\n+\t\t\t$sep = -1;\r\n+\t\t\t$j = $i;\r\n+\t\t\t$l = 0;\r\n+\t\t\t$ns = 0;\r\n+\t\t\t$nl++;\r\n+\t\t\tif($border && $nl==2)\r\n+\t\t\t\t$b = $b2;\r\n+\t\t}\r\n+\t\telse\r\n+\t\t\t$i++;\r\n+\t}\r\n+\t\u002F\u002F Last chunk\r\n+\tif($this->ws>0)\r\n+\t{\r\n+\t\t$this->ws = 0;\r\n+\t\t$this->_out('0 Tw');\r\n+\t}\r\n+\tif($border && strpos($border,'B')!==false)\r\n+\t\t$b .= 'B';\r\n+\t$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);\r\n+\t$this->x = $this->lMargin;\r\n+}\r\n+\r\n+function Write($h, $txt, $link='')\r\n+{\r\n+\t\u002F\u002F Output text in flowing mode\r\n+\tif(!isset($this->CurrentFont))\r\n+\t\t$this->Error('No font has been set');\r\n+\t$cw = $this->CurrentFont['cw'];\r\n+\t$w = $this->w-$this->rMargin-$this->x;\r\n+\t$wmax = ($w-2*$this->cMargin)*1000\u002F$this->FontSize;\r\n+\t$s = str_replace(\"\\r\",'',(string)$txt);\r\n+\t$nb = strlen($s);\r\n+\t$sep = -1;\r\n+\t$i = 0;\r\n+\t$j = 0;\r\n+\t$l = 0;\r\n+\t$nl = 1;\r\n+\twhile($i\u003C$nb)\r\n+\t{\r\n+\t\t\u002F\u002F Get next character\r\n+\t\t$c = $s[$i];\r\n+\t\tif($c==\"\\n\")\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Explicit line break\r\n+\t\t\t$this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',false,$link);\r\n+\t\t\t$i++;\r\n+\t\t\t$sep = -1;\r\n+\t\t\t$j = $i;\r\n+\t\t\t$l = 0;\r\n+\t\t\tif($nl==1)\r\n+\t\t\t{\r\n+\t\t\t\t$this->x = $this->lMargin;\r\n+\t\t\t\t$w = $this->w-$this->rMargin-$this->x;\r\n+\t\t\t\t$wmax = ($w-2*$this->cMargin)*1000\u002F$this->FontSize;\r\n+\t\t\t}\r\n+\t\t\t$nl++;\r\n+\t\t\tcontinue;\r\n+\t\t}\r\n+\t\tif($c==' ')\r\n+\t\t\t$sep = $i;\r\n+\t\t$l += $cw[$c];\r\n+\t\tif($l>$wmax)\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Automatic line break\r\n+\t\t\tif($sep==-1)\r\n+\t\t\t{\r\n+\t\t\t\tif($this->x>$this->lMargin)\r\n+\t\t\t\t{\r\n+\t\t\t\t\t\u002F\u002F Move to next line\r\n+\t\t\t\t\t$this->x = $this->lMargin;\r\n+\t\t\t\t\t$this->y += $h;\r\n+\t\t\t\t\t$w = $this->w-$this->rMargin-$this->x;\r\n+\t\t\t\t\t$wmax = ($w-2*$this->cMargin)*1000\u002F$this->FontSize;\r\n+\t\t\t\t\t$i++;\r\n+\t\t\t\t\t$nl++;\r\n+\t\t\t\t\tcontinue;\r\n+\t\t\t\t}\r\n+\t\t\t\tif($i==$j)\r\n+\t\t\t\t\t$i++;\r\n+\t\t\t\t$this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',false,$link);\r\n+\t\t\t}\r\n+\t\t\telse\r\n+\t\t\t{\r\n+\t\t\t\t$this->Cell($w,$h,substr($s,$j,$sep-$j),0,2,'',false,$link);\r\n+\t\t\t\t$i = $sep+1;\r\n+\t\t\t}\r\n+\t\t\t$sep = -1;\r\n+\t\t\t$j = $i;\r\n+\t\t\t$l = 0;\r\n+\t\t\tif($nl==1)\r\n+\t\t\t{\r\n+\t\t\t\t$this->x = $this->lMargin;\r\n+\t\t\t\t$w = $this->w-$this->rMargin-$this->x;\r\n+\t\t\t\t$wmax = ($w-2*$this->cMargin)*1000\u002F$this->FontSize;\r\n+\t\t\t}\r\n+\t\t\t$nl++;\r\n+\t\t}\r\n+\t\telse\r\n+\t\t\t$i++;\r\n+\t}\r\n+\t\u002F\u002F Last chunk\r\n+\tif($i!=$j)\r\n+\t\t$this->Cell($l\u002F1000*$this->FontSize,$h,substr($s,$j),0,0,'',false,$link);\r\n+}\r\n+\r\n+function Ln($h=null)\r\n+{\r\n+\t\u002F\u002F Line feed; default value is the last cell height\r\n+\t$this->x = $this->lMargin;\r\n+\tif($h===null)\r\n+\t\t$this->y += $this->lasth;\r\n+\telse\r\n+\t\t$this->y += $h;\r\n+}\r\n+\r\n+function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='')\r\n+{\r\n+\t\u002F\u002F Put an image on the page\r\n+\tif($file=='')\r\n+\t\t$this->Error('Image file name is empty');\r\n+\tif(!isset($this->images[$file]))\r\n+\t{\r\n+\t\t\u002F\u002F First use of this image, get info\r\n+\t\tif($type=='')\r\n+\t\t{\r\n+\t\t\t$pos = strrpos($file,'.');\r\n+\t\t\tif(!$pos)\r\n+\t\t\t\t$this->Error('Image file has no extension and no type was specified: '.$file);\r\n+\t\t\t$type = substr($file,$pos+1);\r\n+\t\t}\r\n+\t\t$type = strtolower($type);\r\n+\t\tif($type=='jpeg')\r\n+\t\t\t$type = 'jpg';\r\n+\t\t$mtd = '_parse'.$type;\r\n+\t\tif(!method_exists($this,$mtd))\r\n+\t\t\t$this->Error('Unsupported image type: '.$type);\r\n+\t\t$info = $this->$mtd($file);\r\n+\t\t$info['i'] = count($this->images)+1;\r\n+\t\t$this->images[$file] = $info;\r\n+\t}\r\n+\telse\r\n+\t\t$info = $this->images[$file];\r\n+\r\n+\t\u002F\u002F Automatic width and height calculation if needed\r\n+\tif($w==0 && $h==0)\r\n+\t{\r\n+\t\t\u002F\u002F Put image at 96 dpi\r\n+\t\t$w = -96;\r\n+\t\t$h = -96;\r\n+\t}\r\n+\tif($w\u003C0)\r\n+\t\t$w = -$info['w']*72\u002F$w\u002F$this->k;\r\n+\tif($h\u003C0)\r\n+\t\t$h = -$info['h']*72\u002F$h\u002F$this->k;\r\n+\tif($w==0)\r\n+\t\t$w = $h*$info['w']\u002F$info['h'];\r\n+\tif($h==0)\r\n+\t\t$h = $w*$info['h']\u002F$info['w'];\r\n+\r\n+\t\u002F\u002F Flowing mode\r\n+\tif($y===null)\r\n+\t{\r\n+\t\tif($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Automatic page break\r\n+\t\t\t$x2 = $this->x;\r\n+\t\t\t$this->AddPage($this->CurOrientation,$this->CurPageSize,$this->CurRotation);\r\n+\t\t\t$this->x = $x2;\r\n+\t\t}\r\n+\t\t$y = $this->y;\r\n+\t\t$this->y += $h;\r\n+\t}\r\n+\r\n+\tif($x===null)\r\n+\t\t$x = $this->x;\r\n+\t$this->_out(sprintf('q %.2F 0 0 %.2F %.2F %.2F cm \u002FI%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i']));\r\n+\tif($link)\r\n+\t\t$this->Link($x,$y,$w,$h,$link);\r\n+}\r\n+\r\n+function GetPageWidth()\r\n+{\r\n+\t\u002F\u002F Get current page width\r\n+\treturn $this->w;\r\n+}\r\n+\r\n+function GetPageHeight()\r\n+{\r\n+\t\u002F\u002F Get current page height\r\n+\treturn $this->h;\r\n+}\r\n+\r\n+function GetX()\r\n+{\r\n+\t\u002F\u002F Get x position\r\n+\treturn $this->x;\r\n+}\r\n+\r\n+function SetX($x)\r\n+{\r\n+\t\u002F\u002F Set x position\r\n+\tif($x>=0)\r\n+\t\t$this->x = $x;\r\n+\telse\r\n+\t\t$this->x = $this->w+$x;\r\n+}\r\n+\r\n+function GetY()\r\n+{\r\n+\t\u002F\u002F Get y position\r\n+\treturn $this->y;\r\n+}\r\n+\r\n+function SetY($y, $resetX=true)\r\n+{\r\n+\t\u002F\u002F Set y position and optionally reset x\r\n+\tif($y>=0)\r\n+\t\t$this->y = $y;\r\n+\telse\r\n+\t\t$this->y = $this->h+$y;\r\n+\tif($resetX)\r\n+\t\t$this->x = $this->lMargin;\r\n+}\r\n+\r\n+function SetXY($x, $y)\r\n+{\r\n+\t\u002F\u002F Set x and y positions\r\n+\t$this->SetX($x);\r\n+\t$this->SetY($y,false);\r\n+}\r\n+\r\n+function Output($dest='', $name='', $isUTF8=false)\r\n+{\r\n+\t\u002F\u002F Output PDF to some destination\r\n+\t$this->Close();\r\n+\tif(strlen($name)==1 && strlen($dest)!=1)\r\n+\t{\r\n+\t\t\u002F\u002F Fix parameter order\r\n+\t\t$tmp = $dest;\r\n+\t\t$dest = $name;\r\n+\t\t$name = $tmp;\r\n+\t}\r\n+\tif($dest=='')\r\n+\t\t$dest = 'I';\r\n+\tif($name=='')\r\n+\t\t$name = 'doc.pdf';\r\n+\tswitch(strtoupper($dest))\r\n+\t{\r\n+\t\tcase 'I':\r\n+\t\t\t\u002F\u002F Send to standard output\r\n+\t\t\t$this->_checkoutput();\r\n+\t\t\tif(PHP_SAPI!='cli')\r\n+\t\t\t{\r\n+\t\t\t\t\u002F\u002F We send to a browser\r\n+\t\t\t\theader('Content-Type: application\u002Fpdf');\r\n+\t\t\t\theader('Content-Disposition: inline; '.$this->_httpencode('filename',$name,$isUTF8));\r\n+\t\t\t\theader('Cache-Control: private, max-age=0, must-revalidate');\r\n+\t\t\t\theader('Pragma: public');\r\n+\t\t\t}\r\n+\t\t\techo $this->buffer;\r\n+\t\t\tbreak;\r\n+\t\tcase 'D':\r\n+\t\t\t\u002F\u002F Download file\r\n+\t\t\t$this->_checkoutput();\r\n+\t\t\theader('Content-Type: application\u002Fpdf');\r\n+\t\t\theader('Content-Disposition: attachment; '.$this->_httpencode('filename',$name,$isUTF8));\r\n+\t\t\theader('Cache-Control: private, max-age=0, must-revalidate');\r\n+\t\t\theader('Pragma: public');\r\n+\t\t\techo $this->buffer;\r\n+\t\t\tbreak;\r\n+\t\tcase 'F':\r\n+\t\t\t\u002F\u002F Save to local file\r\n+\t\t\tif(!file_put_contents($name,$this->buffer))\r\n+\t\t\t\t$this->Error('Unable to create output file: '.$name);\r\n+\t\t\tbreak;\r\n+\t\tcase 'S':\r\n+\t\t\t\u002F\u002F Return as a string\r\n+\t\t\treturn $this->buffer;\r\n+\t\tdefault:\r\n+\t\t\t$this->Error('Incorrect output destination: '.$dest);\r\n+\t}\r\n+\treturn '';\r\n+}\r\n+\r\n+\u002F*******************************************************************************\r\n+*                              Protected methods                               *\r\n+*******************************************************************************\u002F\r\n+\r\n+protected function _checkoutput()\r\n+{\r\n+\tif(PHP_SAPI!='cli')\r\n+\t{\r\n+\t\tif(headers_sent($file,$line))\r\n+\t\t\t$this->Error(\"Some data has already been output, can't send PDF file (output started at $file:$line)\");\r\n+\t}\r\n+\tif(ob_get_length())\r\n+\t{\r\n+\t\t\u002F\u002F The output buffer is not empty\r\n+\t\tif(preg_match('\u002F^(\\xEF\\xBB\\xBF)?\\s*$\u002F',ob_get_contents()))\r\n+\t\t{\r\n+\t\t\t\u002F\u002F It contains only a UTF-8 BOM and\u002For whitespace, let's clean it\r\n+\t\t\tob_clean();\r\n+\t\t}\r\n+\t\telse\r\n+\t\t\t$this->Error(\"Some data has already been output, can't send PDF file\");\r\n+\t}\r\n+}\r\n+\r\n+protected function _getpagesize($size)\r\n+{\r\n+\tif(is_string($size))\r\n+\t{\r\n+\t\t$size = strtolower($size);\r\n+\t\tif(!isset($this->StdPageSizes[$size]))\r\n+\t\t\t$this->Error('Unknown page size: '.$size);\r\n+\t\t$a = $this->StdPageSizes[$size];\r\n+\t\treturn array($a[0]\u002F$this->k, $a[1]\u002F$this->k);\r\n+\t}\r\n+\telse\r\n+\t{\r\n+\t\tif($size[0]>$size[1])\r\n+\t\t\treturn array($size[1], $size[0]);\r\n+\t\telse\r\n+\t\t\treturn $size;\r\n+\t}\r\n+}\r\n+\r\n+protected function _beginpage($orientation, $size, $rotation)\r\n+{\r\n+\t$this->page++;\r\n+\t$this->pages[$this->page] = '';\r\n+\t$this->PageLinks[$this->page] = array();\r\n+\t$this->state = 2;\r\n+\t$this->x = $this->lMargin;\r\n+\t$this->y = $this->tMargin;\r\n+\t$this->FontFamily = '';\r\n+\t\u002F\u002F Check page size and orientation\r\n+\tif($orientation=='')\r\n+\t\t$orientation = $this->DefOrientation;\r\n+\telse\r\n+\t\t$orientation = strtoupper($orientation[0]);\r\n+\tif($size=='')\r\n+\t\t$size = $this->DefPageSize;\r\n+\telse\r\n+\t\t$size = $this->_getpagesize($size);\r\n+\tif($orientation!=$this->CurOrientation || $size[0]!=$this->CurPageSize[0] || $size[1]!=$this->CurPageSize[1])\r\n+\t{\r\n+\t\t\u002F\u002F New size or orientation\r\n+\t\tif($orientation=='P')\r\n+\t\t{\r\n+\t\t\t$this->w = $size[0];\r\n+\t\t\t$this->h = $size[1];\r\n+\t\t}\r\n+\t\telse\r\n+\t\t{\r\n+\t\t\t$this->w = $size[1];\r\n+\t\t\t$this->h = $size[0];\r\n+\t\t}\r\n+\t\t$this->wPt = $this->w*$this->k;\r\n+\t\t$this->hPt = $this->h*$this->k;\r\n+\t\t$this->PageBreakTrigger = $this->h-$this->bMargin;\r\n+\t\t$this->CurOrientation = $orientation;\r\n+\t\t$this->CurPageSize = $size;\r\n+\t}\r\n+\tif($orientation!=$this->DefOrientation || $size[0]!=$this->DefPageSize[0] || $size[1]!=$this->DefPageSize[1])\r\n+\t\t$this->PageInfo[$this->page]['size'] = array($this->wPt, $this->hPt);\r\n+\tif($rotation!=0)\r\n+\t{\r\n+\t\tif($rotation%90!=0)\r\n+\t\t\t$this->Error('Incorrect rotation value: '.$rotation);\r\n+\t\t$this->PageInfo[$this->page]['rotation'] = $rotation;\r\n+\t}\r\n+\t$this->CurRotation = $rotation;\r\n+}\r\n+\r\n+protected function _endpage()\r\n+{\r\n+\t$this->state = 1;\r\n+}\r\n+\r\n+protected function _loadfont($font)\r\n+{\r\n+\t\u002F\u002F Load a font definition file from the font directory\r\n+\tif(strpos($font,'\u002F')!==false || strpos($font,\"\\\\\")!==false)\r\n+\t\t$this->Error('Incorrect font definition file name: '.$font);\r\n+\tinclude($this->fontpath.$font);\r\n+\tif(!isset($name))\r\n+\t\t$this->Error('Could not include font definition file');\r\n+\tif(isset($enc))\r\n+\t\t$enc = strtolower($enc);\r\n+\tif(!isset($subsetted))\r\n+\t\t$subsetted = false;\r\n+\treturn get_defined_vars();\r\n+}\r\n+\r\n+protected function _isascii($s)\r\n+{\r\n+\t\u002F\u002F Test if string is ASCII\r\n+\t$nb = strlen($s);\r\n+\tfor($i=0;$i\u003C$nb;$i++)\r\n+\t{\r\n+\t\tif(ord($s[$i])>127)\r\n+\t\t\treturn false;\r\n+\t}\r\n+\treturn true;\r\n+}\r\n+\r\n+protected function _httpencode($param, $value, $isUTF8)\r\n+{\r\n+\t\u002F\u002F Encode HTTP header field parameter\r\n+\tif($this->_isascii($value))\r\n+\t\treturn $param.'=\"'.$value.'\"';\r\n+\tif(!$isUTF8)\r\n+\t\t$value = $this->_UTF8encode($value);\r\n+\treturn $param.\"*=UTF-8''\".rawurlencode($value);\r\n+}\r\n+\r\n+protected function _UTF8encode($s)\r\n+{\r\n+\t\u002F\u002F Convert ISO-8859-1 to UTF-8\r\n+\tif($this->iconv)\r\n+\t\treturn iconv('ISO-8859-1','UTF-8',$s);\r\n+\t$res = '';\r\n+\t$nb = strlen($s);\r\n+\tfor($i=0;$i\u003C$nb;$i++)\r\n+\t{\r\n+\t\t$c = $s[$i];\r\n+\t\t$v = ord($c);\r\n+\t\tif($v>=128)\r\n+\t\t{\r\n+\t\t\t$res .= chr(0xC0 | ($v >> 6));\r\n+\t\t\t$res .= chr(0x80 | ($v & 0x3F));\r\n+\t\t}\r\n+\t\telse\r\n+\t\t\t$res .= $c;\r\n+\t}\r\n+\treturn $res;\r\n+}\r\n+\r\n+protected function _UTF8toUTF16($s)\r\n+{\r\n+\t\u002F\u002F Convert UTF-8 to UTF-16BE with BOM\r\n+\t$res = \"\\xFE\\xFF\";\r\n+\tif($this->iconv)\r\n+\t\treturn $res.iconv('UTF-8','UTF-16BE',$s);\r\n+\t$nb = strlen($s);\r\n+\t$i = 0;\r\n+\twhile($i\u003C$nb)\r\n+\t{\r\n+\t\t$c1 = ord($s[$i++]);\r\n+\t\tif($c1>=224)\r\n+\t\t{\r\n+\t\t\t\u002F\u002F 3-byte character\r\n+\t\t\t$c2 = ord($s[$i++]);\r\n+\t\t\t$c3 = ord($s[$i++]);\r\n+\t\t\t$res .= chr((($c1 & 0x0F)\u003C\u003C4) + (($c2 & 0x3C)>>2));\r\n+\t\t\t$res .= chr((($c2 & 0x03)\u003C\u003C6) + ($c3 & 0x3F));\r\n+\t\t}\r\n+\t\telseif($c1>=192)\r\n+\t\t{\r\n+\t\t\t\u002F\u002F 2-byte character\r\n+\t\t\t$c2 = ord($s[$i++]);\r\n+\t\t\t$res .= chr(($c1 & 0x1C)>>2);\r\n+\t\t\t$res .= chr((($c1 & 0x03)\u003C\u003C6) + ($c2 & 0x3F));\r\n+\t\t}\r\n+\t\telse\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Single-byte character\r\n+\t\t\t$res .= \"\\0\".chr($c1);\r\n+\t\t}\r\n+\t}\r\n+\treturn $res;\r\n+}\r\n+\r\n+protected function _escape($s)\r\n+{\r\n+\t\u002F\u002F Escape special characters\r\n+\tif(strpos($s,'(')!==false || strpos($s,')')!==false || strpos($s,'\\\\')!==false || strpos($s,\"\\r\")!==false)\r\n+\t\treturn str_replace(array('\\\\','(',')',\"\\r\"), array('\\\\\\\\','\\\\(','\\\\)','\\\\r'), $s);\r\n+\telse\r\n+\t\treturn $s;\r\n+}\r\n+\r\n+protected function _textstring($s)\r\n+{\r\n+\t\u002F\u002F Format a text string\r\n+\tif(!$this->_isascii($s))\r\n+\t\t$s = $this->_UTF8toUTF16($s);\r\n+\treturn '('.$this->_escape($s).')';\r\n+}\r\n+\r\n+protected function _dounderline($x, $y, $txt)\r\n+{\r\n+\t\u002F\u002F Underline text\r\n+\t$up = $this->CurrentFont['up'];\r\n+\t$ut = $this->CurrentFont['ut'];\r\n+\t$w = $this->GetStringWidth($txt)+$this->ws*substr_count($txt,' ');\r\n+\treturn sprintf('%.2F %.2F %.2F %.2F re f',$x*$this->k,($this->h-($y-$up\u002F1000*$this->FontSize))*$this->k,$w*$this->k,-$ut\u002F1000*$this->FontSizePt);\r\n+}\r\n+\r\n+protected function _parsejpg($file)\r\n+{\r\n+\t\u002F\u002F Extract info from a JPEG file\r\n+\t$a = getimagesize($file);\r\n+\tif(!$a)\r\n+\t\t$this->Error('Missing or incorrect image file: '.$file);\r\n+\tif($a[2]!=2)\r\n+\t\t$this->Error('Not a JPEG file: '.$file);\r\n+\tif(!isset($a['channels']) || $a['channels']==3)\r\n+\t\t$colspace = 'DeviceRGB';\r\n+\telseif($a['channels']==4)\r\n+\t\t$colspace = 'DeviceCMYK';\r\n+\telse\r\n+\t\t$colspace = 'DeviceGray';\r\n+\t$bpc = isset($a['bits']) ? $a['bits'] : 8;\r\n+\t$data = file_get_contents($file);\r\n+\treturn array('w'=>$a[0], 'h'=>$a[1], 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'DCTDecode', 'data'=>$data);\r\n+}\r\n+\r\n+protected function _parsepng($file)\r\n+{\r\n+\t\u002F\u002F Extract info from a PNG file\r\n+\t$f = fopen($file,'rb');\r\n+\tif(!$f)\r\n+\t\t$this->Error('Can\\'t open image file: '.$file);\r\n+\t$info = $this->_parsepngstream($f,$file);\r\n+\tfclose($f);\r\n+\treturn $info;\r\n+}\r\n+\r\n+protected function _parsepngstream($f, $file)\r\n+{\r\n+\t\u002F\u002F Check signature\r\n+\tif($this->_readstream($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10))\r\n+\t\t$this->Error('Not a PNG file: '.$file);\r\n+\r\n+\t\u002F\u002F Read header chunk\r\n+\t$this->_readstream($f,4);\r\n+\tif($this->_readstream($f,4)!='IHDR')\r\n+\t\t$this->Error('Incorrect PNG file: '.$file);\r\n+\t$w = $this->_readint($f);\r\n+\t$h = $this->_readint($f);\r\n+\t$bpc = ord($this->_readstream($f,1));\r\n+\tif($bpc>8)\r\n+\t\t$this->Error('16-bit depth not supported: '.$file);\r\n+\t$ct = ord($this->_readstream($f,1));\r\n+\tif($ct==0 || $ct==4)\r\n+\t\t$colspace = 'DeviceGray';\r\n+\telseif($ct==2 || $ct==6)\r\n+\t\t$colspace = 'DeviceRGB';\r\n+\telseif($ct==3)\r\n+\t\t$colspace = 'Indexed';\r\n+\telse\r\n+\t\t$this->Error('Unknown color type: '.$file);\r\n+\tif(ord($this->_readstream($f,1))!=0)\r\n+\t\t$this->Error('Unknown compression method: '.$file);\r\n+\tif(ord($this->_readstream($f,1))!=0)\r\n+\t\t$this->Error('Unknown filter method: '.$file);\r\n+\tif(ord($this->_readstream($f,1))!=0)\r\n+\t\t$this->Error('Interlacing not supported: '.$file);\r\n+\t$this->_readstream($f,4);\r\n+\t$dp = '\u002FPredictor 15 \u002FColors '.($colspace=='DeviceRGB' ? 3 : 1).' \u002FBitsPerComponent '.$bpc.' \u002FColumns '.$w;\r\n+\r\n+\t\u002F\u002F Scan chunks looking for palette, transparency and image data\r\n+\t$pal = '';\r\n+\t$trns = '';\r\n+\t$data = '';\r\n+\tdo\r\n+\t{\r\n+\t\t$n = $this->_readint($f);\r\n+\t\t$type = $this->_readstream($f,4);\r\n+\t\tif($type=='PLTE')\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Read palette\r\n+\t\t\t$pal = $this->_readstream($f,$n);\r\n+\t\t\t$this->_readstream($f,4);\r\n+\t\t}\r\n+\t\telseif($type=='tRNS')\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Read transparency info\r\n+\t\t\t$t = $this->_readstream($f,$n);\r\n+\t\t\tif($ct==0)\r\n+\t\t\t\t$trns = array(ord(substr($t,1,1)));\r\n+\t\t\telseif($ct==2)\r\n+\t\t\t\t$trns = array(ord(substr($t,1,1)), ord(substr($t,3,1)), ord(substr($t,5,1)));\r\n+\t\t\telse\r\n+\t\t\t{\r\n+\t\t\t\t$pos = strpos($t,chr(0));\r\n+\t\t\t\tif($pos!==false)\r\n+\t\t\t\t\t$trns = array($pos);\r\n+\t\t\t}\r\n+\t\t\t$this->_readstream($f,4);\r\n+\t\t}\r\n+\t\telseif($type=='IDAT')\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Read image data block\r\n+\t\t\t$data .= $this->_readstream($f,$n);\r\n+\t\t\t$this->_readstream($f,4);\r\n+\t\t}\r\n+\t\telseif($type=='IEND')\r\n+\t\t\tbreak;\r\n+\t\telse\r\n+\t\t\t$this->_readstream($f,$n+4);\r\n+\t}\r\n+\twhile($n);\r\n+\r\n+\tif($colspace=='Indexed' && empty($pal))\r\n+\t\t$this->Error('Missing palette in '.$file);\r\n+\t$info = array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'dp'=>$dp, 'pal'=>$pal, 'trns'=>$trns);\r\n+\tif($ct>=4)\r\n+\t{\r\n+\t\t\u002F\u002F Extract alpha channel\r\n+\t\tif(!function_exists('gzuncompress'))\r\n+\t\t\t$this->Error('Zlib not available, can\\'t handle alpha channel: '.$file);\r\n+\t\t$data = gzuncompress($data);\r\n+\t\t$color = '';\r\n+\t\t$alpha = '';\r\n+\t\tif($ct==4)\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Gray image\r\n+\t\t\t$len = 2*$w;\r\n+\t\t\tfor($i=0;$i\u003C$h;$i++)\r\n+\t\t\t{\r\n+\t\t\t\t$pos = (1+$len)*$i;\r\n+\t\t\t\t$color .= $data[$pos];\r\n+\t\t\t\t$alpha .= $data[$pos];\r\n+\t\t\t\t$line = substr($data,$pos+1,$len);\r\n+\t\t\t\t$color .= preg_replace('\u002F(.).\u002Fs','$1',$line);\r\n+\t\t\t\t$alpha .= preg_replace('\u002F.(.)\u002Fs','$1',$line);\r\n+\t\t\t}\r\n+\t\t}\r\n+\t\telse\r\n+\t\t{\r\n+\t\t\t\u002F\u002F RGB image\r\n+\t\t\t$len = 4*$w;\r\n+\t\t\tfor($i=0;$i\u003C$h;$i++)\r\n+\t\t\t{\r\n+\t\t\t\t$pos = (1+$len)*$i;\r\n+\t\t\t\t$color .= $data[$pos];\r\n+\t\t\t\t$alpha .= $data[$pos];\r\n+\t\t\t\t$line = substr($data,$pos+1,$len);\r\n+\t\t\t\t$color .= preg_replace('\u002F(.{3}).\u002Fs','$1',$line);\r\n+\t\t\t\t$alpha .= preg_replace('\u002F.{3}(.)\u002Fs','$1',$line);\r\n+\t\t\t}\r\n+\t\t}\r\n+\t\tunset($data);\r\n+\t\t$data = gzcompress($color);\r\n+\t\t$info['smask'] = gzcompress($alpha);\r\n+\t\t$this->WithAlpha = true;\r\n+\t\tif($this->PDFVersion\u003C'1.4')\r\n+\t\t\t$this->PDFVersion = '1.4';\r\n+\t}\r\n+\t$info['data'] = $data;\r\n+\treturn $info;\r\n+}\r\n+\r\n+protected function _readstream($f, $n)\r\n+{\r\n+\t\u002F\u002F Read n bytes from stream\r\n+\t$res = '';\r\n+\twhile($n>0 && !feof($f))\r\n+\t{\r\n+\t\t$s = fread($f,$n);\r\n+\t\tif($s===false)\r\n+\t\t\t$this->Error('Error while reading stream');\r\n+\t\t$n -= strlen($s);\r\n+\t\t$res .= $s;\r\n+\t}\r\n+\tif($n>0)\r\n+\t\t$this->Error('Unexpected end of stream');\r\n+\treturn $res;\r\n+}\r\n+\r\n+protected function _readint($f)\r\n+{\r\n+\t\u002F\u002F Read a 4-byte integer from stream\r\n+\t$a = unpack('Ni',$this->_readstream($f,4));\r\n+\treturn $a['i'];\r\n+}\r\n+\r\n+protected function _parsegif($file)\r\n+{\r\n+\t\u002F\u002F Extract info from a GIF file (via PNG conversion)\r\n+\tif(!function_exists('imagepng'))\r\n+\t\t$this->Error('GD extension is required for GIF support');\r\n+\tif(!function_exists('imagecreatefromgif'))\r\n+\t\t$this->Error('GD has no GIF read support');\r\n+\t$im = imagecreatefromgif($file);\r\n+\tif(!$im)\r\n+\t\t$this->Error('Missing or incorrect image file: '.$file);\r\n+\timageinterlace($im,0);\r\n+\tob_start();\r\n+\timagepng($im);\r\n+\t$data = ob_get_clean();\r\n+\timagedestroy($im);\r\n+\t$f = fopen('php:\u002F\u002Ftemp','rb+');\r\n+\tif(!$f)\r\n+\t\t$this->Error('Unable to create memory stream');\r\n+\tfwrite($f,$data);\r\n+\trewind($f);\r\n+\t$info = $this->_parsepngstream($f,$file);\r\n+\tfclose($f);\r\n+\treturn $info;\r\n+}\r\n+\r\n+protected function _out($s)\r\n+{\r\n+\t\u002F\u002F Add a line to the current page\r\n+\tif($this->state==2)\r\n+\t\t$this->pages[$this->page] .= $s.\"\\n\";\r\n+\telseif($this->state==0)\r\n+\t\t$this->Error('No page has been added yet');\r\n+\telseif($this->state==1)\r\n+\t\t$this->Error('Invalid call');\r\n+\telseif($this->state==3)\r\n+\t\t$this->Error('The document is closed');\r\n+}\r\n+\r\n+protected function _put($s)\r\n+{\r\n+\t\u002F\u002F Add a line to the document\r\n+\t$this->buffer .= $s.\"\\n\";\r\n+}\r\n+\r\n+protected function _getoffset()\r\n+{\r\n+\treturn strlen($this->buffer);\r\n+}\r\n+\r\n+protected function _newobj($n=null)\r\n+{\r\n+\t\u002F\u002F Begin a new object\r\n+\tif($n===null)\r\n+\t\t$n = ++$this->n;\r\n+\t$this->offsets[$n] = $this->_getoffset();\r\n+\t$this->_put($n.' 0 obj');\r\n+}\r\n+\r\n+protected function _putstream($data)\r\n+{\r\n+\t$this->_put('stream');\r\n+\t$this->_put($data);\r\n+\t$this->_put('endstream');\r\n+}\r\n+\r\n+protected function _putstreamobject($data)\r\n+{\r\n+\tif($this->compress)\r\n+\t{\r\n+\t\t$entries = '\u002FFilter \u002FFlateDecode ';\r\n+\t\t$data = gzcompress($data);\r\n+\t}\r\n+\telse\r\n+\t\t$entries = '';\r\n+\t$entries .= '\u002FLength '.strlen($data);\r\n+\t$this->_newobj();\r\n+\t$this->_put('\u003C\u003C'.$entries.'>>');\r\n+\t$this->_putstream($data);\r\n+\t$this->_put('endobj');\r\n+}\r\n+\r\n+protected function _putlinks($n)\r\n+{\r\n+\tforeach($this->PageLinks[$n] as $pl)\r\n+\t{\r\n+\t\t$this->_newobj();\r\n+\t\t$rect = sprintf('%.2F %.2F %.2F %.2F',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]);\r\n+\t\t$s = '\u003C\u003C\u002FType \u002FAnnot \u002FSubtype \u002FLink \u002FRect ['.$rect.'] \u002FBorder [0 0 0] ';\r\n+\t\tif(is_string($pl[4]))\r\n+\t\t\t$s .= '\u002FA \u003C\u003C\u002FS \u002FURI \u002FURI '.$this->_textstring($pl[4]).'>>>>';\r\n+\t\telse\r\n+\t\t{\r\n+\t\t\t$l = $this->links[$pl[4]];\r\n+\t\t\tif(isset($this->PageInfo[$l[0]]['size']))\r\n+\t\t\t\t$h = $this->PageInfo[$l[0]]['size'][1];\r\n+\t\t\telse\r\n+\t\t\t\t$h = ($this->DefOrientation=='P') ? $this->DefPageSize[1]*$this->k : $this->DefPageSize[0]*$this->k;\r\n+\t\t\t$s .= sprintf('\u002FDest [%d 0 R \u002FXYZ 0 %.2F null]>>',$this->PageInfo[$l[0]]['n'],$h-$l[1]*$this->k);\r\n+\t\t}\r\n+\t\t$this->_put($s);\r\n+\t\t$this->_put('endobj');\r\n+\t}\r\n+}\r\n+\r\n+protected function _putpage($n)\r\n+{\r\n+\t$this->_newobj();\r\n+\t$this->_put('\u003C\u003C\u002FType \u002FPage');\r\n+\t$this->_put('\u002FParent 1 0 R');\r\n+\tif(isset($this->PageInfo[$n]['size']))\r\n+\t\t$this->_put(sprintf('\u002FMediaBox [0 0 %.2F %.2F]',$this->PageInfo[$n]['size'][0],$this->PageInfo[$n]['size'][1]));\r\n+\tif(isset($this->PageInfo[$n]['rotation']))\r\n+\t\t$this->_put('\u002FRotate '.$this->PageInfo[$n]['rotation']);\r\n+\t$this->_put('\u002FResources 2 0 R');\r\n+\tif(!empty($this->PageLinks[$n]))\r\n+\t{\r\n+\t\t$s = '\u002FAnnots [';\r\n+\t\tforeach($this->PageLinks[$n] as $pl)\r\n+\t\t\t$s .= $pl[5].' 0 R ';\r\n+\t\t$s .= ']';\r\n+\t\t$this->_put($s);\r\n+\t}\r\n+\tif($this->WithAlpha)\r\n+\t\t$this->_put('\u002FGroup \u003C\u003C\u002FType \u002FGroup \u002FS \u002FTransparency \u002FCS \u002FDeviceRGB>>');\r\n+\t$this->_put('\u002FContents '.($this->n+1).' 0 R>>');\r\n+\t$this->_put('endobj');\r\n+\t\u002F\u002F Page content\r\n+\tif(!empty($this->AliasNbPages))\r\n+\t\t$this->pages[$n] = str_replace($this->AliasNbPages,$this->page,$this->pages[$n]);\r\n+\t$this->_putstreamobject($this->pages[$n]);\r\n+\t\u002F\u002F Link annotations\r\n+\t$this->_putlinks($n);\r\n+}\r\n+\r\n+protected function _putpages()\r\n+{\r\n+\t$nb = $this->page;\r\n+\t$n = $this->n;\r\n+\tfor($i=1;$i\u003C=$nb;$i++)\r\n+\t{\r\n+\t\t$this->PageInfo[$i]['n'] = ++$n;\r\n+\t\t$n++;\r\n+\t\tforeach($this->PageLinks[$i] as &$pl)\r\n+\t\t\t$pl[5] = ++$n;\r\n+\t\tunset($pl);\r\n+\t}\r\n+\tfor($i=1;$i\u003C=$nb;$i++)\r\n+\t\t$this->_putpage($i);\r\n+\t\u002F\u002F Pages root\r\n+\t$this->_newobj(1);\r\n+\t$this->_put('\u003C\u003C\u002FType \u002FPages');\r\n+\t$kids = '\u002FKids [';\r\n+\tfor($i=1;$i\u003C=$nb;$i++)\r\n+\t\t$kids .= $this->PageInfo[$i]['n'].' 0 R ';\r\n+\t$kids .= ']';\r\n+\t$this->_put($kids);\r\n+\t$this->_put('\u002FCount '.$nb);\r\n+\tif($this->DefOrientation=='P')\r\n+\t{\r\n+\t\t$w = $this->DefPageSize[0];\r\n+\t\t$h = $this->DefPageSize[1];\r\n+\t}\r\n+\telse\r\n+\t{\r\n+\t\t$w = $this->DefPageSize[1];\r\n+\t\t$h = $this->DefPageSize[0];\r\n+\t}\r\n+\t$this->_put(sprintf('\u002FMediaBox [0 0 %.2F %.2F]',$w*$this->k,$h*$this->k));\r\n+\t$this->_put('>>');\r\n+\t$this->_put('endobj');\r\n+}\r\n+\r\n+protected function _putfonts()\r\n+{\r\n+\tforeach($this->FontFiles as $file=>$info)\r\n+\t{\r\n+\t\t\u002F\u002F Font file embedding\r\n+\t\t$this->_newobj();\r\n+\t\t$this->FontFiles[$file]['n'] = $this->n;\r\n+\t\t$font = file_get_contents($this->fontpath.$file,true);\r\n+\t\tif(!$font)\r\n+\t\t\t$this->Error('Font file not found: '.$file);\r\n+\t\t$compressed = (substr($file,-2)=='.z');\r\n+\t\tif(!$compressed && isset($info['length2']))\r\n+\t\t\t$font = substr($font,6,$info['length1']).substr($font,6+$info['length1']+6,$info['length2']);\r\n+\t\t$this->_put('\u003C\u003C\u002FLength '.strlen($font));\r\n+\t\tif($compressed)\r\n+\t\t\t$this->_put('\u002FFilter \u002FFlateDecode');\r\n+\t\t$this->_put('\u002FLength1 '.$info['length1']);\r\n+\t\tif(isset($info['length2']))\r\n+\t\t\t$this->_put('\u002FLength2 '.$info['length2'].' \u002FLength3 0');\r\n+\t\t$this->_put('>>');\r\n+\t\t$this->_putstream($font);\r\n+\t\t$this->_put('endobj');\r\n+\t}\r\n+\tforeach($this->fonts as $k=>$font)\r\n+\t{\r\n+\t\t\u002F\u002F Encoding\r\n+\t\tif(isset($font['diff']))\r\n+\t\t{\r\n+\t\t\tif(!isset($this->encodings[$font['enc']]))\r\n+\t\t\t{\r\n+\t\t\t\t$this->_newobj();\r\n+\t\t\t\t$this->_put('\u003C\u003C\u002FType \u002FEncoding \u002FBaseEncoding \u002FWinAnsiEncoding \u002FDifferences ['.$font['diff'].']>>');\r\n+\t\t\t\t$this->_put('endobj');\r\n+\t\t\t\t$this->encodings[$font['enc']] = $this->n;\r\n+\t\t\t}\r\n+\t\t}\r\n+\t\t\u002F\u002F ToUnicode CMap\r\n+\t\tif(isset($font['uv']))\r\n+\t\t{\r\n+\t\t\tif(isset($font['enc']))\r\n+\t\t\t\t$cmapkey = $font['enc'];\r\n+\t\t\telse\r\n+\t\t\t\t$cmapkey = $font['name'];\r\n+\t\t\tif(!isset($this->cmaps[$cmapkey]))\r\n+\t\t\t{\r\n+\t\t\t\t$cmap = $this->_tounicodecmap($font['uv']);\r\n+\t\t\t\t$this->_putstreamobject($cmap);\r\n+\t\t\t\t$this->cmaps[$cmapkey] = $this->n;\r\n+\t\t\t}\r\n+\t\t}\r\n+\t\t\u002F\u002F Font object\r\n+\t\t$this->fonts[$k]['n'] = $this->n+1;\r\n+\t\t$type = $font['type'];\r\n+\t\t$name = $font['name'];\r\n+\t\tif($font['subsetted'])\r\n+\t\t\t$name = 'AAAAAA+'.$name;\r\n+\t\tif($type=='Core')\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Core font\r\n+\t\t\t$this->_newobj();\r\n+\t\t\t$this->_put('\u003C\u003C\u002FType \u002FFont');\r\n+\t\t\t$this->_put('\u002FBaseFont \u002F'.$name);\r\n+\t\t\t$this->_put('\u002FSubtype \u002FType1');\r\n+\t\t\tif($name!='Symbol' && $name!='ZapfDingbats')\r\n+\t\t\t\t$this->_put('\u002FEncoding \u002FWinAnsiEncoding');\r\n+\t\t\tif(isset($font['uv']))\r\n+\t\t\t\t$this->_put('\u002FToUnicode '.$this->cmaps[$cmapkey].' 0 R');\r\n+\t\t\t$this->_put('>>');\r\n+\t\t\t$this->_put('endobj');\r\n+\t\t}\r\n+\t\telseif($type=='Type1' || $type=='TrueType')\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Additional Type1 or TrueType\u002FOpenType font\r\n+\t\t\t$this->_newobj();\r\n+\t\t\t$this->_put('\u003C\u003C\u002FType \u002FFont');\r\n+\t\t\t$this->_put('\u002FBaseFont \u002F'.$name);\r\n+\t\t\t$this->_put('\u002FSubtype \u002F'.$type);\r\n+\t\t\t$this->_put('\u002FFirstChar 32 \u002FLastChar 255');\r\n+\t\t\t$this->_put('\u002FWidths '.($this->n+1).' 0 R');\r\n+\t\t\t$this->_put('\u002FFontDescriptor '.($this->n+2).' 0 R');\r\n+\t\t\tif(isset($font['diff']))\r\n+\t\t\t\t$this->_put('\u002FEncoding '.$this->encodings[$font['enc']].' 0 R');\r\n+\t\t\telse\r\n+\t\t\t\t$this->_put('\u002FEncoding \u002FWinAnsiEncoding');\r\n+\t\t\tif(isset($font['uv']))\r\n+\t\t\t\t$this->_put('\u002FToUnicode '.$this->cmaps[$cmapkey].' 0 R');\r\n+\t\t\t$this->_put('>>');\r\n+\t\t\t$this->_put('endobj');\r\n+\t\t\t\u002F\u002F Widths\r\n+\t\t\t$this->_newobj();\r\n+\t\t\t$cw = $font['cw'];\r\n+\t\t\t$s = '[';\r\n+\t\t\tfor($i=32;$i\u003C=255;$i++)\r\n+\t\t\t\t$s .= $cw[chr($i)].' ';\r\n+\t\t\t$this->_put($s.']');\r\n+\t\t\t$this->_put('endobj');\r\n+\t\t\t\u002F\u002F Descriptor\r\n+\t\t\t$this->_newobj();\r\n+\t\t\t$s = '\u003C\u003C\u002FType \u002FFontDescriptor \u002FFontName \u002F'.$name;\r\n+\t\t\tforeach($font['desc'] as $k=>$v)\r\n+\t\t\t\t$s .= ' \u002F'.$k.' '.$v;\r\n+\t\t\tif(!empty($font['file']))\r\n+\t\t\t\t$s .= ' \u002FFontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$font['file']]['n'].' 0 R';\r\n+\t\t\t$this->_put($s.'>>');\r\n+\t\t\t$this->_put('endobj');\r\n+\t\t}\r\n+\t\telse\r\n+\t\t{\r\n+\t\t\t\u002F\u002F Allow for additional types\r\n+\t\t\t$mtd = '_put'.strtolower($type);\r\n+\t\t\tif(!method_exists($this,$mtd))\r\n+\t\t\t\t$this->Error('Unsupported font type: '.$type);\r\n+\t\t\t$this->$mtd($font);\r\n+\t\t}\r\n+\t}\r\n+}\r\n+\r\n+protected function _tounicodecmap($uv)\r\n+{\r\n+\t$ranges = '';\r\n+\t$nbr = 0;\r\n+\t$chars = '';\r\n+\t$nbc = 0;\r\n+\tforeach($uv as $c=>$v)\r\n+\t{\r\n+\t\tif(is_array($v))\r\n+\t\t{\r\n+\t\t\t$ranges .= sprintf(\"\u003C%02X> \u003C%02X> \u003C%04X>\\n\",$c,$c+$v[1]-1,$v[0]);\r\n+\t\t\t$nbr++;\r\n+\t\t}\r\n+\t\telse\r\n+\t\t{\r\n+\t\t\t$chars .= sprintf(\"\u003C%02X> \u003C%04X>\\n\",$c,$v);\r\n+\t\t\t$nbc++;\r\n+\t\t}\r\n+\t}\r\n+\t$s = \"\u002FCIDInit \u002FProcSet findresource begin\\n\";\r\n+\t$s .= \"12 dict begin\\n\";\r\n+\t$s .= \"begincmap\\n\";\r\n+\t$s .= \"\u002FCIDSystemInfo\\n\";\r\n+\t$s .= \"\u003C\u003C\u002FRegistry (Adobe)\\n\";\r\n+\t$s .= \"\u002FOrdering (UCS)\\n\";\r\n+\t$s .= \"\u002FSupplement 0\\n\";\r\n+\t$s .= \">> def\\n\";\r\n+\t$s .= \"\u002FCMapName \u002FAdobe-Identity-UCS def\\n\";\r\n+\t$s .= \"\u002FCMapType 2 def\\n\";\r\n+\t$s .= \"1 begincodespacerange\\n\";\r\n+\t$s .= \"\u003C00> \u003CFF>\\n\";\r\n+\t$s .= \"endcodespacerange\\n\";\r\n+\tif($nbr>0)\r\n+\t{\r\n+\t\t$s .= \"$nbr beginbfrange\\n\";\r\n+\t\t$s .= $ranges;\r\n+\t\t$s .= \"endbfrange\\n\";\r\n+\t}\r\n+\tif($nbc>0)\r\n+\t{\r\n+\t\t$s .= \"$nbc beginbfchar\\n\";\r\n+\t\t$s .= $chars;\r\n+\t\t$s .= \"endbfchar\\n\";\r\n+\t}\r\n+\t$s .= \"endcmap\\n\";\r\n+\t$s .= \"CMapName currentdict \u002FCMap defineresource pop\\n\";\r\n+\t$s .= \"end\\n\";\r\n+\t$s .= \"end\";\r\n+\treturn $s;\r\n+}\r\n+\r\n+protected function _putimages()\r\n+{\r\n+\tforeach(array_keys($this->images) as $file)\r\n+\t{\r\n+\t\t$this->_putimage($this->images[$file]);\r\n+\t\tunset($this->images[$file]['data']);\r\n+\t\tunset($this->images[$file]['smask']);\r\n+\t}\r\n+}\r\n+\r\n+protected function _putimage(&$info)\r\n+{\r\n+\t$this->_newobj();\r\n+\t$info['n'] = $this->n;\r\n+\t$this->_put('\u003C\u003C\u002FType \u002FXObject');\r\n+\t$this->_put('\u002FSubtype \u002FImage');\r\n+\t$this->_put('\u002FWidth '.$info['w']);\r\n+\t$this->_put('\u002FHeight '.$info['h']);\r\n+\tif($info['cs']=='Indexed')\r\n+\t\t$this->_put('\u002FColorSpace [\u002FIndexed \u002FDeviceRGB '.(strlen($info['pal'])\u002F3-1).' '.($this->n+1).' 0 R]');\r\n+\telse\r\n+\t{\r\n+\t\t$this->_put('\u002FColorSpace \u002F'.$info['cs']);\r\n+\t\tif($info['cs']=='DeviceCMYK')\r\n+\t\t\t$this->_put('\u002FDecode [1 0 1 0 1 0 1 0]');\r\n+\t}\r\n+\t$this->_put('\u002FBitsPerComponent '.$info['bpc']);\r\n+\tif(isset($info['f']))\r\n+\t\t$this->_put('\u002FFilter \u002F'.$info['f']);\r\n+\tif(isset($info['dp']))\r\n+\t\t$this->_put('\u002FDecodeParms \u003C\u003C'.$info['dp'].'>>');\r\n+\tif(isset($info['trns']) && is_array($info['trns']))\r\n+\t{\r\n+\t\t$trns = '';\r\n+\t\tfor($i=0;$i\u003Ccount($info['trns']);$i++)\r\n+\t\t\t$trns .= $info['trns'][$i].' '.$info['trns'][$i].' ';\r\n+\t\t$this->_put('\u002FMask ['.$trns.']');\r\n+\t}\r\n+\tif(isset($info['smask']))\r\n+\t\t$this->_put('\u002FSMask '.($this->n+1).' 0 R');\r\n+\t$this->_put('\u002FLength '.strlen($info['data']).'>>');\r\n+\t$this->_putstream($info['data']);\r\n+\t$this->_put('endobj');\r\n+\t\u002F\u002F Soft mask\r\n+\tif(isset($info['smask']))\r\n+\t{\r\n+\t\t$dp = '\u002FPredictor 15 \u002FColors 1 \u002FBitsPerComponent 8 \u002FColumns '.$info['w'];\r\n+\t\t$smask = array('w'=>$info['w'], 'h'=>$info['h'], 'cs'=>'DeviceGray', 'bpc'=>8, 'f'=>$info['f'], 'dp'=>$dp, 'data'=>$info['smask']);\r\n+\t\t$this->_putimage($smask);\r\n+\t}\r\n+\t\u002F\u002F Palette\r\n+\tif($info['cs']=='Indexed')\r\n+\t\t$this->_putstreamobject($info['pal']);\r\n+}\r\n+\r\n+protected function _putxobjectdict()\r\n+{\r\n+\tforeach($this->images as $image)\r\n+\t\t$this->_put('\u002FI'.$image['i'].' '.$image['n'].' 0 R');\r\n+}\r\n+\r\n+protected function _putresourcedict()\r\n+{\r\n+\t$this->_put('\u002FProcSet [\u002FPDF \u002FText \u002FImageB \u002FImageC \u002FImageI]');\r\n+\t$this->_put('\u002FFont \u003C\u003C');\r\n+\tforeach($this->fonts as $font)\r\n+\t\t$this->_put('\u002FF'.$font['i'].' '.$font['n'].' 0 R');\r\n+\t$this->_put('>>');\r\n+\t$this->_put('\u002FXObject \u003C\u003C');\r\n+\t$this->_putxobjectdict();\r\n+\t$this->_put('>>');\r\n+}\r\n+\r\n+protected function _putresources()\r\n+{\r\n+\t$this->_putfonts();\r\n+\t$this->_putimages();\r\n+\t\u002F\u002F Resource dictionary\r\n+\t$this->_newobj(2);\r\n+\t$this->_put('\u003C\u003C');\r\n+\t$this->_putresourcedict();\r\n+\t$this->_put('>>');\r\n+\t$this->_put('endobj');\r\n+}\r\n+\r\n+protected function _putinfo()\r\n+{\r\n+\t$date = @date('YmdHisO', $this->CreationDate);\r\n+\t$this->metadata['CreationDate'] = 'D:'.substr($date,0,-2).\"'\".substr($date,-2).\"'\";\r\n+\tforeach($this->metadata as $key=>$value)\r\n+\t\t$this->_put('\u002F'.$key.' '.$this->_textstring($value));\r\n+}\r\n+\r\n+protected function _putcatalog()\r\n+{\r\n+\t$n = $this->PageInfo[1]['n'];\r\n+\t$this->_put('\u002FType \u002FCatalog');\r\n+\t$this->_put('\u002FPages 1 0 R');\r\n+\tif($this->ZoomMode=='fullpage')\r\n+\t\t$this->_put('\u002FOpenAction ['.$n.' 0 R \u002FFit]');\r\n+\telseif($this->ZoomMode=='fullwidth')\r\n+\t\t$this->_put('\u002FOpenAction ['.$n.' 0 R \u002FFitH null]');\r\n+\telseif($this->ZoomMode=='real')\r\n+\t\t$this->_put('\u002FOpenAction ['.$n.' 0 R \u002FXYZ null null 1]');\r\n+\telseif(!is_string($this->ZoomMode))\r\n+\t\t$this->_put('\u002FOpenAction ['.$n.' 0 R \u002FXYZ null null '.sprintf('%.2F',$this->ZoomMode\u002F100).']');\r\n+\tif($this->LayoutMode=='single')\r\n+\t\t$this->_put('\u002FPageLayout \u002FSinglePage');\r\n+\telseif($this->LayoutMode=='continuous')\r\n+\t\t$this->_put('\u002FPageLayout \u002FOneColumn');\r\n+\telseif($this->LayoutMode=='two')\r\n+\t\t$this->_put('\u002FPageLayout \u002FTwoColumnLeft');\r\n+}\r\n+\r\n+protected function _putheader()\r\n+{\r\n+\t$this->_put('%PDF-'.$this->PDFVersion);\r\n+}\r\n+\r\n+protected function _puttrailer()\r\n+{\r\n+\t$this->_put('\u002FSize '.($this->n+1));\r\n+\t$this->_put('\u002FRoot '.$this->n.' 0 R');\r\n+\t$this->_put('\u002FInfo '.($this->n-1).' 0 R');\r\n+}\r\n+\r\n+protected function _enddoc()\r\n+{\r\n+\t$this->_putheader();\r\n+\t$this->_putpages();\r\n+\t$this->_putresources();\r\n+\t\u002F\u002F Info\r\n+\t$this->_newobj();\r\n+\t$this->_put('\u003C\u003C');\r\n+\t$this->_putinfo();\r\n+\t$this->_put('>>');\r\n+\t$this->_put('endobj');\r\n+\t\u002F\u002F Catalog\r\n+\t$this->_newobj();\r\n+\t$this->_put('\u003C\u003C');\r\n+\t$this->_putcatalog();\r\n+\t$this->_put('>>');\r\n+\t$this->_put('endobj');\r\n+\t\u002F\u002F Cross-ref\r\n+\t$offset = $this->_getoffset();\r\n+\t$this->_put('xref');\r\n+\t$this->_put('0 '.($this->n+1));\r\n+\t$this->_put('0000000000 65535 f ');\r\n+\tfor($i=1;$i\u003C=$this->n;$i++)\r\n+\t\t$this->_put(sprintf('%010d 00000 n ',$this->offsets[$i]));\r\n+\t\u002F\u002F Trailer\r\n+\t$this->_put('trailer');\r\n+\t$this->_put('\u003C\u003C');\r\n+\t$this->_puttrailer();\r\n+\t$this->_put('>>');\r\n+\t$this->_put('startxref');\r\n+\t$this->_put($offset);\r\n+\t$this->_put('%%EOF');\r\n+\t$this->state = 3;\r\n+\t$this->CreationDate = time();\r\n+}\r\n+}\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Fhtml2pdf.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Fhtml2pdf.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Ffpdf\u002Fhtml2pdf.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Ffpdf\u002Fhtml2pdf.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,196 +1,196 @@\n-\u003C?php\n-\u002F\u002FHTML2PDF by Cl�ment Lavoillotte\n-\u002F\u002Fac.lavoillotte@noos.fr\n-\u002F\u002Fwebmaster@streetpc.tk\n-\u002F\u002Fhttp:\u002F\u002Fwww.streetpc.tk\n-\n-require(WPPM_ABSPATH.'asset\u002Flib\u002Ffpdf\u002Ffpdf.php');\n-\n-\u002F\u002Ffunction hex2dec\n-\u002F\u002Freturns an associative array (keys: R,G,B) from\n-\u002F\u002Fa hex html code (e.g. #3FE5AA)\n-function hex2dec($couleur = \"#000000\"){\n-\t$R = substr($couleur, 1, 2);\n-\t$rouge = hexdec($R);\n-\t$V = substr($couleur, 3, 2);\n-\t$vert = hexdec($V);\n-\t$B = substr($couleur, 5, 2);\n-\t$bleu = hexdec($B);\n-\t$tbl_couleur = array();\n-\t$tbl_couleur['R']=$rouge;\n-\t$tbl_couleur['V']=$vert;\n-\t$tbl_couleur['B']=$bleu;\n-\treturn $tbl_couleur;\n-}\n-\n-\u002F\u002Fconversion pixel -> millimeter at 72 dpi\n-function px2mm($px){\n-\treturn $px*25.4\u002F72;\n-}\n-\n-function txtentities($html){\n-\t$trans = get_html_translation_table(HTML_ENTITIES);\n-\t$trans = array_flip($trans);\n-\treturn strtr($html, $trans);\n-}\n-\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\n-\n-class PDF_HTML extends FPDF\n-{\n-\u002F\u002Fvariables of html parser\n-protected $B;\n-protected $I;\n-protected $U;\n-protected $HREF;\n-protected $fontlist;\n-protected $issetfont;\n-protected $issetcolor;\n-\n-function __construct($orientation='P', $unit='mm', $size='A4')\n-{\n-\t\u002F\u002FCall parent constructor\n-\tparent::__construct($orientation,$unit,$size);\n-\t\u002F\u002FInitialization\n-\t$this->B=0;\n-\t$this->I=0;\n-\t$this->U=0;\n-\t$this->HREF='';\n-\t$this->fontlist=array('arial', 'times', 'courier', 'helvetica', 'symbol');\n-\t$this->issetfont=false;\n-\t$this->issetcolor=false;\n-}\n-\n-function WriteHTML($html)\n-{\n-\t\u002F\u002FHTML parser\n-\t$html=strip_tags($html,\"\u003Cb>\u003Cu>\u003Ci>\u003Ca>\u003Cimg>\u003Cp>\u003Cbr>\u003Cstrong>\u003Cem>\u003Cfont>\u003Ctr>\u003Cblockquote>\"); \u002F\u002Fsupprime tous les tags sauf ceux reconnus\n-\t$html=str_replace(\"\\n\",' ',$html); \u002F\u002Fremplace retour � la ligne par un espace\n-\t$a=preg_split('\u002F\u003C(.*)>\u002FU',$html,-1,PREG_SPLIT_DELIM_CAPTURE); \u002F\u002F�clate la cha�ne avec les balises\n-\tforeach($a as $i=>$e)\n-\t{\n-\t\tif($i%2==0)\n-\t\t{\n-\t\t\t\u002F\u002FText\n-\t\t\tif($this->HREF)\n-\t\t\t\t$this->PutLink($this->HREF,$e);\n-\t\t\telse\n-\t\t\t\t$this->Write(5,txtentities($e));\n-\t\t}\n-\t\telse\n-\t\t{\n-\t\t\t\u002F\u002FTag\n-\t\t\tif($e[0]=='\u002F')\n-\t\t\t\t$this->CloseTag(strtoupper(substr($e,1)));\n-\t\t\telse\n-\t\t\t{\n-\t\t\t\t\u002F\u002FExtract attributes\n-\t\t\t\t$a2=explode(' ',$e);\n-\t\t\t\t$tag=strtoupper(array_shift($a2));\n-\t\t\t\t$attr=array();\n-\t\t\t\tforeach($a2 as $v)\n-\t\t\t\t{\n-\t\t\t\t\tif(preg_match('\u002F([^=]*)=[\"\\']?([^\"\\']*)\u002F',$v,$a3))\n-\t\t\t\t\t\t$attr[strtoupper($a3[1])]=$a3[2];\n-\t\t\t\t}\n-\t\t\t\t$this->OpenTag($tag,$attr);\n-\t\t\t}\n-\t\t}\n-\t}\n-}\n-\n-function OpenTag($tag, $attr)\n-{\n-\t\u002F\u002FOpening tag\n-\tswitch($tag){\n-\t\tcase 'STRONG':\n-\t\t\t$this->SetStyle('B',true);\n-\t\t\tbreak;\n-\t\tcase 'EM':\n-\t\t\t$this->SetStyle('I',true);\n-\t\t\tbreak;\n-\t\tcase 'B':\n-\t\tcase 'I':\n-\t\tcase 'U':\n-\t\t\t$this->SetStyle($tag,true);\n-\t\t\tbreak;\n-\t\tcase 'A':\n-\t\t\t$this->HREF=$attr['HREF'];\n-\t\t\tbreak;\n-\t\tcase 'IMG':\n-\t\t\tif(isset($attr['SRC']) && (isset($attr['WIDTH']) || isset($attr['HEIGHT']))) {\n-\t\t\t\tif(!isset($attr['WIDTH']))\n-\t\t\t\t\t$attr['WIDTH'] = 0;\n-\t\t\t\tif(!isset($attr['HEIGHT']))\n-\t\t\t\t\t$attr['HEIGHT'] = 0;\n-\t\t\t\t$this->Image($attr['SRC'], $this->GetX(), $this->GetY(), px2mm($attr['WIDTH']), px2mm($attr['HEIGHT']));\n-\t\t\t}\n-\t\t\tbreak;\n-\t\tcase 'TR':\n-\t\tcase 'BLOCKQUOTE':\n-\t\tcase 'BR':\n-\t\t\t$this->Ln(5);\n-\t\t\tbreak;\n-\t\tcase 'P':\n-\t\t\t$this->Ln(10);\n-\t\t\tbreak;\n-\t\tcase 'FONT':\n-\t\t\tif (isset($attr['COLOR']) && $attr['COLOR']!='') {\n-\t\t\t\t$coul=hex2dec($attr['COLOR']);\n-\t\t\t\t$this->SetTextColor($coul['R'],$coul['V'],$coul['B']);\n-\t\t\t\t$this->issetcolor=true;\n-\t\t\t}\n-\t\t\tif (isset($attr['FACE']) && in_array(strtolower($attr['FACE']), $this->fontlist)) {\n-\t\t\t\t$this->SetFont(strtolower($attr['FACE']));\n-\t\t\t\t$this->issetfont=true;\n-\t\t\t}\n-\t\t\tbreak;\n-\t}\n-}\n-\n-function CloseTag($tag)\n-{\n-\t\u002F\u002FClosing tag\n-\tif($tag=='STRONG')\n-\t\t$tag='B';\n-\tif($tag=='EM')\n-\t\t$tag='I';\n-\tif($tag=='B' || $tag=='I' || $tag=='U')\n-\t\t$this->SetStyle($tag,false);\n-\tif($tag=='A')\n-\t\t$this->HREF='';\n-\tif($tag=='FONT'){\n-\t\tif ($this->issetcolor==true) {\n-\t\t\t$this->SetTextColor(0);\n-\t\t}\n-\t\tif ($this->issetfont) {\n-\t\t\t$this->SetFont('arial');\n-\t\t\t$this->issetfont=false;\n-\t\t}\n-\t}\n-}\n-\n-function SetStyle($tag, $enable)\n-{\n-\t\u002F\u002FModify style and select corresponding font\n-\t$this->$tag+=($enable ? 1 : -1);\n-\t$style='';\n-\tforeach(array('B','I','U') as $s)\n-\t{\n-\t\tif($this->$s>0)\n-\t\t\t$style.=$s;\n-\t}\n-\t$this->SetFont('',$style);\n-}\n-\n-function PutLink($URL, $txt)\n-{\n-\t\u002F\u002FPut a hyperlink\n-\t$this->SetTextColor(0,0,255);\n-\t$this->SetStyle('U',true);\n-\t$this->Write(5,$txt,$URL);\n-\t$this->SetStyle('U',false);\n-\t$this->SetTextColor(0);\n-}\n-\n-}\u002F\u002Fend of class\n-?>\n+\u003C?php\r\n+\u002F\u002FHTML2PDF by Cl�ment Lavoillotte\r\n+\u002F\u002Fac.lavoillotte@noos.fr\r\n+\u002F\u002Fwebmaster@streetpc.tk\r\n+\u002F\u002Fhttp:\u002F\u002Fwww.streetpc.tk\r\n+\r\n+require(WPPM_ABSPATH.'asset\u002Flib\u002Ffpdf\u002Ffpdf.php');\r\n+\r\n+\u002F\u002Ffunction hex2dec\r\n+\u002F\u002Freturns an associative array (keys: R,G,B) from\r\n+\u002F\u002Fa hex html code (e.g. #3FE5AA)\r\n+function hex2dec($couleur = \"#000000\"){\r\n+\t$R = substr($couleur, 1, 2);\r\n+\t$rouge = hexdec($R);\r\n+\t$V = substr($couleur, 3, 2);\r\n+\t$vert = hexdec($V);\r\n+\t$B = substr($couleur, 5, 2);\r\n+\t$bleu = hexdec($B);\r\n+\t$tbl_couleur = array();\r\n+\t$tbl_couleur['R']=$rouge;\r\n+\t$tbl_couleur['V']=$vert;\r\n+\t$tbl_couleur['B']=$bleu;\r\n+\treturn $tbl_couleur;\r\n+}\r\n+\r\n+\u002F\u002Fconversion pixel -> millimeter at 72 dpi\r\n+function px2mm($px){\r\n+\treturn $px*25.4\u002F72;\r\n+}\r\n+\r\n+function txtentities($html){\r\n+\t$trans = get_html_translation_table(HTML_ENTITIES);\r\n+\t$trans = array_flip($trans);\r\n+\treturn strtr($html, $trans);\r\n+}\r\n+\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\r\n+\r\n+class PDF_HTML extends FPDF\r\n+{\r\n+\u002F\u002Fvariables of html parser\r\n+protected $B;\r\n+protected $I;\r\n+protected $U;\r\n+protected $HREF;\r\n+protected $fontlist;\r\n+protected $issetfont;\r\n+protected $issetcolor;\r\n+\r\n+function __construct($orientation='P', $unit='mm', $size='A4')\r\n+{\r\n+\t\u002F\u002FCall parent constructor\r\n+\tparent::__construct($orientation,$unit,$size);\r\n+\t\u002F\u002FInitialization\r\n+\t$this->B=0;\r\n+\t$this->I=0;\r\n+\t$this->U=0;\r\n+\t$this->HREF='';\r\n+\t$this->fontlist=array('arial', 'times', 'courier', 'helvetica', 'symbol');\r\n+\t$this->issetfont=false;\r\n+\t$this->issetcolor=false;\r\n+}\r\n+\r\n+function WriteHTML($html)\r\n+{\r\n+\t\u002F\u002FHTML parser\r\n+\t$html=strip_tags($html,\"\u003Cb>\u003Cu>\u003Ci>\u003Ca>\u003Cimg>\u003Cp>\u003Cbr>\u003Cstrong>\u003Cem>\u003Cfont>\u003Ctr>\u003Cblockquote>\"); \u002F\u002Fsupprime tous les tags sauf ceux reconnus\r\n+\t$html=str_replace(\"\\n\",' ',$html); \u002F\u002Fremplace retour � la ligne par un espace\r\n+\t$a=preg_split('\u002F\u003C(.*)>\u002FU',$html,-1,PREG_SPLIT_DELIM_CAPTURE); \u002F\u002F�clate la cha�ne avec les balises\r\n+\tforeach($a as $i=>$e)\r\n+\t{\r\n+\t\tif($i%2==0)\r\n+\t\t{\r\n+\t\t\t\u002F\u002FText\r\n+\t\t\tif($this->HREF)\r\n+\t\t\t\t$this->PutLink($this->HREF,$e);\r\n+\t\t\telse\r\n+\t\t\t\t$this->Write(5,txtentities($e));\r\n+\t\t}\r\n+\t\telse\r\n+\t\t{\r\n+\t\t\t\u002F\u002FTag\r\n+\t\t\tif($e[0]=='\u002F')\r\n+\t\t\t\t$this->CloseTag(strtoupper(substr($e,1)));\r\n+\t\t\telse\r\n+\t\t\t{\r\n+\t\t\t\t\u002F\u002FExtract attributes\r\n+\t\t\t\t$a2=explode(' ',$e);\r\n+\t\t\t\t$tag=strtoupper(array_shift($a2));\r\n+\t\t\t\t$attr=array();\r\n+\t\t\t\tforeach($a2 as $v)\r\n+\t\t\t\t{\r\n+\t\t\t\t\tif(preg_match('\u002F([^=]*)=[\"\\']?([^\"\\']*)\u002F',$v,$a3))\r\n+\t\t\t\t\t\t$attr[strtoupper($a3[1])]=$a3[2];\r\n+\t\t\t\t}\r\n+\t\t\t\t$this->OpenTag($tag,$attr);\r\n+\t\t\t}\r\n+\t\t}\r\n+\t}\r\n+}\r\n+\r\n+function OpenTag($tag, $attr)\r\n+{\r\n+\t\u002F\u002FOpening tag\r\n+\tswitch($tag){\r\n+\t\tcase 'STRONG':\r\n+\t\t\t$this->SetStyle('B',true);\r\n+\t\t\tbreak;\r\n+\t\tcase 'EM':\r\n+\t\t\t$this->SetStyle('I',true);\r\n+\t\t\tbreak;\r\n+\t\tcase 'B':\r\n+\t\tcase 'I':\r\n+\t\tcase 'U':\r\n+\t\t\t$this->SetStyle($tag,true);\r\n+\t\t\tbreak;\r\n+\t\tcase 'A':\r\n+\t\t\t$this->HREF=$attr['HREF'];\r\n+\t\t\tbreak;\r\n+\t\tcase 'IMG':\r\n+\t\t\tif(isset($attr['SRC']) && (isset($attr['WIDTH']) || isset($attr['HEIGHT']))) {\r\n+\t\t\t\tif(!isset($attr['WIDTH']))\r\n+\t\t\t\t\t$attr['WIDTH'] = 0;\r\n+\t\t\t\tif(!isset($attr['HEIGHT']))\r\n+\t\t\t\t\t$attr['HEIGHT'] = 0;\r\n+\t\t\t\t$this->Image($attr['SRC'], $this->GetX(), $this->GetY(), px2mm($attr['WIDTH']), px2mm($attr['HEIGHT']));\r\n+\t\t\t}\r\n+\t\t\tbreak;\r\n+\t\tcase 'TR':\r\n+\t\tcase 'BLOCKQUOTE':\r\n+\t\tcase 'BR':\r\n+\t\t\t$this->Ln(5);\r\n+\t\t\tbreak;\r\n+\t\tcase 'P':\r\n+\t\t\t$this->Ln(10);\r\n+\t\t\tbreak;\r\n+\t\tcase 'FONT':\r\n+\t\t\tif (isset($attr['COLOR']) && $attr['COLOR']!='') {\r\n+\t\t\t\t$coul=hex2dec($attr['COLOR']);\r\n+\t\t\t\t$this->SetTextColor($coul['R'],$coul['V'],$coul['B']);\r\n+\t\t\t\t$this->issetcolor=true;\r\n+\t\t\t}\r\n+\t\t\tif (isset($attr['FACE']) && in_array(strtolower($attr['FACE']), $this->fontlist)) {\r\n+\t\t\t\t$this->SetFont(strtolower($attr['FACE']));\r\n+\t\t\t\t$this->issetfont=true;\r\n+\t\t\t}\r\n+\t\t\tbreak;\r\n+\t}\r\n+}\r\n+\r\n+function CloseTag($tag)\r\n+{\r\n+\t\u002F\u002FClosing tag\r\n+\tif($tag=='STRONG')\r\n+\t\t$tag='B';\r\n+\tif($tag=='EM')\r\n+\t\t$tag='I';\r\n+\tif($tag=='B' || $tag=='I' || $tag=='U')\r\n+\t\t$this->SetStyle($tag,false);\r\n+\tif($tag=='A')\r\n+\t\t$this->HREF='';\r\n+\tif($tag=='FONT'){\r\n+\t\tif ($this->issetcolor==true) {\r\n+\t\t\t$this->SetTextColor(0);\r\n+\t\t}\r\n+\t\tif ($this->issetfont) {\r\n+\t\t\t$this->SetFont('arial');\r\n+\t\t\t$this->issetfont=false;\r\n+\t\t}\r\n+\t}\r\n+}\r\n+\r\n+function SetStyle($tag, $enable)\r\n+{\r\n+\t\u002F\u002FModify style and select corresponding font\r\n+\t$this->$tag+=($enable ? 1 : -1);\r\n+\t$style='';\r\n+\tforeach(array('B','I','U') as $s)\r\n+\t{\r\n+\t\tif($this->$s>0)\r\n+\t\t\t$style.=$s;\r\n+\t}\r\n+\t$this->SetFont('',$style);\r\n+}\r\n+\r\n+function PutLink($URL, $txt)\r\n+{\r\n+\t\u002F\u002FPut a hyperlink\r\n+\t$this->SetTextColor(0,0,255);\r\n+\t$this->SetStyle('U',true);\r\n+\t$this->Write(5,$txt,$URL);\r\n+\t$this->SetStyle('U',false);\r\n+\t$this->SetTextColor(0);\r\n+}\r\n+\r\n+}\u002F\u002Fend of class\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.css\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.css\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,43 +1,43 @@\n-\u002F*\n- * jquery-gpopover\n- * http:\u002F\u002Fgithub.com\u002Fmarkembling\u002Fjquery-gpopover\n- *\n- * A simple jQuery plugin for creating popover elements similar to Google's \n- * new 'apps' launcher\u002Fswitcher.\n- *\n- * Copyright (c) 2013 Mark Embling (markembling.info)\n- * Licensed under the BSD (3 clause) license.\n- *\u002F\n-\n-.gpopover {\n-    background-color: #FFF;\n-    border: 1px solid #CCC;\n-    border-color: rgba(0, 0, 0, 0.2);\n-    border-radius: 2px;\n-    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n-    display: none;\n-    padding: 12px;\n-    position: absolute;\n-    z-index: 998;\n-}\n-\n-.gpopover .gpopover-arrow {\n-    border: 8px solid transparent;\n-    border-bottom-color: #FFF;\n-    border-top-width: 0;\n-    height: 0;\n-    position: absolute;\n-    width: 0;\n-    z-index: 999;\n-}\n-\n-.gpopover .gpopover-arrow-shadow {\n-    border: 8px solid transparent;\n-    border-bottom-color: #C0C0C0;\n-    border-bottom-color: rgba(0, 0, 0, 0.275);\n-    border-top-width: 0;\n-    height: 0;\n-    position: absolute;\n-    width: 0;\n-    z-index: 997;\n-}\n+\u002F*\r\n+ * jquery-gpopover\r\n+ * http:\u002F\u002Fgithub.com\u002Fmarkembling\u002Fjquery-gpopover\r\n+ *\r\n+ * A simple jQuery plugin for creating popover elements similar to Google's \r\n+ * new 'apps' launcher\u002Fswitcher.\r\n+ *\r\n+ * Copyright (c) 2013 Mark Embling (markembling.info)\r\n+ * Licensed under the BSD (3 clause) license.\r\n+ *\u002F\r\n+\r\n+.gpopover {\r\n+    background-color: #FFF;\r\n+    border: 1px solid #CCC;\r\n+    border-color: rgba(0, 0, 0, 0.2);\r\n+    border-radius: 2px;\r\n+    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\r\n+    display: none;\r\n+    padding: 12px;\r\n+    position: absolute;\r\n+    z-index: 998;\r\n+}\r\n+\r\n+.gpopover .gpopover-arrow {\r\n+    border: 8px solid transparent;\r\n+    border-bottom-color: #FFF;\r\n+    border-top-width: 0;\r\n+    height: 0;\r\n+    position: absolute;\r\n+    width: 0;\r\n+    z-index: 999;\r\n+}\r\n+\r\n+.gpopover .gpopover-arrow-shadow {\r\n+    border: 8px solid transparent;\r\n+    border-bottom-color: #C0C0C0;\r\n+    border-bottom-color: rgba(0, 0, 0, 0.275);\r\n+    border-top-width: 0;\r\n+    height: 0;\r\n+    position: absolute;\r\n+    width: 0;\r\n+    z-index: 997;\r\n+}\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,172 +1,172 @@\n-\u002F*\n- * jquery-gpopover\n- * http:\u002F\u002Fgithub.com\u002Fmarkembling\u002Fjquery-gpopover\n- *\n- * A simple jQuery plugin for creating popover elements similar to Google's \n- * new 'apps' launcher\u002Fswitcher.\n- *\n- * Copyright (c) 2013 Mark Embling (markembling.info)\n- * Licensed under the BSD (3 clause) license.\n- *\u002F\n-\n-;(function($){\n-    \n-    var GPopover = function(element, options) {\n-        this.options = null;\n-        this.$trigger = null;\n-        this.$popover = null;\n-        \n-        this.init(element, options);\n-    }\n-    \n-    GPopover.prototype.init = function(element, options) {\n-        var that = this;\n-        \n-        this.options = $.extend({}, $.fn.gpopover.defaults, options);\n-        \n-        this.$trigger = $(element);\n-        this.$popover = $('#' + this.$trigger.data('popover'));\n-        \n-        this._addArrowElements();\n-        \n-        if (this.options.preventHide) {\n-            this._preventHideClickPropagation();\n-        }\n-        \n-        this.$trigger.click(function(e){\n-            if (! that.$popover.is(\":visible\")) {\n-                \u002F\u002F Trigger a click on the parent element (that can bubble up)\n-                $(this).parent().click();\n-                \n-                that.show();\n-                \n-                e.stopPropagation();\n-            }\n-            \n-            e.preventDefault();\n-        });\n-    }\n-    \n-    GPopover.prototype.show = function() {\n-        var that = this;\n-        \n-        \u002F\u002F Set width before showing\n-        this.$popover.width(this.options.width);\n-        \n-        \u002F\u002F Show the popover\n-        this.$popover.fadeIn(this.options.fadeInDuration);\n-        \n-        \u002F\u002F Set up hiding\n-        $(document).one('click.popoverHide', function() {\n-            \u002F\u002F _hidePopover($popover, settings);\n-            that.hide();\n-        });\n-    \n-        \u002F\u002F Sort out the position (must be done after showing)\n-        var triggerPos = this.$trigger.offset();\n-        this.$popover.offset({\n-            left: (triggerPos.left + (this.$trigger.outerWidth() \u002F 2)) - (this.$popover.outerWidth() \u002F 2),\n-            top: triggerPos.top + this.$trigger.outerHeight() + 10  \n-            \u002F\u002F the final 10 above allows room for the arrow above it\n-        });\n-    \n-        \u002F\u002F Check and reposition if out of the viewport\n-        var positionXCorrection = this._repositionForViewportSides();\n-    \n-        \u002F\u002F Set the position of the arrow elements\n-        this._setArrowPosition(positionXCorrection);\n-        \n-        \u002F\u002F Call the callback\n-        this.options.onShow.call(this.$trigger, this.$popover);\n-    }\n-    \n-    GPopover.prototype.hide = function() {\n-        \u002F\u002F Hide the popover\n-        this.$popover.fadeOut(this.options.fadeOutDuration);\n-        \n-        \u002F\u002F Call the callback\n-        this.options.onHide.call(this.$trigger, this.$popover);\n-    }\n-    \n-    GPopover.prototype._addArrowElements = function() {\n-        this.$arrow = $('\u003Cdiv class=\"gpopover-arrow\">\u003C\u002Fdiv>');\n-        this.$arrowShadow = $('\u003Cdiv class=\"gpopover-arrow-shadow\">\u003C\u002Fdiv>');\n-        \n-        this.$popover.append(this.$arrow);\n-        this.$popover.append(this.$arrowShadow);\n-    }\n-    \n-    GPopover.prototype._preventHideClickPropagation = function() {\n-        \u002F* Prevent clicks within the popover from being propagated \n-           to the document (and thus stop the popover from being \n-           hidden) *\u002F\n-        this.$popover.click(function(e) { e.stopPropagation(); });\n-    }\n-    \n-    GPopover.prototype._repositionForViewportSides = function() {\n-        var popoverOffsetLeft = this.$popover.offset().left,\n-            positionXCorrection = 0,\n-            $window = $(window);\n-        \n-        \u002F\u002F Right edge\n-        if (popoverOffsetLeft + this.$popover.outerWidth() + this.options.viewportSideMargin > $window.width()) {\n-            var rightEdgeCorrection = -((popoverOffsetLeft + this.$popover.outerWidth() + this.options.viewportSideMargin) - $window.width());\n-            popoverOffsetLeft = popoverOffsetLeft + rightEdgeCorrection\n-        \n-            positionXCorrection = rightEdgeCorrection;\n-        }\n-        \n-        \u002F\u002F Left edge\n-        if (popoverOffsetLeft \u003C this.options.viewportSideMargin) {\n-            var leftEdgeCorrection = this.options.viewportSideMargin - popoverOffsetLeft;\n-            popoverOffsetLeft = popoverOffsetLeft + leftEdgeCorrection\n-            \n-            positionXCorrection += leftEdgeCorrection;\n-        }\n-        \n-        \u002F\u002F Reposition the popover element if necessary\n-        if (positionXCorrection !== 0) {\n-            this.$popover.offset({ left: popoverOffsetLeft });\n-        }\n-        \n-        return positionXCorrection;\n-    }\n-    \n-    GPopover.prototype._setArrowPosition = function(positionXCorrection) {\n-        var leftPosition = (this.$popover.outerWidth() \u002F 2) - (this.$arrow.outerWidth() \u002F 2) - positionXCorrection;\n-        \n-        this.$arrow.css({ top: -7, left: leftPosition });\n-        this.$arrowShadow.css({ top: -8, left: leftPosition });\n-    }\n-    \n-    $.fn.gpopover = function(option) {\n-        return this.each(function(){\n-            var $this = $(this),\n-                data = $this.data('gpopover'),\n-                options = (typeof option == 'object' && option);\n-                \n-            \u002F\u002F Initialise if not already done\n-            if (!data) {\n-                data = new GPopover(this, options);\n-                $this.data('gpopover', data);\n-            }\n-            \n-            \u002F\u002F If the option parameter was a string, trigger the named function\n-            if (typeof option == 'string') data[option]();\n-        });\n-        \n-    };\n-    \n-    \u002F\u002F Default settings\n-    $.fn.gpopover.defaults = {\n-        width: 250,             \u002F\u002F Width of the popover\n-        fadeInDuration: 65,     \u002F\u002F Duration of popover fade-in animation\n-        fadeOutDuration: 65,    \u002F\u002F Duration of popover fade-out animation\n-        viewportSideMargin: 10, \u002F\u002F Space to leave the side if out the viewport\n-        preventHide: false,     \u002F\u002F Prevent hide when clicking within popover\n-        \n-        onShow: function() {},  \u002F\u002F Called upon showing the popover\n-        onHide: function() {}   \u002F\u002F Called upon hiding the popover\n-    };\n-    \n-})(jQuery);\n+\u002F*\r\n+ * jquery-gpopover\r\n+ * http:\u002F\u002Fgithub.com\u002Fmarkembling\u002Fjquery-gpopover\r\n+ *\r\n+ * A simple jQuery plugin for creating popover elements similar to Google's \r\n+ * new 'apps' launcher\u002Fswitcher.\r\n+ *\r\n+ * Copyright (c) 2013 Mark Embling (markembling.info)\r\n+ * Licensed under the BSD (3 clause) license.\r\n+ *\u002F\r\n+\r\n+;(function($){\r\n+    \r\n+    var GPopover = function(element, options) {\r\n+        this.options = null;\r\n+        this.$trigger = null;\r\n+        this.$popover = null;\r\n+        \r\n+        this.init(element, options);\r\n+    }\r\n+    \r\n+    GPopover.prototype.init = function(element, options) {\r\n+        var that = this;\r\n+        \r\n+        this.options = $.extend({}, $.fn.gpopover.defaults, options);\r\n+        \r\n+        this.$trigger = $(element);\r\n+        this.$popover = $('#' + this.$trigger.data('popover'));\r\n+        \r\n+        this._addArrowElements();\r\n+        \r\n+        if (this.options.preventHide) {\r\n+            this._preventHideClickPropagation();\r\n+        }\r\n+        \r\n+        this.$trigger.click(function(e){\r\n+            if (! that.$popover.is(\":visible\")) {\r\n+                \u002F\u002F Trigger a click on the parent element (that can bubble up)\r\n+                $(this).parent().click();\r\n+                \r\n+                that.show();\r\n+                \r\n+                e.stopPropagation();\r\n+            }\r\n+            \r\n+            e.preventDefault();\r\n+        });\r\n+    }\r\n+    \r\n+    GPopover.prototype.show = function() {\r\n+        var that = this;\r\n+        \r\n+        \u002F\u002F Set width before showing\r\n+        this.$popover.width(this.options.width);\r\n+        \r\n+        \u002F\u002F Show the popover\r\n+        this.$popover.fadeIn(this.options.fadeInDuration);\r\n+        \r\n+        \u002F\u002F Set up hiding\r\n+        $(document).one('click.popoverHide', function() {\r\n+            \u002F\u002F _hidePopover($popover, settings);\r\n+            that.hide();\r\n+        });\r\n+    \r\n+        \u002F\u002F Sort out the position (must be done after showing)\r\n+        var triggerPos = this.$trigger.offset();\r\n+        this.$popover.offset({\r\n+            left: (triggerPos.left + (this.$trigger.outerWidth() \u002F 2)) - (this.$popover.outerWidth() \u002F 2),\r\n+            top: triggerPos.top + this.$trigger.outerHeight() + 10  \r\n+            \u002F\u002F the final 10 above allows room for the arrow above it\r\n+        });\r\n+    \r\n+        \u002F\u002F Check and reposition if out of the viewport\r\n+        var positionXCorrection = this._repositionForViewportSides();\r\n+    \r\n+        \u002F\u002F Set the position of the arrow elements\r\n+        this._setArrowPosition(positionXCorrection);\r\n+        \r\n+        \u002F\u002F Call the callback\r\n+        this.options.onShow.call(this.$trigger, this.$popover);\r\n+    }\r\n+    \r\n+    GPopover.prototype.hide = function() {\r\n+        \u002F\u002F Hide the popover\r\n+        this.$popover.fadeOut(this.options.fadeOutDuration);\r\n+        \r\n+        \u002F\u002F Call the callback\r\n+        this.options.onHide.call(this.$trigger, this.$popover);\r\n+    }\r\n+    \r\n+    GPopover.prototype._addArrowElements = function() {\r\n+        this.$arrow = $('\u003Cdiv class=\"gpopover-arrow\">\u003C\u002Fdiv>');\r\n+        this.$arrowShadow = $('\u003Cdiv class=\"gpopover-arrow-shadow\">\u003C\u002Fdiv>');\r\n+        \r\n+        this.$popover.append(this.$arrow);\r\n+        this.$popover.append(this.$arrowShadow);\r\n+    }\r\n+    \r\n+    GPopover.prototype._preventHideClickPropagation = function() {\r\n+        \u002F* Prevent clicks within the popover from being propagated \r\n+           to the document (and thus stop the popover from being \r\n+           hidden) *\u002F\r\n+        this.$popover.click(function(e) { e.stopPropagation(); });\r\n+    }\r\n+    \r\n+    GPopover.prototype._repositionForViewportSides = function() {\r\n+        var popoverOffsetLeft = this.$popover.offset().left,\r\n+            positionXCorrection = 0,\r\n+            $window = $(window);\r\n+        \r\n+        \u002F\u002F Right edge\r\n+        if (popoverOffsetLeft + this.$popover.outerWidth() + this.options.viewportSideMargin > $window.width()) {\r\n+            var rightEdgeCorrection = -((popoverOffsetLeft + this.$popover.outerWidth() + this.options.viewportSideMargin) - $window.width());\r\n+            popoverOffsetLeft = popoverOffsetLeft + rightEdgeCorrection\r\n+        \r\n+            positionXCorrection = rightEdgeCorrection;\r\n+        }\r\n+        \r\n+        \u002F\u002F Left edge\r\n+        if (popoverOffsetLeft \u003C this.options.viewportSideMargin) {\r\n+            var leftEdgeCorrection = this.options.viewportSideMargin - popoverOffsetLeft;\r\n+            popoverOffsetLeft = popoverOffsetLeft + leftEdgeCorrection\r\n+            \r\n+            positionXCorrection += leftEdgeCorrection;\r\n+        }\r\n+        \r\n+        \u002F\u002F Reposition the popover element if necessary\r\n+        if (positionXCorrection !== 0) {\r\n+            this.$popover.offset({ left: popoverOffsetLeft });\r\n+        }\r\n+        \r\n+        return positionXCorrection;\r\n+    }\r\n+    \r\n+    GPopover.prototype._setArrowPosition = function(positionXCorrection) {\r\n+        var leftPosition = (this.$popover.outerWidth() \u002F 2) - (this.$arrow.outerWidth() \u002F 2) - positionXCorrection;\r\n+        \r\n+        this.$arrow.css({ top: -7, left: leftPosition });\r\n+        this.$arrowShadow.css({ top: -8, left: leftPosition });\r\n+    }\r\n+    \r\n+    $.fn.gpopover = function(option) {\r\n+        return this.each(function(){\r\n+            var $this = $(this),\r\n+                data = $this.data('gpopover'),\r\n+                options = (typeof option == 'object' && option);\r\n+                \r\n+            \u002F\u002F Initialise if not already done\r\n+            if (!data) {\r\n+                data = new GPopover(this, options);\r\n+                $this.data('gpopover', data);\r\n+            }\r\n+            \r\n+            \u002F\u002F If the option parameter was a string, trigger the named function\r\n+            if (typeof option == 'string') data[option]();\r\n+        });\r\n+        \r\n+    };\r\n+    \r\n+    \u002F\u002F Default settings\r\n+    $.fn.gpopover.defaults = {\r\n+        width: 250,             \u002F\u002F Width of the popover\r\n+        fadeInDuration: 65,     \u002F\u002F Duration of popover fade-in animation\r\n+        fadeOutDuration: 65,    \u002F\u002F Duration of popover fade-out animation\r\n+        viewportSideMargin: 10, \u002F\u002F Space to leave the side if out the viewport\r\n+        preventHide: false,     \u002F\u002F Prevent hide when clicking within popover\r\n+        \r\n+        onShow: function() {},  \u002F\u002F Called upon showing the popover\r\n+        onHide: function() {}   \u002F\u002F Called upon hiding the popover\r\n+    };\r\n+    \r\n+})(jQuery);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fgpopover\u002FLICENSE \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fgpopover\u002FLICENSE\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fgpopover\u002FLICENSE\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fgpopover\u002FLICENSE\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,27 +1,27 @@\n-Copyright (c) 2013-2019, Mark Embling\n-All rights reserved.\n-\n-Redistribution and use in source and binary forms, with or without modification,\n-are permitted provided that the following conditions are met:\n-\n-* Redistributions of source code must retain the above copyright notice, this\n-  list of conditions and the following disclaimer.\n-\n-* Redistributions in binary form must reproduce the above copyright notice, this\n-  list of conditions and the following disclaimer in the documentation and\u002For\n-  other materials provided with the distribution.\n-\n-* Neither the name of the {organization} nor the names of its\n-  contributors may be used to endorse or promote products derived from\n-  this software without specific prior written permission.\n-\n-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\n-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+Copyright (c) 2013-2019, Mark Embling\r\n+All rights reserved.\r\n+\r\n+Redistribution and use in source and binary forms, with or without modification,\r\n+are permitted provided that the following conditions are met:\r\n+\r\n+* Redistributions of source code must retain the above copyright notice, this\r\n+  list of conditions and the following disclaimer.\r\n+\r\n+* Redistributions in binary form must reproduce the above copyright notice, this\r\n+  list of conditions and the following disclaimer in the documentation and\u002For\r\n+  other materials provided with the distribution.\r\n+\r\n+* Neither the name of the {organization} nor the names of its\r\n+  contributors may be used to endorse or promote products derived from\r\n+  this software without specific prior written permission.\r\n+\r\n+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\r\n+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r\n+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r\n+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\r\n+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r\n+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r\n+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\r\n+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r\n+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fgpopover\u002FREADME.md \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fgpopover\u002FREADME.md\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fgpopover\u002FREADME.md\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fgpopover\u002FREADME.md\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,58 +1,58 @@\n-jquery-gpopover\n-===============\n-\n-A simple jQuery plugin for creating popover elements similar to Google's new 'apps' launcher\u002Fswitcher.\n-\n-## Usage\n-\n-Create a trigger element on your page (for example, a link or a button), and set the `data-popover` attribute to the ID of the element you wish to pop over.\n-\n-    \u003Cbutton id=\"my-trigger\" data-popover=\"my-popover\">Click Me\u003C\u002Fbutton>\n-    \n-Create the popover content element somewhere in your document. You may place this wherever you wish in the document (for example, at the end or after your trigger element). Simply make sure the ID matches that which your trigger has, and give it the class of `gpopover` to make sure it is styled correctly and hidden initially.\n-\n-    \u003Cdiv id=\"my-popover\" class=\"gpopover\">\n-        This is where your popover content goes.\n-    \u003C\u002Fdiv>\n-    \n-Initialise the plugin on your trigger element. That's it.\n-\n-    $('#my-trigger').gpopover();\n-\n-You can also trigger a show or hide through code (i.e. without the user clicking), by invoking the show or hide methods.:\n-\n-    $('#my-trigger').gpopover('show');\n-    $('#my-trigger').gpopover('hide');\n-\n-This is normally best done after initialising your popovers as above, but if it hasn't been done, it will do so using default options before then acting.\n-    \n-## Demo\n-\n-Want to see what the popovers look like? Check out the [simple example](http:\u002F\u002Fmarkembling.github.io\u002Fjquery-gpopover\u002F).\n-\n-## Customising the Plugin\n-\n-### Options\n-\n-The plugin has a few options which can be passed to it:\n-\n-| Property | Default | Description\n-| -------- | ------- | -----------\n-| `width`  | 250     | The width of the popover element (pixels) \n-| `fadeInDuration` | 65 | Duration of popover fade-in animation (ms)\n-| `fadeOutDuration` | 65 | Duration of popover fade-out animation (ms)\n-| `viewportSideMargin` | 10 | Space to leave at the side when against the viewport edge (pixels)\n-| `preventHide` | `false` | Prevent hiding when clicking within popover (true\u002Ffalse)\n-| `onShow` | (none) | Callback to be run when the popover is shown. `this` is the trigger element and the first argument passed to the function is the popover element (both jQuery-wrapped).\n-| `onHide` | (none) | Callback to be run when the popover is hidden. Same as `onShow.\n-\n-### Styling\n-\n-The default styling is visually similar to Google's pop-out apps menu as I like the clean lines and look. However the appearance can be modified by changing\u002Foverriding the styles in the `jquery.gpopover.css` stylesheet.\n-\n-The main popover element has the `gpopover` class, and the arrow is made up of two elements with the classes `gpopover-arrow` and `gpopover-arrow-shadow`. The latter is positioned 1 pixel higher to give the shadow\u002Foutline effect.\n-\n-## License\n-\n-Licensed under the BSD (3 clause) license.  \n-Copyright (c) 2013-2019 [Mark Embling](markembling.info).\n+jquery-gpopover\r\n+===============\r\n+\r\n+A simple jQuery plugin for creating popover elements similar to Google's new 'apps' launcher\u002Fswitcher.\r\n+\r\n+## Usage\r\n+\r\n+Create a trigger element on your page (for example, a link or a button), and set the `data-popover` attribute to the ID of the element you wish to pop over.\r\n+\r\n+    \u003Cbutton id=\"my-trigger\" data-popover=\"my-popover\">Click Me\u003C\u002Fbutton>\r\n+    \r\n+Create the popover content element somewhere in your document. You may place this wherever you wish in the document (for example, at the end or after your trigger element). Simply make sure the ID matches that which your trigger has, and give it the class of `gpopover` to make sure it is styled correctly and hidden initially.\r\n+\r\n+    \u003Cdiv id=\"my-popover\" class=\"gpopover\">\r\n+        This is where your popover content goes.\r\n+    \u003C\u002Fdiv>\r\n+    \r\n+Initialise the plugin on your trigger element. That's it.\r\n+\r\n+    $('#my-trigger').gpopover();\r\n+\r\n+You can also trigger a show or hide through code (i.e. without the user clicking), by invoking the show or hide methods.:\r\n+\r\n+    $('#my-trigger').gpopover('show');\r\n+    $('#my-trigger').gpopover('hide');\r\n+\r\n+This is normally best done after initialising your popovers as above, but if it hasn't been done, it will do so using default options before then acting.\r\n+    \r\n+## Demo\r\n+\r\n+Want to see what the popovers look like? Check out the [simple example](http:\u002F\u002Fmarkembling.github.io\u002Fjquery-gpopover\u002F).\r\n+\r\n+## Customising the Plugin\r\n+\r\n+### Options\r\n+\r\n+The plugin has a few options which can be passed to it:\r\n+\r\n+| Property | Default | Description\r\n+| -------- | ------- | -----------\r\n+| `width`  | 250     | The width of the popover element (pixels) \r\n+| `fadeInDuration` | 65 | Duration of popover fade-in animation (ms)\r\n+| `fadeOutDuration` | 65 | Duration of popover fade-out animation (ms)\r\n+| `viewportSideMargin` | 10 | Space to leave at the side when against the viewport edge (pixels)\r\n+| `preventHide` | `false` | Prevent hiding when clicking within popover (true\u002Ffalse)\r\n+| `onShow` | (none) | Callback to be run when the popover is shown. `this` is the trigger element and the first argument passed to the function is the popover element (both jQuery-wrapped).\r\n+| `onHide` | (none) | Callback to be run when the popover is hidden. Same as `onShow.\r\n+\r\n+### Styling\r\n+\r\n+The default styling is visually similar to Google's pop-out apps menu as I like the clean lines and look. However the appearance can be modified by changing\u002Foverriding the styles in the `jquery.gpopover.css` stylesheet.\r\n+\r\n+The main popover element has the `gpopover` class, and the arrow is made up of two elements with the classes `gpopover-arrow` and `gpopover-arrow-shadow`. The latter is positioned 1 pixel higher to give the shadow\u002Foutline effect.\r\n+\r\n+## License\r\n+\r\n+Licensed under the BSD (3 clause) license.  \r\n+Copyright (c) 2013-2019 [Mark Embling](markembling.info).\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fselect2\u002Fselect2.min.css \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fselect2\u002Fselect2.min.css\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fselect2\u002Fselect2.min.css\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fselect2\u002Fselect2.min.css\t2026-06-18 09:37:48.000000000 +0000\n@@ -1 +1 @@\n-.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline;list-style:none;padding:0}.select2-container .select2-selection--multiple .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;margin-left:5px;padding:0;max-width:100%;resize:none;height:18px;vertical-align:bottom;font-family:sans-serif;overflow:hidden;word-break:keep-all}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option--selectable{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:26px;margin-right:20px;padding-right:0px}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;padding-bottom:5px;padding-right:5px;position:relative}.select2-container--default .select2-selection--multiple.select2-selection--clearable{padding-right:25px}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;font-weight:bold;height:20px;margin-right:10px;margin-top:5px;position:absolute;right:0;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:inline-block;margin-left:5px;margin-top:5px;padding:0;padding-left:20px;position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.select2-container--default .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-right:1px solid #aaa;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#999;cursor:pointer;font-size:1em;font-weight:bold;padding:0 4px;position:absolute;left:0;top:0}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover,.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus{background-color:#f1f1f1;color:#333;outline:none}.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__remove{border-left:1px solid #aaa;border-right:none;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__clear{float:left;margin-left:10px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--group{padding:0}.select2-container--default .select2-results__option--disabled{color:#999}.select2-container--default .select2-results__option--selected{background-color:#ddd}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:26px;margin-right:20px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir=\"rtl\"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir=\"rtl\"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0;padding-bottom:5px;padding-right:5px}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;display:inline-block;margin-left:5px;margin-top:5px;padding:0}.select2-container--classic .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#888;cursor:pointer;font-size:1em;font-weight:bold;padding:0 4px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555;outline:none}.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__remove{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option--group{padding:0}.select2-container--classic .select2-results__option--disabled{color:grey}.select2-container--classic .select2-results__option--highlighted.select2-results__option--selectable{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}\n+.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline;list-style:none;padding:0}.select2-container .select2-selection--multiple .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;margin-left:5px;padding:0;max-width:100%;resize:none;height:18px;vertical-align:bottom;font-family:sans-serif;overflow:hidden;word-break:keep-all}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option--selectable{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:26px;margin-right:20px;padding-right:0px}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;padding-bottom:5px;padding-right:5px;position:relative}.select2-container--default .select2-selection--multiple.select2-selection--clearable{padding-right:25px}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;font-weight:bold;height:20px;margin-right:10px;margin-top:5px;position:absolute;right:0;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:inline-block;margin-left:5px;margin-top:5px;padding:0;padding-left:20px;position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.select2-container--default .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-right:1px solid #aaa;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#999;cursor:pointer;font-size:1em;font-weight:bold;padding:0 4px;position:absolute;left:0;top:0}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover,.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus{background-color:#f1f1f1;color:#333;outline:none}.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__remove{border-left:1px solid #aaa;border-right:none;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__clear{float:left;margin-left:10px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--group{padding:0}.select2-container--default .select2-results__option--disabled{color:#999}.select2-container--default .select2-results__option--selected{background-color:#ddd}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:26px;margin-right:20px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir=\"rtl\"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir=\"rtl\"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0;padding-bottom:5px;padding-right:5px}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;display:inline-block;margin-left:5px;margin-top:5px;padding:0}.select2-container--classic .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#888;cursor:pointer;font-size:1em;font-weight:bold;padding:0 4px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555;outline:none}.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__remove{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option--group{padding:0}.select2-container--classic .select2-results__option--disabled{color:grey}.select2-container--classic .select2-results__option--highlighted.select2-results__option--selectable{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fselect2\u002Fselect2.min.js \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fselect2\u002Fselect2.min.js\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fasset\u002Flib\u002Fselect2\u002Fselect2.min.js\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fasset\u002Flib\u002Fselect2\u002Fselect2.min.js\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,2 +1,2 @@\n-\u002F*! Select2 4.1.0-rc.0 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\n+\u002F*! Select2 4.1.0-rc.0 | https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u002Fblob\u002Fmaster\u002FLICENSE.md *\u002F\r\n !function(n){\"function\"==typeof define&&define.amd?define([\"jquery\"],n):\"object\"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t=\"undefined\"!=typeof window?require(\"jquery\"):require(\"jquery\")(e)),n(t),t}:n(jQuery)}(function(t){var e,n,s,p,r,o,h,f,g,m,y,v,i,a,_,s=(t&&t.fn&&t.fn.select2&&t.fn.select2.amd&&(u=t.fn.select2.amd),u&&u.requirejs||(u?n=u:u={},g={},m={},y={},v={},i=Object.prototype.hasOwnProperty,a=[].slice,_=\u002F\\.js$\u002F,h=function(e,t){var n,s,i=c(e),r=i[0],t=t[1];return e=i[1],r&&(n=x(r=l(r,t))),r?e=n&&n.normalize?n.normalize(e,(s=t,function(e){return l(e,s)})):l(e,t):(r=(i=c(e=l(e,t)))[0],e=i[1],r&&(n=x(r))),{f:r?r+\"!\"+e:e,n:e,pr:r,p:n}},f={require:function(e){return w(e)},exports:function(e){var t=g[e];return void 0!==t?t:g[e]={}},module:function(e){return{id:e,uri:\"\",exports:g[e],config:(t=e,function(){return y&&y.config&&y.config[t]||{}})};var t}},r=function(e,t,n,s){var i,r,o,a,l,c=[],u=typeof n,d=A(s=s||e);if(\"undefined\"==u||\"function\"==u){for(t=!t.length&&n.length?[\"require\",\"exports\",\"module\"]:t,a=0;a\u003Ct.length;a+=1)if(\"require\"===(r=(o=h(t[a],d)).f))c[a]=f.require(e);else if(\"exports\"===r)c[a]=f.exports(e),l=!0;else if(\"module\"===r)i=c[a]=f.module(e);else if(b(g,r)||b(m,r)||b(v,r))c[a]=x(r);else{if(!o.p)throw new Error(e+\" missing \"+r);o.p.load(o.n,w(s,!0),function(t){return function(e){g[t]=e}}(r),{}),c[a]=g[r]}u=n?n.apply(g[e],c):void 0,e&&(i&&i.exports!==p&&i.exports!==g[e]?g[e]=i.exports:u===p&&l||(g[e]=u))}else e&&(g[e]=n)},e=n=o=function(e,t,n,s,i){if(\"string\"==typeof e)return f[e]?f[e](t):x(h(e,A(t)).f);if(!e.splice){if((y=e).deps&&o(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=p}return t=t||function(){},\"function\"==typeof n&&(n=s,s=i),s?r(p,e,t,n):setTimeout(function(){r(p,e,t,n)},4),o},o.config=function(e){return o(e)},e._defined=g,(s=function(e,t,n){if(\"string\"!=typeof e)throw new Error(\"See almond README: incorrect module build, no module name\");t.splice||(n=t,t=[]),b(g,e)||b(m,e)||(m[e]=[e,t,n])}).amd={jQuery:!0},u.requirejs=e,u.require=n,u.define=s),u.define(\"almond\",function(){}),u.define(\"jquery\",[],function(){var e=t||$;return null==e&&console&&console.error&&console.error(\"Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page.\"),e}),u.define(\"select2\u002Futils\",[\"jquery\"],function(r){var s={};function c(e){var t,n=e.prototype,s=[];for(t in n)\"function\"==typeof n[t]&&\"constructor\"!==t&&s.push(t);return s}s.Extend=function(e,t){var n,s={}.hasOwnProperty;function i(){this.constructor=e}for(n in t)s.call(t,n)&&(e[n]=t[n]);return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},s.Decorate=function(s,i){var e=c(i),t=c(s);function r(){var e=Array.prototype.unshift,t=i.prototype.constructor.length,n=s.prototype.constructor;0\u003Ct&&(e.call(arguments,s.prototype.constructor),n=i.prototype.constructor),n.apply(this,arguments)}i.displayName=s.displayName,r.prototype=new function(){this.constructor=r};for(var n=0;n\u003Ct.length;n++){var o=t[n];r.prototype[o]=s.prototype[o]}for(var a=0;a\u003Ce.length;a++){var l=e[a];r.prototype[l]=function(e){var t=function(){};e in r.prototype&&(t=r.prototype[e]);var n=i.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}(l)}return r};function e(){this.listeners={}}e.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},e.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),\"*\"in this.listeners&&this.invoke(this.listeners[\"*\"],arguments)},e.prototype.invoke=function(e,t){for(var n=0,s=e.length;n\u003Cs;n++)e[n].apply(this,t)},s.Observable=e,s.generateChars=function(e){for(var t=\"\",n=0;n\u003Ce;n++)t+=Math.floor(36*Math.random()).toString(36);return t},s.bind=function(e,t){return function(){e.apply(t,arguments)}},s._convertData=function(e){for(var t in e){var n=t.split(\"-\"),s=e;if(1!==n.length){for(var i=0;i\u003Cn.length;i++){var r=n[i];(r=r.substring(0,1).toLowerCase()+r.substring(1))in s||(s[r]={}),i==n.length-1&&(s[r]=e[t]),s=s[r]}delete e[t]}}return e},s.hasScroll=function(e,t){var n=r(t),s=t.style.overflowX,i=t.style.overflowY;return(s!==i||\"hidden\"!==i&&\"visible\"!==i)&&(\"scroll\"===s||\"scroll\"===i||(n.innerHeight()\u003Ct.scrollHeight||n.innerWidth()\u003Ct.scrollWidth))},s.escapeMarkup=function(e){var t={\"\\\\\":\"&#92;\",\"&\":\"&amp;\",\"\u003C\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\",\"\u002F\":\"&#47;\"};return\"string\"!=typeof e?e:String(e).replace(\u002F[&\u003C>\"'\\\u002F\\\\]\u002Fg,function(e){return t[e]})},s.__cache={};var n=0;return s.GetUniqueElementId=function(e){var t=e.getAttribute(\"data-select2-id\");return null!=t||(t=e.id?\"select2-data-\"+e.id:\"select2-data-\"+(++n).toString()+\"-\"+s.generateChars(4),e.setAttribute(\"data-select2-id\",t)),t},s.StoreData=function(e,t,n){e=s.GetUniqueElementId(e);s.__cache[e]||(s.__cache[e]={}),s.__cache[e][t]=n},s.GetData=function(e,t){var n=s.GetUniqueElementId(e);return t?s.__cache[n]&&null!=s.__cache[n][t]?s.__cache[n][t]:r(e).data(t):s.__cache[n]},s.RemoveData=function(e){var t=s.GetUniqueElementId(e);null!=s.__cache[t]&&delete s.__cache[t],e.removeAttribute(\"data-select2-id\")},s.copyNonInternalCssClasses=function(e,t){var n=(n=e.getAttribute(\"class\").trim().split(\u002F\\s+\u002F)).filter(function(e){return 0===e.indexOf(\"select2-\")}),t=(t=t.getAttribute(\"class\").trim().split(\u002F\\s+\u002F)).filter(function(e){return 0!==e.indexOf(\"select2-\")}),t=n.concat(t);e.setAttribute(\"class\",t.join(\" \"))},s}),u.define(\"select2\u002Fresults\",[\"jquery\",\".\u002Futils\"],function(d,p){function s(e,t,n){this.$element=e,this.data=n,this.options=t,s.__super__.constructor.call(this)}return p.Extend(s,p.Observable),s.prototype.render=function(){var e=d('\u003Cul class=\"select2-results__options\" role=\"listbox\">\u003C\u002Ful>');return this.options.get(\"multiple\")&&e.attr(\"aria-multiselectable\",\"true\"),this.$results=e},s.prototype.clear=function(){this.$results.empty()},s.prototype.displayMessage=function(e){var t=this.options.get(\"escapeMarkup\");this.clear(),this.hideLoading();var n=d('\u003Cli role=\"alert\" aria-live=\"assertive\" class=\"select2-results__option\">\u003C\u002Fli>'),s=this.options.get(\"translations\").get(e.message);n.append(t(s(e.args))),n[0].className+=\" select2-results__message\",this.$results.append(n)},s.prototype.hideMessages=function(){this.$results.find(\".select2-results__message\").remove()},s.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n\u003Ce.results.length;n++){var s=e.results[n],s=this.option(s);t.push(s)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger(\"results:message\",{message:\"noResults\"})},s.prototype.position=function(e,t){t.find(\".select2-results\").append(e)},s.prototype.sort=function(e){return this.options.get(\"sorter\")(e)},s.prototype.highlightFirstItem=function(){var e=this.$results.find(\".select2-results__option--selectable\"),t=e.filter(\".select2-results__option--selected\");(0\u003Ct.length?t:e).first().trigger(\"mouseenter\"),this.ensureHighlightVisible()},s.prototype.setClasses=function(){var t=this;this.data.current(function(e){var s=e.map(function(e){return e.id.toString()});t.$results.find(\".select2-results__option--selectable\").each(function(){var e=d(this),t=p.GetData(this,\"data\"),n=\"\"+t.id;null!=t.element&&t.element.selected||null==t.element&&-1\u003Cs.indexOf(n)?(this.classList.add(\"select2-results__option--selected\"),e.attr(\"aria-selected\",\"true\")):(this.classList.remove(\"select2-results__option--selected\"),e.attr(\"aria-selected\",\"false\"))})})},s.prototype.showLoading=function(e){this.hideLoading();e={disabled:!0,loading:!0,text:this.options.get(\"translations\").get(\"searching\")(e)},e=this.option(e);e.className+=\" loading-results\",this.$results.prepend(e)},s.prototype.hideLoading=function(){this.$results.find(\".loading-results\").remove()},s.prototype.option=function(e){var t=document.createElement(\"li\");t.classList.add(\"select2-results__option\"),t.classList.add(\"select2-results__option--selectable\");var n,s={role:\"option\"},i=window.Element.prototype.matches||window.Element.prototype.msMatchesSelector||window.Element.prototype.webkitMatchesSelector;for(n in(null!=e.element&&i.call(e.element,\":disabled\")||null==e.element&&e.disabled)&&(s[\"aria-disabled\"]=\"true\",t.classList.remove(\"select2-results__option--selectable\"),t.classList.add(\"select2-results__option--disabled\")),null==e.id&&t.classList.remove(\"select2-results__option--selectable\"),null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(s.role=\"group\",s[\"aria-label\"]=e.text,t.classList.remove(\"select2-results__option--selectable\"),t.classList.add(\"select2-results__option--group\")),s){var r=s[n];t.setAttribute(n,r)}if(e.children){var o=d(t),a=document.createElement(\"strong\");a.className=\"select2-results__group\",this.template(e,a);for(var l=[],c=0;c\u003Ce.children.length;c++){var u=e.children[c],u=this.option(u);l.push(u)}i=d(\"\u003Cul>\u003C\u002Ful>\",{class:\"select2-results__options select2-results__options--nested\",role:\"none\"});i.append(l),o.append(a),o.append(i)}else this.template(e,t);return p.StoreData(t,\"data\",e),t},s.prototype.bind=function(t,e){var i=this,n=t.id+\"-results\";this.$results.attr(\"id\",n),t.on(\"results:all\",function(e){i.clear(),i.append(e.data),t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on(\"results:append\",function(e){i.append(e.data),t.isOpen()&&i.setClasses()}),t.on(\"query\",function(e){i.hideMessages(),i.showLoading(e)}),t.on(\"select\",function(){t.isOpen()&&(i.setClasses(),i.options.get(\"scrollAfterSelect\")&&i.highlightFirstItem())}),t.on(\"unselect\",function(){t.isOpen()&&(i.setClasses(),i.options.get(\"scrollAfterSelect\")&&i.highlightFirstItem())}),t.on(\"open\",function(){i.$results.attr(\"aria-expanded\",\"true\"),i.$results.attr(\"aria-hidden\",\"false\"),i.setClasses(),i.ensureHighlightVisible()}),t.on(\"close\",function(){i.$results.attr(\"aria-expanded\",\"false\"),i.$results.attr(\"aria-hidden\",\"true\"),i.$results.removeAttr(\"aria-activedescendant\")}),t.on(\"results:toggle\",function(){var e=i.getHighlightedResults();0!==e.length&&e.trigger(\"mouseup\")}),t.on(\"results:select\",function(){var e,t=i.getHighlightedResults();0!==t.length&&(e=p.GetData(t[0],\"data\"),t.hasClass(\"select2-results__option--selected\")?i.trigger(\"close\",{}):i.trigger(\"select\",{data:e}))}),t.on(\"results:previous\",function(){var e,t=i.getHighlightedResults(),n=i.$results.find(\".select2-results__option--selectable\"),s=n.index(t);s\u003C=0||(e=s-1,0===t.length&&(e=0),(s=n.eq(e)).trigger(\"mouseenter\"),t=i.$results.offset().top,n=s.offset().top,s=i.$results.scrollTop()+(n-t),0===e?i.$results.scrollTop(0):n-t\u003C0&&i.$results.scrollTop(s))}),t.on(\"results:next\",function(){var e,t=i.getHighlightedResults(),n=i.$results.find(\".select2-results__option--selectable\"),s=n.index(t)+1;s>=n.length||((e=n.eq(s)).trigger(\"mouseenter\"),t=i.$results.offset().top+i.$results.outerHeight(!1),n=e.offset().top+e.outerHeight(!1),e=i.$results.scrollTop()+n-t,0===s?i.$results.scrollTop(0):t\u003Cn&&i.$results.scrollTop(e))}),t.on(\"results:focus\",function(e){e.element[0].classList.add(\"select2-results__option--highlighted\"),e.element[0].setAttribute(\"aria-selected\",\"true\")}),t.on(\"results:message\",function(e){i.displayMessage(e)}),d.fn.mousewheel&&this.$results.on(\"mousewheel\",function(e){var t=i.$results.scrollTop(),n=i.$results.get(0).scrollHeight-t+e.deltaY,t=0\u003Ce.deltaY&&t-e.deltaY\u003C=0,n=e.deltaY\u003C0&&n\u003C=i.$results.height();t?(i.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):n&&(i.$results.scrollTop(i.$results.get(0).scrollHeight-i.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on(\"mouseup\",\".select2-results__option--selectable\",function(e){var t=d(this),n=p.GetData(this,\"data\");t.hasClass(\"select2-results__option--selected\")?i.options.get(\"multiple\")?i.trigger(\"unselect\",{originalEvent:e,data:n}):i.trigger(\"close\",{}):i.trigger(\"select\",{originalEvent:e,data:n})}),this.$results.on(\"mouseenter\",\".select2-results__option--selectable\",function(e){var t=p.GetData(this,\"data\");i.getHighlightedResults().removeClass(\"select2-results__option--highlighted\").attr(\"aria-selected\",\"false\"),i.trigger(\"results:focus\",{data:t,element:d(this)})})},s.prototype.getHighlightedResults=function(){return this.$results.find(\".select2-results__option--highlighted\")},s.prototype.destroy=function(){this.$results.remove()},s.prototype.ensureHighlightVisible=function(){var e,t,n,s,i=this.getHighlightedResults();0!==i.length&&(e=this.$results.find(\".select2-results__option--selectable\").index(i),s=this.$results.offset().top,t=i.offset().top,n=this.$results.scrollTop()+(t-s),s=t-s,n-=2*i.outerHeight(!1),e\u003C=2?this.$results.scrollTop(0):(s>this.$results.outerHeight()||s\u003C0)&&this.$results.scrollTop(n))},s.prototype.template=function(e,t){var n=this.options.get(\"templateResult\"),s=this.options.get(\"escapeMarkup\"),e=n(e,t);null==e?t.style.display=\"none\":\"string\"==typeof e?t.innerHTML=s(e):d(t).append(e)},s}),u.define(\"select2\u002Fkeys\",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),u.define(\"select2\u002Fselection\u002Fbase\",[\"jquery\",\"..\u002Futils\",\"..\u002Fkeys\"],function(n,s,i){function r(e,t){this.$element=e,this.options=t,r.__super__.constructor.call(this)}return s.Extend(r,s.Observable),r.prototype.render=function(){var e=n('\u003Cspan class=\"select2-selection\" role=\"combobox\"  aria-haspopup=\"true\" aria-expanded=\"false\">\u003C\u002Fspan>');return this._tabindex=0,null!=s.GetData(this.$element[0],\"old-tabindex\")?this._tabindex=s.GetData(this.$element[0],\"old-tabindex\"):null!=this.$element.attr(\"tabindex\")&&(this._tabindex=this.$element.attr(\"tabindex\")),e.attr(\"title\",this.$element.attr(\"title\")),e.attr(\"tabindex\",this._tabindex),e.attr(\"aria-disabled\",\"false\"),this.$selection=e},r.prototype.bind=function(e,t){var n=this,s=e.id+\"-results\";this.container=e,this.$selection.on(\"focus\",function(e){n.trigger(\"focus\",e)}),this.$selection.on(\"blur\",function(e){n._handleBlur(e)}),this.$selection.on(\"keydown\",function(e){n.trigger(\"keypress\",e),e.which===i.SPACE&&e.preventDefault()}),e.on(\"results:focus\",function(e){n.$selection.attr(\"aria-activedescendant\",e.data._resultId)}),e.on(\"selection:update\",function(e){n.update(e.data)}),e.on(\"open\",function(){n.$selection.attr(\"aria-expanded\",\"true\"),n.$selection.attr(\"aria-owns\",s),n._attachCloseHandler(e)}),e.on(\"close\",function(){n.$selection.attr(\"aria-expanded\",\"false\"),n.$selection.removeAttr(\"aria-activedescendant\"),n.$selection.removeAttr(\"aria-owns\"),n.$selection.trigger(\"focus\"),n._detachCloseHandler(e)}),e.on(\"enable\",function(){n.$selection.attr(\"tabindex\",n._tabindex),n.$selection.attr(\"aria-disabled\",\"false\")}),e.on(\"disable\",function(){n.$selection.attr(\"tabindex\",\"-1\"),n.$selection.attr(\"aria-disabled\",\"true\")})},r.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger(\"blur\",e)},1)},r.prototype._attachCloseHandler=function(e){n(document.body).on(\"mousedown.select2.\"+e.id,function(e){var t=n(e.target).closest(\".select2\");n(\".select2.select2-container--open\").each(function(){this!=t[0]&&s.GetData(this,\"element\").select2(\"close\")})})},r.prototype._detachCloseHandler=function(e){n(document.body).off(\"mousedown.select2.\"+e.id)},r.prototype.position=function(e,t){t.find(\".selection\").append(e)},r.prototype.destroy=function(){this._detachCloseHandler(this.container)},r.prototype.update=function(e){throw new Error(\"The `update` method must be defined in child classes.\")},r.prototype.isEnabled=function(){return!this.isDisabled()},r.prototype.isDisabled=function(){return this.options.get(\"disabled\")},r}),u.define(\"select2\u002Fselection\u002Fsingle\",[\"jquery\",\".\u002Fbase\",\"..\u002Futils\",\"..\u002Fkeys\"],function(e,t,n,s){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e[0].classList.add(\"select2-selection--single\"),e.html('\u003Cspan class=\"select2-selection__rendered\">\u003C\u002Fspan>\u003Cspan class=\"select2-selection__arrow\" role=\"presentation\">\u003Cb role=\"presentation\">\u003C\u002Fb>\u003C\u002Fspan>'),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var s=t.id+\"-container\";this.$selection.find(\".select2-selection__rendered\").attr(\"id\",s).attr(\"role\",\"textbox\").attr(\"aria-readonly\",\"true\"),this.$selection.attr(\"aria-labelledby\",s),this.$selection.attr(\"aria-controls\",s),this.$selection.on(\"mousedown\",function(e){1===e.which&&n.trigger(\"toggle\",{originalEvent:e})}),this.$selection.on(\"focus\",function(e){}),this.$selection.on(\"blur\",function(e){}),t.on(\"focus\",function(e){t.isOpen()||n.$selection.trigger(\"focus\")})},i.prototype.clear=function(){var e=this.$selection.find(\".select2-selection__rendered\");e.empty(),e.removeAttr(\"title\")},i.prototype.display=function(e,t){var n=this.options.get(\"templateSelection\");return this.options.get(\"escapeMarkup\")(n(e,t))},i.prototype.selectionContainer=function(){return e(\"\u003Cspan>\u003C\u002Fspan>\")},i.prototype.update=function(e){var t,n;0!==e.length?(n=e[0],t=this.$selection.find(\".select2-selection__rendered\"),e=this.display(n,t),t.empty().append(e),(n=n.title||n.text)?t.attr(\"title\",n):t.removeAttr(\"title\")):this.clear()},i}),u.define(\"select2\u002Fselection\u002Fmultiple\",[\"jquery\",\".\u002Fbase\",\"..\u002Futils\"],function(i,e,c){function r(e,t){r.__super__.constructor.apply(this,arguments)}return c.Extend(r,e),r.prototype.render=function(){var e=r.__super__.render.call(this);return e[0].classList.add(\"select2-selection--multiple\"),e.html('\u003Cul class=\"select2-selection__rendered\">\u003C\u002Ful>'),e},r.prototype.bind=function(e,t){var n=this;r.__super__.bind.apply(this,arguments);var s=e.id+\"-container\";this.$selection.find(\".select2-selection__rendered\").attr(\"id\",s),this.$selection.on(\"click\",function(e){n.trigger(\"toggle\",{originalEvent:e})}),this.$selection.on(\"click\",\".select2-selection__choice__remove\",function(e){var t;n.isDisabled()||(t=i(this).parent(),t=c.GetData(t[0],\"data\"),n.trigger(\"unselect\",{originalEvent:e,data:t}))}),this.$selection.on(\"keydown\",\".select2-selection__choice__remove\",function(e){n.isDisabled()||e.stopPropagation()})},r.prototype.clear=function(){var e=this.$selection.find(\".select2-selection__rendered\");e.empty(),e.removeAttr(\"title\")},r.prototype.display=function(e,t){var n=this.options.get(\"templateSelection\");return this.options.get(\"escapeMarkup\")(n(e,t))},r.prototype.selectionContainer=function(){return i('\u003Cli class=\"select2-selection__choice\">\u003Cbutton type=\"button\" class=\"select2-selection__choice__remove\" tabindex=\"-1\">\u003Cspan aria-hidden=\"true\">&times;\u003C\u002Fspan>\u003C\u002Fbutton>\u003Cspan class=\"select2-selection__choice__display\">\u003C\u002Fspan>\u003C\u002Fli>')},r.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=this.$selection.find(\".select2-selection__rendered\").attr(\"id\")+\"-choice-\",s=0;s\u003Ce.length;s++){var i=e[s],r=this.selectionContainer(),o=this.display(i,r),a=n+c.generateChars(4)+\"-\";i.id?a+=i.id:a+=c.generateChars(4),r.find(\".select2-selection__choice__display\").append(o).attr(\"id\",a);var l=i.title||i.text;l&&r.attr(\"title\",l);o=this.options.get(\"translations\").get(\"removeItem\"),l=r.find(\".select2-selection__choice__remove\");l.attr(\"title\",o()),l.attr(\"aria-label\",o()),l.attr(\"aria-describedby\",a),c.StoreData(r[0],\"data\",i),t.push(r)}this.$selection.find(\".select2-selection__rendered\").append(t)}},r}),u.define(\"select2\u002Fselection\u002Fplaceholder\",[],function(){function e(e,t,n){this.placeholder=this.normalizePlaceholder(n.get(\"placeholder\")),e.call(this,t,n)}return e.prototype.normalizePlaceholder=function(e,t){return\"string\"==typeof t&&(t={id:\"\",text:t}),t},e.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();n.html(this.display(t)),n[0].classList.add(\"select2-selection__placeholder\"),n[0].classList.remove(\"select2-selection__choice\");t=t.title||t.text||n.text();return this.$selection.find(\".select2-selection__rendered\").attr(\"title\",t),n},e.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1\u003Ct.length||n)return e.call(this,t);this.clear();t=this.createPlaceholder(this.placeholder);this.$selection.find(\".select2-selection__rendered\").append(t)},e}),u.define(\"select2\u002Fselection\u002FallowClear\",[\"jquery\",\"..\u002Fkeys\",\"..\u002Futils\"],function(i,s,a){function e(){}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),null==this.placeholder&&this.options.get(\"debug\")&&window.console&&console.error&&console.error(\"Select2: The `allowClear` option should be used in combination with the `placeholder` option.\"),this.$selection.on(\"mousedown\",\".select2-selection__clear\",function(e){s._handleClear(e)}),t.on(\"keypress\",function(e){s._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.isDisabled()){var n=this.$selection.find(\".select2-selection__clear\");if(0!==n.length){t.stopPropagation();var s=a.GetData(n[0],\"data\"),i=this.$element.val();this.$element.val(this.placeholder.id);var r={data:s};if(this.trigger(\"clear\",r),r.prevented)this.$element.val(i);else{for(var o=0;o\u003Cs.length;o++)if(r={data:s[o]},this.trigger(\"unselect\",r),r.prevented)return void this.$element.val(i);this.$element.trigger(\"input\").trigger(\"change\"),this.trigger(\"toggle\",{})}}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=s.DELETE&&t.which!=s.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){var n,s;e.call(this,t),this.$selection.find(\".select2-selection__clear\").remove(),this.$selection[0].classList.remove(\"select2-selection--clearable\"),0\u003Cthis.$selection.find(\".select2-selection__placeholder\").length||0===t.length||(n=this.$selection.find(\".select2-selection__rendered\").attr(\"id\"),s=this.options.get(\"translations\").get(\"removeAllItems\"),(e=i('\u003Cbutton type=\"button\" class=\"select2-selection__clear\" tabindex=\"-1\">\u003Cspan aria-hidden=\"true\">&times;\u003C\u002Fspan>\u003C\u002Fbutton>')).attr(\"title\",s()),e.attr(\"aria-label\",s()),e.attr(\"aria-describedby\",n),a.StoreData(e[0],\"data\",t),this.$selection.prepend(e),this.$selection[0].classList.add(\"select2-selection--clearable\"))},e}),u.define(\"select2\u002Fselection\u002Fsearch\",[\"jquery\",\"..\u002Futils\",\"..\u002Fkeys\"],function(s,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=this.options.get(\"translations\").get(\"search\"),n=s('\u003Cspan class=\"select2-search select2-search--inline\">\u003Ctextarea class=\"select2-search__field\" type=\"search\" tabindex=\"-1\" autocorrect=\"off\" autocapitalize=\"none\" spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" >\u003C\u002Ftextarea>\u003C\u002Fspan>');this.$searchContainer=n,this.$search=n.find(\"textarea\"),this.$search.prop(\"autocomplete\",this.options.get(\"autocomplete\")),this.$search.attr(\"aria-label\",t());e=e.call(this);return this._transferTabIndex(),e.append(this.$searchContainer),e},e.prototype.bind=function(e,t,n){var s=this,i=t.id+\"-results\",r=t.id+\"-container\";e.call(this,t,n),s.$search.attr(\"aria-describedby\",r),t.on(\"open\",function(){s.$search.attr(\"aria-controls\",i),s.$search.trigger(\"focus\")}),t.on(\"close\",function(){s.$search.val(\"\"),s.resizeSearch(),s.$search.removeAttr(\"aria-controls\"),s.$search.removeAttr(\"aria-activedescendant\"),s.$search.trigger(\"focus\")}),t.on(\"enable\",function(){s.$search.prop(\"disabled\",!1),s._transferTabIndex()}),t.on(\"disable\",function(){s.$search.prop(\"disabled\",!0)}),t.on(\"focus\",function(e){s.$search.trigger(\"focus\")}),t.on(\"results:focus\",function(e){e.data._resultId?s.$search.attr(\"aria-activedescendant\",e.data._resultId):s.$search.removeAttr(\"aria-activedescendant\")}),this.$selection.on(\"focusin\",\".select2-search--inline\",function(e){s.trigger(\"focus\",e)}),this.$selection.on(\"focusout\",\".select2-search--inline\",function(e){s._handleBlur(e)}),this.$selection.on(\"keydown\",\".select2-search--inline\",function(e){var t;e.stopPropagation(),s.trigger(\"keypress\",e),s._keyUpPrevented=e.isDefaultPrevented(),e.which!==l.BACKSPACE||\"\"!==s.$search.val()||0\u003C(t=s.$selection.find(\".select2-selection__choice\").last()).length&&(t=a.GetData(t[0],\"data\"),s.searchRemoveChoice(t),e.preventDefault())}),this.$selection.on(\"click\",\".select2-search--inline\",function(e){s.$search.val()&&e.stopPropagation()});var t=document.documentMode,o=t&&t\u003C=11;this.$selection.on(\"input.searchcheck\",\".select2-search--inline\",function(e){o?s.$selection.off(\"input.search input.searchcheck\"):s.$selection.off(\"keyup.search\")}),this.$selection.on(\"keyup.search input.search\",\".select2-search--inline\",function(e){var t;o&&\"input\"===e.type?s.$selection.off(\"input.search input.searchcheck\"):(t=e.which)!=l.SHIFT&&t!=l.CTRL&&t!=l.ALT&&t!=l.TAB&&s.handleSearch(e)})},e.prototype._transferTabIndex=function(e){this.$search.attr(\"tabindex\",this.$selection.attr(\"tabindex\")),this.$selection.attr(\"tabindex\",\"-1\")},e.prototype.createPlaceholder=function(e,t){this.$search.attr(\"placeholder\",t.text)},e.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr(\"placeholder\",\"\"),e.call(this,t),this.resizeSearch(),n&&this.$search.trigger(\"focus\")},e.prototype.handleSearch=function(){var e;this.resizeSearch(),this._keyUpPrevented||(e=this.$search.val(),this.trigger(\"query\",{term:e})),this._keyUpPrevented=!1},e.prototype.searchRemoveChoice=function(e,t){this.trigger(\"unselect\",{data:t}),this.$search.val(t.text),this.handleSearch()},e.prototype.resizeSearch=function(){this.$search.css(\"width\",\"25px\");var e=\"100%\";\"\"===this.$search.attr(\"placeholder\")&&(e=.75*(this.$search.val().length+1)+\"em\"),this.$search.css(\"width\",e)},e}),u.define(\"select2\u002Fselection\u002FselectionCss\",[\"..\u002Futils\"],function(n){function e(){}return e.prototype.render=function(e){var t=e.call(this),e=this.options.get(\"selectionCssClass\")||\"\";return-1!==e.indexOf(\":all:\")&&(e=e.replace(\":all:\",\"\"),n.copyNonInternalCssClasses(t[0],this.$element[0])),t.addClass(e),t},e}),u.define(\"select2\u002Fselection\u002FeventRelay\",[\"jquery\"],function(o){function e(){}return e.prototype.bind=function(e,t,n){var s=this,i=[\"open\",\"opening\",\"close\",\"closing\",\"select\",\"selecting\",\"unselect\",\"unselecting\",\"clear\",\"clearing\"],r=[\"opening\",\"closing\",\"selecting\",\"unselecting\",\"clearing\"];e.call(this,t,n),t.on(\"*\",function(e,t){var n;-1!==i.indexOf(e)&&(t=t||{},n=o.Event(\"select2:\"+e,{params:t}),s.$element.trigger(n),-1!==r.indexOf(e)&&(t.prevented=n.isDefaultPrevented()))})},e}),u.define(\"select2\u002Ftranslation\",[\"jquery\",\"require\"],function(t,n){function s(e){this.dict=e||{}}return s.prototype.all=function(){return this.dict},s.prototype.get=function(e){return this.dict[e]},s.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},s._cache={},s.loadPath=function(e){var t;return e in s._cache||(t=n(e),s._cache[e]=t),new s(s._cache[e])},s}),u.define(\"select2\u002Fdiacritics\",[],function(){return{\"Ⓐ\":\"A\",\"Ａ\":\"A\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ầ\":\"A\",\"Ấ\":\"A\",\"Ẫ\":\"A\",\"Ẩ\":\"A\",\"Ã\":\"A\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ằ\":\"A\",\"Ắ\":\"A\",\"Ẵ\":\"A\",\"Ẳ\":\"A\",\"Ȧ\":\"A\",\"Ǡ\":\"A\",\"Ä\":\"A\",\"Ǟ\":\"A\",\"Ả\":\"A\",\"Å\":\"A\",\"Ǻ\":\"A\",\"Ǎ\":\"A\",\"Ȁ\":\"A\",\"Ȃ\":\"A\",\"Ạ\":\"A\",\"Ậ\":\"A\",\"Ặ\":\"A\",\"Ḁ\":\"A\",\"Ą\":\"A\",\"Ⱥ\":\"A\",\"Ɐ\":\"A\",\"Ꜳ\":\"AA\",\"Æ\":\"AE\",\"Ǽ\":\"AE\",\"Ǣ\":\"AE\",\"Ꜵ\":\"AO\",\"Ꜷ\":\"AU\",\"Ꜹ\":\"AV\",\"Ꜻ\":\"AV\",\"Ꜽ\":\"AY\",\"Ⓑ\":\"B\",\"Ｂ\":\"B\",\"Ḃ\":\"B\",\"Ḅ\":\"B\",\"Ḇ\":\"B\",\"Ƀ\":\"B\",\"Ƃ\":\"B\",\"Ɓ\":\"B\",\"Ⓒ\":\"C\",\"Ｃ\":\"C\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"Ç\":\"C\",\"Ḉ\":\"C\",\"Ƈ\":\"C\",\"Ȼ\":\"C\",\"Ꜿ\":\"C\",\"Ⓓ\":\"D\",\"Ｄ\":\"D\",\"Ḋ\":\"D\",\"Ď\":\"D\",\"Ḍ\":\"D\",\"Ḑ\":\"D\",\"Ḓ\":\"D\",\"Ḏ\":\"D\",\"Đ\":\"D\",\"Ƌ\":\"D\",\"Ɗ\":\"D\",\"Ɖ\":\"D\",\"Ꝺ\":\"D\",\"Ǳ\":\"DZ\",\"Ǆ\":\"DZ\",\"ǲ\":\"Dz\",\"ǅ\":\"Dz\",\"Ⓔ\":\"E\",\"Ｅ\":\"E\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ề\":\"E\",\"Ế\":\"E\",\"Ễ\":\"E\",\"Ể\":\"E\",\"Ẽ\":\"E\",\"Ē\":\"E\",\"Ḕ\":\"E\",\"Ḗ\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ë\":\"E\",\"Ẻ\":\"E\",\"Ě\":\"E\",\"Ȅ\":\"E\",\"Ȇ\":\"E\",\"Ẹ\":\"E\",\"Ệ\":\"E\",\"Ȩ\":\"E\",\"Ḝ\":\"E\",\"Ę\":\"E\",\"Ḙ\":\"E\",\"Ḛ\":\"E\",\"Ɛ\":\"E\",\"Ǝ\":\"E\",\"Ⓕ\":\"F\",\"Ｆ\":\"F\",\"Ḟ\":\"F\",\"Ƒ\":\"F\",\"Ꝼ\":\"F\",\"Ⓖ\":\"G\",\"Ｇ\":\"G\",\"Ǵ\":\"G\",\"Ĝ\":\"G\",\"Ḡ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ǧ\":\"G\",\"Ģ\":\"G\",\"Ǥ\":\"G\",\"Ɠ\":\"G\",\"Ꞡ\":\"G\",\"Ᵹ\":\"G\",\"Ꝿ\":\"G\",\"Ⓗ\":\"H\",\"Ｈ\":\"H\",\"Ĥ\":\"H\",\"Ḣ\":\"H\",\"Ḧ\":\"H\",\"Ȟ\":\"H\",\"Ḥ\":\"H\",\"Ḩ\":\"H\",\"Ḫ\":\"H\",\"Ħ\":\"H\",\"Ⱨ\":\"H\",\"Ⱶ\":\"H\",\"Ɥ\":\"H\",\"Ⓘ\":\"I\",\"Ｉ\":\"I\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"İ\":\"I\",\"Ï\":\"I\",\"Ḯ\":\"I\",\"Ỉ\":\"I\",\"Ǐ\":\"I\",\"Ȉ\":\"I\",\"Ȋ\":\"I\",\"Ị\":\"I\",\"Į\":\"I\",\"Ḭ\":\"I\",\"Ɨ\":\"I\",\"Ⓙ\":\"J\",\"Ｊ\":\"J\",\"Ĵ\":\"J\",\"Ɉ\":\"J\",\"Ⓚ\":\"K\",\"Ｋ\":\"K\",\"Ḱ\":\"K\",\"Ǩ\":\"K\",\"Ḳ\":\"K\",\"Ķ\":\"K\",\"Ḵ\":\"K\",\"Ƙ\":\"K\",\"Ⱪ\":\"K\",\"Ꝁ\":\"K\",\"Ꝃ\":\"K\",\"Ꝅ\":\"K\",\"Ꞣ\":\"K\",\"Ⓛ\":\"L\",\"Ｌ\":\"L\",\"Ŀ\":\"L\",\"Ĺ\":\"L\",\"Ľ\":\"L\",\"Ḷ\":\"L\",\"Ḹ\":\"L\",\"Ļ\":\"L\",\"Ḽ\":\"L\",\"Ḻ\":\"L\",\"Ł\":\"L\",\"Ƚ\":\"L\",\"Ɫ\":\"L\",\"Ⱡ\":\"L\",\"Ꝉ\":\"L\",\"Ꝇ\":\"L\",\"Ꞁ\":\"L\",\"Ǉ\":\"LJ\",\"ǈ\":\"Lj\",\"Ⓜ\":\"M\",\"Ｍ\":\"M\",\"Ḿ\":\"M\",\"Ṁ\":\"M\",\"Ṃ\":\"M\",\"Ɱ\":\"M\",\"Ɯ\":\"M\",\"Ⓝ\":\"N\",\"Ｎ\":\"N\",\"Ǹ\":\"N\",\"Ń\":\"N\",\"Ñ\":\"N\",\"Ṅ\":\"N\",\"Ň\":\"N\",\"Ṇ\":\"N\",\"Ņ\":\"N\",\"Ṋ\":\"N\",\"Ṉ\":\"N\",\"Ƞ\":\"N\",\"Ɲ\":\"N\",\"Ꞑ\":\"N\",\"Ꞥ\":\"N\",\"Ǌ\":\"NJ\",\"ǋ\":\"Nj\",\"Ⓞ\":\"O\",\"Ｏ\":\"O\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Ồ\":\"O\",\"Ố\":\"O\",\"Ỗ\":\"O\",\"Ổ\":\"O\",\"Õ\":\"O\",\"Ṍ\":\"O\",\"Ȭ\":\"O\",\"Ṏ\":\"O\",\"Ō\":\"O\",\"Ṑ\":\"O\",\"Ṓ\":\"O\",\"Ŏ\":\"O\",\"Ȯ\":\"O\",\"Ȱ\":\"O\",\"Ö\":\"O\",\"Ȫ\":\"O\",\"Ỏ\":\"O\",\"Ő\":\"O\",\"Ǒ\":\"O\",\"Ȍ\":\"O\",\"Ȏ\":\"O\",\"Ơ\":\"O\",\"Ờ\":\"O\",\"Ớ\":\"O\",\"Ỡ\":\"O\",\"Ở\":\"O\",\"Ợ\":\"O\",\"Ọ\":\"O\",\"Ộ\":\"O\",\"Ǫ\":\"O\",\"Ǭ\":\"O\",\"Ø\":\"O\",\"Ǿ\":\"O\",\"Ɔ\":\"O\",\"Ɵ\":\"O\",\"Ꝋ\":\"O\",\"Ꝍ\":\"O\",\"Œ\":\"OE\",\"Ƣ\":\"OI\",\"Ꝏ\":\"OO\",\"Ȣ\":\"OU\",\"Ⓟ\":\"P\",\"Ｐ\":\"P\",\"Ṕ\":\"P\",\"Ṗ\":\"P\",\"Ƥ\":\"P\",\"Ᵽ\":\"P\",\"Ꝑ\":\"P\",\"Ꝓ\":\"P\",\"Ꝕ\":\"P\",\"Ⓠ\":\"Q\",\"Ｑ\":\"Q\",\"Ꝗ\":\"Q\",\"Ꝙ\":\"Q\",\"Ɋ\":\"Q\",\"Ⓡ\":\"R\",\"Ｒ\":\"R\",\"Ŕ\":\"R\",\"Ṙ\":\"R\",\"Ř\":\"R\",\"Ȑ\":\"R\",\"Ȓ\":\"R\",\"Ṛ\":\"R\",\"Ṝ\":\"R\",\"Ŗ\":\"R\",\"Ṟ\":\"R\",\"Ɍ\":\"R\",\"Ɽ\":\"R\",\"Ꝛ\":\"R\",\"Ꞧ\":\"R\",\"Ꞃ\":\"R\",\"Ⓢ\":\"S\",\"Ｓ\":\"S\",\"ẞ\":\"S\",\"Ś\":\"S\",\"Ṥ\":\"S\",\"Ŝ\":\"S\",\"Ṡ\":\"S\",\"Š\":\"S\",\"Ṧ\":\"S\",\"Ṣ\":\"S\",\"Ṩ\":\"S\",\"Ș\":\"S\",\"Ş\":\"S\",\"Ȿ\":\"S\",\"Ꞩ\":\"S\",\"Ꞅ\":\"S\",\"Ⓣ\":\"T\",\"Ｔ\":\"T\",\"Ṫ\":\"T\",\"Ť\":\"T\",\"Ṭ\":\"T\",\"Ț\":\"T\",\"Ţ\":\"T\",\"Ṱ\":\"T\",\"Ṯ\":\"T\",\"Ŧ\":\"T\",\"Ƭ\":\"T\",\"Ʈ\":\"T\",\"Ⱦ\":\"T\",\"Ꞇ\":\"T\",\"Ꜩ\":\"TZ\",\"Ⓤ\":\"U\",\"Ｕ\":\"U\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ũ\":\"U\",\"Ṹ\":\"U\",\"Ū\":\"U\",\"Ṻ\":\"U\",\"Ŭ\":\"U\",\"Ü\":\"U\",\"Ǜ\":\"U\",\"Ǘ\":\"U\",\"Ǖ\":\"U\",\"Ǚ\":\"U\",\"Ủ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ǔ\":\"U\",\"Ȕ\":\"U\",\"Ȗ\":\"U\",\"Ư\":\"U\",\"Ừ\":\"U\",\"Ứ\":\"U\",\"Ữ\":\"U\",\"Ử\":\"U\",\"Ự\":\"U\",\"Ụ\":\"U\",\"Ṳ\":\"U\",\"Ų\":\"U\",\"Ṷ\":\"U\",\"Ṵ\":\"U\",\"Ʉ\":\"U\",\"Ⓥ\":\"V\",\"Ｖ\":\"V\",\"Ṽ\":\"V\",\"Ṿ\":\"V\",\"Ʋ\":\"V\",\"Ꝟ\":\"V\",\"Ʌ\":\"V\",\"Ꝡ\":\"VY\",\"Ⓦ\":\"W\",\"Ｗ\":\"W\",\"Ẁ\":\"W\",\"Ẃ\":\"W\",\"Ŵ\":\"W\",\"Ẇ\":\"W\",\"Ẅ\":\"W\",\"Ẉ\":\"W\",\"Ⱳ\":\"W\",\"Ⓧ\":\"X\",\"Ｘ\":\"X\",\"Ẋ\":\"X\",\"Ẍ\":\"X\",\"Ⓨ\":\"Y\",\"Ｙ\":\"Y\",\"Ỳ\":\"Y\",\"Ý\":\"Y\",\"Ŷ\":\"Y\",\"Ỹ\":\"Y\",\"Ȳ\":\"Y\",\"Ẏ\":\"Y\",\"Ÿ\":\"Y\",\"Ỷ\":\"Y\",\"Ỵ\":\"Y\",\"Ƴ\":\"Y\",\"Ɏ\":\"Y\",\"Ỿ\":\"Y\",\"Ⓩ\":\"Z\",\"Ｚ\":\"Z\",\"Ź\":\"Z\",\"Ẑ\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"Ẓ\":\"Z\",\"Ẕ\":\"Z\",\"Ƶ\":\"Z\",\"Ȥ\":\"Z\",\"Ɀ\":\"Z\",\"Ⱬ\":\"Z\",\"Ꝣ\":\"Z\",\"ⓐ\":\"a\",\"ａ\":\"a\",\"ẚ\":\"a\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ầ\":\"a\",\"ấ\":\"a\",\"ẫ\":\"a\",\"ẩ\":\"a\",\"ã\":\"a\",\"ā\":\"a\",\"ă\":\"a\",\"ằ\":\"a\",\"ắ\":\"a\",\"ẵ\":\"a\",\"ẳ\":\"a\",\"ȧ\":\"a\",\"ǡ\":\"a\",\"ä\":\"a\",\"ǟ\":\"a\",\"ả\":\"a\",\"å\":\"a\",\"ǻ\":\"a\",\"ǎ\":\"a\",\"ȁ\":\"a\",\"ȃ\":\"a\",\"ạ\":\"a\",\"ậ\":\"a\",\"ặ\":\"a\",\"ḁ\":\"a\",\"ą\":\"a\",\"ⱥ\":\"a\",\"ɐ\":\"a\",\"ꜳ\":\"aa\",\"æ\":\"ae\",\"ǽ\":\"ae\",\"ǣ\":\"ae\",\"ꜵ\":\"ao\",\"ꜷ\":\"au\",\"ꜹ\":\"av\",\"ꜻ\":\"av\",\"ꜽ\":\"ay\",\"ⓑ\":\"b\",\"ｂ\":\"b\",\"ḃ\":\"b\",\"ḅ\":\"b\",\"ḇ\":\"b\",\"ƀ\":\"b\",\"ƃ\":\"b\",\"ɓ\":\"b\",\"ⓒ\":\"c\",\"ｃ\":\"c\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"ç\":\"c\",\"ḉ\":\"c\",\"ƈ\":\"c\",\"ȼ\":\"c\",\"ꜿ\":\"c\",\"ↄ\":\"c\",\"ⓓ\":\"d\",\"ｄ\":\"d\",\"ḋ\":\"d\",\"ď\":\"d\",\"ḍ\":\"d\",\"ḑ\":\"d\",\"ḓ\":\"d\",\"ḏ\":\"d\",\"đ\":\"d\",\"ƌ\":\"d\",\"ɖ\":\"d\",\"ɗ\":\"d\",\"ꝺ\":\"d\",\"ǳ\":\"dz\",\"ǆ\":\"dz\",\"ⓔ\":\"e\",\"ｅ\":\"e\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ề\":\"e\",\"ế\":\"e\",\"ễ\":\"e\",\"ể\":\"e\",\"ẽ\":\"e\",\"ē\":\"e\",\"ḕ\":\"e\",\"ḗ\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ë\":\"e\",\"ẻ\":\"e\",\"ě\":\"e\",\"ȅ\":\"e\",\"ȇ\":\"e\",\"ẹ\":\"e\",\"ệ\":\"e\",\"ȩ\":\"e\",\"ḝ\":\"e\",\"ę\":\"e\",\"ḙ\":\"e\",\"ḛ\":\"e\",\"ɇ\":\"e\",\"ɛ\":\"e\",\"ǝ\":\"e\",\"ⓕ\":\"f\",\"ｆ\":\"f\",\"ḟ\":\"f\",\"ƒ\":\"f\",\"ꝼ\":\"f\",\"ⓖ\":\"g\",\"ｇ\":\"g\",\"ǵ\":\"g\",\"ĝ\":\"g\",\"ḡ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ǧ\":\"g\",\"ģ\":\"g\",\"ǥ\":\"g\",\"ɠ\":\"g\",\"ꞡ\":\"g\",\"ᵹ\":\"g\",\"ꝿ\":\"g\",\"ⓗ\":\"h\",\"ｈ\":\"h\",\"ĥ\":\"h\",\"ḣ\":\"h\",\"ḧ\":\"h\",\"ȟ\":\"h\",\"ḥ\":\"h\",\"ḩ\":\"h\",\"ḫ\":\"h\",\"ẖ\":\"h\",\"ħ\":\"h\",\"ⱨ\":\"h\",\"ⱶ\":\"h\",\"ɥ\":\"h\",\"ƕ\":\"hv\",\"ⓘ\":\"i\",\"ｉ\":\"i\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"ï\":\"i\",\"ḯ\":\"i\",\"ỉ\":\"i\",\"ǐ\":\"i\",\"ȉ\":\"i\",\"ȋ\":\"i\",\"ị\":\"i\",\"į\":\"i\",\"ḭ\":\"i\",\"ɨ\":\"i\",\"ı\":\"i\",\"ⓙ\":\"j\",\"ｊ\":\"j\",\"ĵ\":\"j\",\"ǰ\":\"j\",\"ɉ\":\"j\",\"ⓚ\":\"k\",\"ｋ\":\"k\",\"ḱ\":\"k\",\"ǩ\":\"k\",\"ḳ\":\"k\",\"ķ\":\"k\",\"ḵ\":\"k\",\"ƙ\":\"k\",\"ⱪ\":\"k\",\"ꝁ\":\"k\",\"ꝃ\":\"k\",\"ꝅ\":\"k\",\"ꞣ\":\"k\",\"ⓛ\":\"l\",\"ｌ\":\"l\",\"ŀ\":\"l\",\"ĺ\":\"l\",\"ľ\":\"l\",\"ḷ\":\"l\",\"ḹ\":\"l\",\"ļ\":\"l\",\"ḽ\":\"l\",\"ḻ\":\"l\",\"ſ\":\"l\",\"ł\":\"l\",\"ƚ\":\"l\",\"ɫ\":\"l\",\"ⱡ\":\"l\",\"ꝉ\":\"l\",\"ꞁ\":\"l\",\"ꝇ\":\"l\",\"ǉ\":\"lj\",\"ⓜ\":\"m\",\"ｍ\":\"m\",\"ḿ\":\"m\",\"ṁ\":\"m\",\"ṃ\":\"m\",\"ɱ\":\"m\",\"ɯ\":\"m\",\"ⓝ\":\"n\",\"ｎ\":\"n\",\"ǹ\":\"n\",\"ń\":\"n\",\"ñ\":\"n\",\"ṅ\":\"n\",\"ň\":\"n\",\"ṇ\":\"n\",\"ņ\":\"n\",\"ṋ\":\"n\",\"ṉ\":\"n\",\"ƞ\":\"n\",\"ɲ\":\"n\",\"ŉ\":\"n\",\"ꞑ\":\"n\",\"ꞥ\":\"n\",\"ǌ\":\"nj\",\"ⓞ\":\"o\",\"ｏ\":\"o\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"ồ\":\"o\",\"ố\":\"o\",\"ỗ\":\"o\",\"ổ\":\"o\",\"õ\":\"o\",\"ṍ\":\"o\",\"ȭ\":\"o\",\"ṏ\":\"o\",\"ō\":\"o\",\"ṑ\":\"o\",\"ṓ\":\"o\",\"ŏ\":\"o\",\"ȯ\":\"o\",\"ȱ\":\"o\",\"ö\":\"o\",\"ȫ\":\"o\",\"ỏ\":\"o\",\"ő\":\"o\",\"ǒ\":\"o\",\"ȍ\":\"o\",\"ȏ\":\"o\",\"ơ\":\"o\",\"ờ\":\"o\",\"ớ\":\"o\",\"ỡ\":\"o\",\"ở\":\"o\",\"ợ\":\"o\",\"ọ\":\"o\",\"ộ\":\"o\",\"ǫ\":\"o\",\"ǭ\":\"o\",\"ø\":\"o\",\"ǿ\":\"o\",\"ɔ\":\"o\",\"ꝋ\":\"o\",\"ꝍ\":\"o\",\"ɵ\":\"o\",\"œ\":\"oe\",\"ƣ\":\"oi\",\"ȣ\":\"ou\",\"ꝏ\":\"oo\",\"ⓟ\":\"p\",\"ｐ\":\"p\",\"ṕ\":\"p\",\"ṗ\":\"p\",\"ƥ\":\"p\",\"ᵽ\":\"p\",\"ꝑ\":\"p\",\"ꝓ\":\"p\",\"ꝕ\":\"p\",\"ⓠ\":\"q\",\"ｑ\":\"q\",\"ɋ\":\"q\",\"ꝗ\":\"q\",\"ꝙ\":\"q\",\"ⓡ\":\"r\",\"ｒ\":\"r\",\"ŕ\":\"r\",\"ṙ\":\"r\",\"ř\":\"r\",\"ȑ\":\"r\",\"ȓ\":\"r\",\"ṛ\":\"r\",\"ṝ\":\"r\",\"ŗ\":\"r\",\"ṟ\":\"r\",\"ɍ\":\"r\",\"ɽ\":\"r\",\"ꝛ\":\"r\",\"ꞧ\":\"r\",\"ꞃ\":\"r\",\"ⓢ\":\"s\",\"ｓ\":\"s\",\"ß\":\"s\",\"ś\":\"s\",\"ṥ\":\"s\",\"ŝ\":\"s\",\"ṡ\":\"s\",\"š\":\"s\",\"ṧ\":\"s\",\"ṣ\":\"s\",\"ṩ\":\"s\",\"ș\":\"s\",\"ş\":\"s\",\"ȿ\":\"s\",\"ꞩ\":\"s\",\"ꞅ\":\"s\",\"ẛ\":\"s\",\"ⓣ\":\"t\",\"ｔ\":\"t\",\"ṫ\":\"t\",\"ẗ\":\"t\",\"ť\":\"t\",\"ṭ\":\"t\",\"ț\":\"t\",\"ţ\":\"t\",\"ṱ\":\"t\",\"ṯ\":\"t\",\"ŧ\":\"t\",\"ƭ\":\"t\",\"ʈ\":\"t\",\"ⱦ\":\"t\",\"ꞇ\":\"t\",\"ꜩ\":\"tz\",\"ⓤ\":\"u\",\"ｕ\":\"u\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ũ\":\"u\",\"ṹ\":\"u\",\"ū\":\"u\",\"ṻ\":\"u\",\"ŭ\":\"u\",\"ü\":\"u\",\"ǜ\":\"u\",\"ǘ\":\"u\",\"ǖ\":\"u\",\"ǚ\":\"u\",\"ủ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ǔ\":\"u\",\"ȕ\":\"u\",\"ȗ\":\"u\",\"ư\":\"u\",\"ừ\":\"u\",\"ứ\":\"u\",\"ữ\":\"u\",\"ử\":\"u\",\"ự\":\"u\",\"ụ\":\"u\",\"ṳ\":\"u\",\"ų\":\"u\",\"ṷ\":\"u\",\"ṵ\":\"u\",\"ʉ\":\"u\",\"ⓥ\":\"v\",\"ｖ\":\"v\",\"ṽ\":\"v\",\"ṿ\":\"v\",\"ʋ\":\"v\",\"ꝟ\":\"v\",\"ʌ\":\"v\",\"ꝡ\":\"vy\",\"ⓦ\":\"w\",\"ｗ\":\"w\",\"ẁ\":\"w\",\"ẃ\":\"w\",\"ŵ\":\"w\",\"ẇ\":\"w\",\"ẅ\":\"w\",\"ẘ\":\"w\",\"ẉ\":\"w\",\"ⱳ\":\"w\",\"ⓧ\":\"x\",\"ｘ\":\"x\",\"ẋ\":\"x\",\"ẍ\":\"x\",\"ⓨ\":\"y\",\"ｙ\":\"y\",\"ỳ\":\"y\",\"ý\":\"y\",\"ŷ\":\"y\",\"ỹ\":\"y\",\"ȳ\":\"y\",\"ẏ\":\"y\",\"ÿ\":\"y\",\"ỷ\":\"y\",\"ẙ\":\"y\",\"ỵ\":\"y\",\"ƴ\":\"y\",\"ɏ\":\"y\",\"ỿ\":\"y\",\"ⓩ\":\"z\",\"ｚ\":\"z\",\"ź\":\"z\",\"ẑ\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"ẓ\":\"z\",\"ẕ\":\"z\",\"ƶ\":\"z\",\"ȥ\":\"z\",\"ɀ\":\"z\",\"ⱬ\":\"z\",\"ꝣ\":\"z\",\"Ά\":\"Α\",\"Έ\":\"Ε\",\"Ή\":\"Η\",\"Ί\":\"Ι\",\"Ϊ\":\"Ι\",\"Ό\":\"Ο\",\"Ύ\":\"Υ\",\"Ϋ\":\"Υ\",\"Ώ\":\"Ω\",\"ά\":\"α\",\"έ\":\"ε\",\"ή\":\"η\",\"ί\":\"ι\",\"ϊ\":\"ι\",\"ΐ\":\"ι\",\"ό\":\"ο\",\"ύ\":\"υ\",\"ϋ\":\"υ\",\"ΰ\":\"υ\",\"ώ\":\"ω\",\"ς\":\"σ\",\"’\":\"'\"}}),u.define(\"select2\u002Fdata\u002Fbase\",[\"..\u002Futils\"],function(n){function s(e,t){s.__super__.constructor.call(this)}return n.Extend(s,n.Observable),s.prototype.current=function(e){throw new Error(\"The `current` method must be defined in child classes.\")},s.prototype.query=function(e,t){throw new Error(\"The `query` method must be defined in child classes.\")},s.prototype.bind=function(e,t){},s.prototype.destroy=function(){},s.prototype.generateResultId=function(e,t){e=e.id+\"-result-\";return e+=n.generateChars(4),null!=t.id?e+=\"-\"+t.id.toString():e+=\"-\"+n.generateChars(4),e},s}),u.define(\"select2\u002Fdata\u002Fselect\",[\".\u002Fbase\",\"..\u002Futils\",\"jquery\"],function(e,a,l){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return a.Extend(n,e),n.prototype.current=function(e){var t=this;e(Array.prototype.map.call(this.$element[0].querySelectorAll(\":checked\"),function(e){return t.item(l(e))}))},n.prototype.select=function(i){var e,r=this;if(i.selected=!0,null!=i.element&&\"option\"===i.element.tagName.toLowerCase())return i.element.selected=!0,void this.$element.trigger(\"input\").trigger(\"change\");this.$element.prop(\"multiple\")?this.current(function(e){var t=[];(i=[i]).push.apply(i,e);for(var n=0;n\u003Ci.length;n++){var s=i[n].id;-1===t.indexOf(s)&&t.push(s)}r.$element.val(t),r.$element.trigger(\"input\").trigger(\"change\")}):(e=i.id,this.$element.val(e),this.$element.trigger(\"input\").trigger(\"change\"))},n.prototype.unselect=function(i){var r=this;if(this.$element.prop(\"multiple\")){if(i.selected=!1,null!=i.element&&\"option\"===i.element.tagName.toLowerCase())return i.element.selected=!1,void this.$element.trigger(\"input\").trigger(\"change\");this.current(function(e){for(var t=[],n=0;n\u003Ce.length;n++){var s=e[n].id;s!==i.id&&-1===t.indexOf(s)&&t.push(s)}r.$element.val(t),r.$element.trigger(\"input\").trigger(\"change\")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on(\"select\",function(e){n.select(e.data)}),e.on(\"unselect\",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find(\"*\").each(function(){a.RemoveData(this)})},n.prototype.query=function(t,e){var n=[],s=this;this.$element.children().each(function(){var e;\"option\"!==this.tagName.toLowerCase()&&\"optgroup\"!==this.tagName.toLowerCase()||(e=l(this),e=s.item(e),null!==(e=s.matches(t,e))&&n.push(e))}),e({results:n})},n.prototype.addOptions=function(e){this.$element.append(e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement(\"optgroup\")).label=e.text:void 0!==(t=document.createElement(\"option\")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);e=this._normalizeItem(e);return e.element=t,a.StoreData(t,\"data\",e),l(t)},n.prototype.item=function(e){var t={};if(null!=(t=a.GetData(e[0],\"data\")))return t;var n=e[0];if(\"option\"===n.tagName.toLowerCase())t={id:e.val(),text:e.text(),disabled:e.prop(\"disabled\"),selected:e.prop(\"selected\"),title:e.prop(\"title\")};else if(\"optgroup\"===n.tagName.toLowerCase()){t={text:e.prop(\"label\"),children:[],title:e.prop(\"title\")};for(var s=e.children(\"option\"),i=[],r=0;r\u003Cs.length;r++){var o=l(s[r]),o=this.item(o);i.push(o)}t.children=i}return(t=this._normalizeItem(t)).element=e[0],a.StoreData(e[0],\"data\",t),t},n.prototype._normalizeItem=function(e){e!==Object(e)&&(e={id:e,text:e});return null!=(e=l.extend({},{text:\"\"},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),l.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get(\"matcher\")(e,t)},n}),u.define(\"select2\u002Fdata\u002Farray\",[\".\u002Fselect\",\"..\u002Futils\",\"jquery\"],function(e,t,c){function s(e,t){this._dataToConvert=t.get(\"data\")||[],s.__super__.constructor.call(this,e,t)}return t.Extend(s,e),s.prototype.bind=function(e,t){s.__super__.bind.call(this,e,t),this.addOptions(this.convertToOptions(this._dataToConvert))},s.prototype.select=function(n){var e=this.$element.find(\"option\").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),s.__super__.select.call(this,n)},s.prototype.convertToOptions=function(e){var t=this,n=this.$element.find(\"option\"),s=n.map(function(){return t.item(c(this)).id}).get(),i=[];for(var r=0;r\u003Ce.length;r++){var o,a,l=this._normalizeItem(e[r]);0\u003C=s.indexOf(l.id)?(o=n.filter(function(e){return function(){return c(this).val()==e.id}}(l)),a=this.item(o),a=c.extend(!0,{},l,a),a=this.option(a),o.replaceWith(a)):(a=this.option(l),l.children&&(l=this.convertToOptions(l.children),a.append(l)),i.push(a))}return i},s}),u.define(\"select2\u002Fdata\u002Fajax\",[\".\u002Farray\",\"..\u002Futils\",\"jquery\"],function(e,t,r){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get(\"ajax\")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return r.extend({},e,{q:e.term})},transport:function(e,t,n){e=r.ajax(e);return e.then(t),e.fail(n),e}};return r.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(t,n){var s=this;null!=this._request&&(\"function\"==typeof this._request.abort&&this._request.abort(),this._request=null);var i=r.extend({type:\"GET\"},this.ajaxOptions);function e(){var e=i.transport(i,function(e){e=s.processResults(e,t);s.options.get(\"debug\")&&window.console&&console.error&&(e&&e.results&&Array.isArray(e.results)||console.error(\"Select2: The AJAX results did not return an array in the `results` key of the response.\")),n(e)},function(){\"status\"in e&&(0===e.status||\"0\"===e.status)||s.trigger(\"results:message\",{message:\"errorLoading\"})});s._request=e}\"function\"==typeof i.url&&(i.url=i.url.call(this.$element,t)),\"function\"==typeof i.data&&(i.data=i.data.call(this.$element,t)),this.ajaxOptions.delay&&null!=t.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),u.define(\"select2\u002Fdata\u002Ftags\",[\"jquery\"],function(t){function e(e,t,n){var s=n.get(\"tags\"),i=n.get(\"createTag\");void 0!==i&&(this.createTag=i);i=n.get(\"insertTag\");if(void 0!==i&&(this.insertTag=i),e.call(this,t,n),Array.isArray(s))for(var r=0;r\u003Cs.length;r++){var o=s[r],o=this._normalizeItem(o),o=this.option(o);this.$element.append(o)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var s=t.results,i=0;i\u003Cs.length;i++){var r=s[i],o=null!=r.children&&!e({results:r.children},!0);if((r.text||\"\").toUpperCase()===(c.term||\"\").toUpperCase()||o)return!n&&(t.data=s,void u(t))}if(n)return!0;var a,l=d.createTag(c);null!=l&&((a=d.option(l)).attr(\"data-select2-tag\",\"true\"),d.addOptions([a]),d.insertTag(s,l)),t.results=s,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){if(null==t.term)return null;t=t.term.trim();return\"\"===t?null:{id:t,text:t}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this.$element.find(\"option[data-select2-tag]\").each(function(){this.selected||t(this).remove()})},e}),u.define(\"select2\u002Fdata\u002Ftokenizer\",[\"jquery\"],function(c){function e(e,t,n){var s=n.get(\"tokenizer\");void 0!==s&&(this.tokenizer=s),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(\".select2-search__field\")},e.prototype.query=function(e,t,n){var s=this;t.term=t.term||\"\";var i=this.tokenizer(t,this.options,function(e){var t,n=s._normalizeItem(e);s.$element.find(\"option\").filter(function(){return c(this).val()===n.id}).length||((t=s.option(n)).attr(\"data-select2-tag\",!0),s._removeOldTags(),s.addOptions([t])),t=n,s.trigger(\"select\",{data:t})});i.term!==t.term&&(this.$search.length&&(this.$search.val(i.term),this.$search.trigger(\"focus\")),t.term=i.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,s){for(var i=n.get(\"tokenSeparators\")||[],r=t.term,o=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};o\u003Cr.length;){var l=r[o];-1!==i.indexOf(l)?(l=r.substr(0,o),null!=(l=a(c.extend({},t,{term:l})))?(s(l),r=r.substr(o+1)||\"\",o=0):o++):o++}return{term:r}},e}),u.define(\"select2\u002Fdata\u002FminimumInputLength\",[],function(){function e(e,t,n){this.minimumInputLength=n.get(\"minimumInputLength\"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||\"\",t.term.length\u003Cthis.minimumInputLength?this.trigger(\"results:message\",{message:\"inputTooShort\",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define(\"select2\u002Fdata\u002FmaximumInputLength\",[],function(){function e(e,t,n){this.maximumInputLength=n.get(\"maximumInputLength\"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||\"\",0\u003Cthis.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger(\"results:message\",{message:\"inputTooLong\",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define(\"select2\u002Fdata\u002FmaximumSelectionLength\",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get(\"maximumSelectionLength\"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on(\"select\",function(){s._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var s=this;this._checkIfMaximumSelected(function(){e.call(s,t,n)})},e.prototype._checkIfMaximumSelected=function(e,t){var n=this;this.current(function(e){e=null!=e?e.length:0;0\u003Cn.maximumSelectionLength&&e>=n.maximumSelectionLength?n.trigger(\"results:message\",{message:\"maximumSelected\",args:{maximum:n.maximumSelectionLength}}):t&&t()})},e}),u.define(\"select2\u002Fdropdown\",[\"jquery\",\".\u002Futils\"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('\u003Cspan class=\"select2-dropdown\">\u003Cspan class=\"select2-results\">\u003C\u002Fspan>\u003C\u002Fspan>');return e.attr(\"dir\",this.options.get(\"dir\")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),u.define(\"select2\u002Fdropdown\u002Fsearch\",[\"jquery\"],function(r){function e(){}return e.prototype.render=function(e){var t=e.call(this),n=this.options.get(\"translations\").get(\"search\"),e=r('\u003Cspan class=\"select2-search select2-search--dropdown\">\u003Cinput class=\"select2-search__field\" type=\"search\" tabindex=\"-1\" autocorrect=\"off\" autocapitalize=\"none\" spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" \u002F>\u003C\u002Fspan>');return this.$searchContainer=e,this.$search=e.find(\"input\"),this.$search.prop(\"autocomplete\",this.options.get(\"autocomplete\")),this.$search.attr(\"aria-label\",n()),t.prepend(e),t},e.prototype.bind=function(e,t,n){var s=this,i=t.id+\"-results\";e.call(this,t,n),this.$search.on(\"keydown\",function(e){s.trigger(\"keypress\",e),s._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on(\"input\",function(e){r(this).off(\"keyup\")}),this.$search.on(\"keyup input\",function(e){s.handleSearch(e)}),t.on(\"open\",function(){s.$search.attr(\"tabindex\",0),s.$search.attr(\"aria-controls\",i),s.$search.trigger(\"focus\"),window.setTimeout(function(){s.$search.trigger(\"focus\")},0)}),t.on(\"close\",function(){s.$search.attr(\"tabindex\",-1),s.$search.removeAttr(\"aria-controls\"),s.$search.removeAttr(\"aria-activedescendant\"),s.$search.val(\"\"),s.$search.trigger(\"blur\")}),t.on(\"focus\",function(){t.isOpen()||s.$search.trigger(\"focus\")}),t.on(\"results:all\",function(e){null!=e.query.term&&\"\"!==e.query.term||(s.showSearch(e)?s.$searchContainer[0].classList.remove(\"select2-search--hide\"):s.$searchContainer[0].classList.add(\"select2-search--hide\"))}),t.on(\"results:focus\",function(e){e.data._resultId?s.$search.attr(\"aria-activedescendant\",e.data._resultId):s.$search.removeAttr(\"aria-activedescendant\")})},e.prototype.handleSearch=function(e){var t;this._keyUpPrevented||(t=this.$search.val(),this.trigger(\"query\",{term:t})),this._keyUpPrevented=!1},e.prototype.showSearch=function(e,t){return!0},e}),u.define(\"select2\u002Fdropdown\u002FhidePlaceholder\",[],function(){function e(e,t,n,s){this.placeholder=this.normalizePlaceholder(n.get(\"placeholder\")),e.call(this,t,n,s)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return\"string\"==typeof t&&(t={id:\"\",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),s=t.length-1;0\u003C=s;s--){var i=t[s];this.placeholder.id===i.id&&n.splice(s,1)}return n},e}),u.define(\"select2\u002Fdropdown\u002FinfiniteScroll\",[\"jquery\"],function(n){function e(e,t,n,s){this.lastParams={},e.call(this,t,n,s),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on(\"query\",function(e){s.lastParams=e,s.loading=!0}),t.on(\"query:append\",function(e){s.lastParams=e,s.loading=!0}),this.$results.on(\"scroll\",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);!this.loading&&e&&(e=this.$results.offset().top+this.$results.outerHeight(!1),this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)\u003C=e+50&&this.loadMore())},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger(\"query:append\",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('\u003Cli class=\"select2-results__option select2-results__option--load-more\"role=\"option\" aria-disabled=\"true\">\u003C\u002Fli>'),t=this.options.get(\"translations\").get(\"loadingMore\");return e.html(t(this.lastParams)),e},e}),u.define(\"select2\u002Fdropdown\u002FattachBody\",[\"jquery\",\"..\u002Futils\"],function(u,o){function e(e,t,n){this.$dropdownParent=u(n.get(\"dropdownParent\")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on(\"open\",function(){s._showDropdown(),s._attachPositioningHandler(t),s._bindContainerResultHandlers(t)}),t.on(\"close\",function(){s._hideDropdown(),s._detachPositioningHandler(t)}),this.$dropdownContainer.on(\"mousedown\",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr(\"class\",n.attr(\"class\")),t[0].classList.remove(\"select2\"),t[0].classList.add(\"select2-container--open\"),t.css({position:\"absolute\",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=u(\"\u003Cspan>\u003C\u002Fspan>\"),e=e.call(this);return t.append(e),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){var n;this._containerResultsHandlersBound||(n=this,t.on(\"results:all\",function(){n._positionDropdown(),n._resizeDropdown()}),t.on(\"results:append\",function(){n._positionDropdown(),n._resizeDropdown()}),t.on(\"results:message\",function(){n._positionDropdown(),n._resizeDropdown()}),t.on(\"select\",function(){n._positionDropdown(),n._resizeDropdown()}),t.on(\"unselect\",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0)},e.prototype._attachPositioningHandler=function(e,t){var n=this,s=\"scroll.select2.\"+t.id,i=\"resize.select2.\"+t.id,r=\"orientationchange.select2.\"+t.id,t=this.$container.parents().filter(o.hasScroll);t.each(function(){o.StoreData(this,\"select2-scroll-position\",{x:u(this).scrollLeft(),y:u(this).scrollTop()})}),t.on(s,function(e){var t=o.GetData(this,\"select2-scroll-position\");u(this).scrollTop(t.y)}),u(window).on(s+\" \"+i+\" \"+r,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n=\"scroll.select2.\"+t.id,s=\"resize.select2.\"+t.id,t=\"orientationchange.select2.\"+t.id;this.$container.parents().filter(o.hasScroll).off(n),u(window).off(n+\" \"+s+\" \"+t)},e.prototype._positionDropdown=function(){var e=u(window),t=this.$dropdown[0].classList.contains(\"select2-dropdown--above\"),n=this.$dropdown[0].classList.contains(\"select2-dropdown--below\"),s=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var r={height:this.$container.outerHeight(!1)};r.top=i.top,r.bottom=i.top+r.height;var o=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=a\u003Ci.top-o,e=l>i.bottom+o,a={left:i.left,top:r.bottom},l=this.$dropdownParent;\"static\"===l.css(\"position\")&&(l=l.offsetParent());i={top:0,left:0};(u.contains(document.body,l[0])||l[0].isConnected)&&(i=l.offset()),a.top-=i.top,a.left-=i.left,t||n||(s=\"below\"),e||!c||t?!c&&e&&t&&(s=\"below\"):s=\"above\",(\"above\"==s||t&&\"below\"!==s)&&(a.top=r.top-i.top-o),null!=s&&(this.$dropdown[0].classList.remove(\"select2-dropdown--below\"),this.$dropdown[0].classList.remove(\"select2-dropdown--above\"),this.$dropdown[0].classList.add(\"select2-dropdown--\"+s),this.$container[0].classList.remove(\"select2-container--below\"),this.$container[0].classList.remove(\"select2-container--above\"),this.$container[0].classList.add(\"select2-container--\"+s)),this.$dropdownContainer.css(a)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+\"px\"};this.options.get(\"dropdownAutoWidth\")&&(e.minWidth=e.width,e.position=\"relative\",e.width=\"auto\"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),u.define(\"select2\u002Fdropdown\u002FminimumResultsForSearch\",[],function(){function e(e,t,n,s){this.minimumResultsForSearch=n.get(\"minimumResultsForSearch\"),this.minimumResultsForSearch\u003C0&&(this.minimumResultsForSearch=1\u002F0),e.call(this,t,n,s)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,s=0;s\u003Ct.length;s++){var i=t[s];i.children?n+=e(i.children):n++}return n}(t.data.results)\u003Cthis.minimumResultsForSearch)&&e.call(this,t)},e}),u.define(\"select2\u002Fdropdown\u002FselectOnClose\",[\"..\u002Futils\"],function(s){function e(){}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on(\"close\",function(e){s._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if(\"select\"===n._type||\"unselect\"===n._type)return}n=this.getHighlightedResults();n.length\u003C1||(null!=(n=s.GetData(n[0],\"data\")).element&&n.element.selected||null==n.element&&n.selected||this.trigger(\"select\",{data:n}))},e}),u.define(\"select2\u002Fdropdown\u002FcloseOnSelect\",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on(\"select\",function(e){s._selectTriggered(e)}),t.on(\"unselect\",function(e){s._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&(n.ctrlKey||n.metaKey)||this.trigger(\"close\",{originalEvent:n,originalSelect2Event:t})},e}),u.define(\"select2\u002Fdropdown\u002FdropdownCss\",[\"..\u002Futils\"],function(n){function e(){}return e.prototype.render=function(e){var t=e.call(this),e=this.options.get(\"dropdownCssClass\")||\"\";return-1!==e.indexOf(\":all:\")&&(e=e.replace(\":all:\",\"\"),n.copyNonInternalCssClasses(t[0],this.$element[0])),t.addClass(e),t},e}),u.define(\"select2\u002Fdropdown\u002FtagsSearchHighlight\",[\"..\u002Futils\"],function(s){function e(){}return e.prototype.highlightFirstItem=function(e){var t=this.$results.find(\".select2-results__option--selectable:not(.select2-results__option--selected)\");if(0\u003Ct.length){var n=t.first(),t=s.GetData(n[0],\"data\").element;if(t&&t.getAttribute&&\"true\"===t.getAttribute(\"data-select2-tag\"))return void n.trigger(\"mouseenter\")}e.call(this)},e}),u.define(\"select2\u002Fi18n\u002Fen\",[],function(){return{errorLoading:function(){return\"The results could not be loaded.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,e=\"Please delete \"+t+\" character\";return 1!=t&&(e+=\"s\"),e},inputTooShort:function(e){return\"Please enter \"+(e.minimum-e.input.length)+\" or more characters\"},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(e){var t=\"You can only select \"+e.maximum+\" item\";return 1!=e.maximum&&(t+=\"s\"),t},noResults:function(){return\"No results found\"},searching:function(){return\"Searching…\"},removeAllItems:function(){return\"Remove all items\"},removeItem:function(){return\"Remove item\"},search:function(){return\"Search\"}}}),u.define(\"select2\u002Fdefaults\",[\"jquery\",\".\u002Fresults\",\".\u002Fselection\u002Fsingle\",\".\u002Fselection\u002Fmultiple\",\".\u002Fselection\u002Fplaceholder\",\".\u002Fselection\u002FallowClear\",\".\u002Fselection\u002Fsearch\",\".\u002Fselection\u002FselectionCss\",\".\u002Fselection\u002FeventRelay\",\".\u002Futils\",\".\u002Ftranslation\",\".\u002Fdiacritics\",\".\u002Fdata\u002Fselect\",\".\u002Fdata\u002Farray\",\".\u002Fdata\u002Fajax\",\".\u002Fdata\u002Ftags\",\".\u002Fdata\u002Ftokenizer\",\".\u002Fdata\u002FminimumInputLength\",\".\u002Fdata\u002FmaximumInputLength\",\".\u002Fdata\u002FmaximumSelectionLength\",\".\u002Fdropdown\",\".\u002Fdropdown\u002Fsearch\",\".\u002Fdropdown\u002FhidePlaceholder\",\".\u002Fdropdown\u002FinfiniteScroll\",\".\u002Fdropdown\u002FattachBody\",\".\u002Fdropdown\u002FminimumResultsForSearch\",\".\u002Fdropdown\u002FselectOnClose\",\".\u002Fdropdown\u002FcloseOnSelect\",\".\u002Fdropdown\u002FdropdownCss\",\".\u002Fdropdown\u002FtagsSearchHighlight\",\".\u002Fi18n\u002Fen\"],function(l,r,o,a,c,u,d,p,h,f,g,t,m,y,v,_,b,$,w,x,A,D,S,E,O,C,L,T,q,I,e){function n(){this.reset()}return n.prototype.apply=function(e){var t;null==(e=l.extend(!0,{},this.defaults,e)).dataAdapter&&(null!=e.ajax?e.dataAdapter=v:null!=e.data?e.dataAdapter=y:e.dataAdapter=m,0\u003Ce.minimumInputLength&&(e.dataAdapter=f.Decorate(e.dataAdapter,$)),0\u003Ce.maximumInputLength&&(e.dataAdapter=f.Decorate(e.dataAdapter,w)),0\u003Ce.maximumSelectionLength&&(e.dataAdapter=f.Decorate(e.dataAdapter,x)),e.tags&&(e.dataAdapter=f.Decorate(e.dataAdapter,_)),null==e.tokenSeparators&&null==e.tokenizer||(e.dataAdapter=f.Decorate(e.dataAdapter,b))),null==e.resultsAdapter&&(e.resultsAdapter=r,null!=e.ajax&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,E)),null!=e.placeholder&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,S)),e.selectOnClose&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,L)),e.tags&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,I))),null==e.dropdownAdapter&&(e.multiple?e.dropdownAdapter=A:(t=f.Decorate(A,D),e.dropdownAdapter=t),0!==e.minimumResultsForSearch&&(e.dropdownAdapter=f.Decorate(e.dropdownAdapter,C)),e.closeOnSelect&&(e.dropdownAdapter=f.Decorate(e.dropdownAdapter,T)),null!=e.dropdownCssClass&&(e.dropdownAdapter=f.Decorate(e.dropdownAdapter,q)),e.dropdownAdapter=f.Decorate(e.dropdownAdapter,O)),null==e.selectionAdapter&&(e.multiple?e.selectionAdapter=a:e.selectionAdapter=o,null!=e.placeholder&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,c)),e.allowClear&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,u)),e.multiple&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,d)),null!=e.selectionCssClass&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,p)),e.selectionAdapter=f.Decorate(e.selectionAdapter,h)),e.language=this._resolveLanguage(e.language),e.language.push(\"en\");for(var n=[],s=0;s\u003Ce.language.length;s++){var i=e.language[s];-1===n.indexOf(i)&&n.push(i)}return e.language=n,e.translations=this._processTranslations(e.language,e.debug),e},n.prototype.reset=function(){function a(e){return e.replace(\u002F[^\\u0000-\\u007E]\u002Fg,function(e){return t[e]||e})}this.defaults={amdLanguageBase:\".\u002Fi18n\u002F\",autocomplete:\"off\",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:f.escapeMarkup,language:{},matcher:function e(t,n){if(null==t.term||\"\"===t.term.trim())return n;if(n.children&&0\u003Cn.children.length){for(var s=l.extend(!0,{},n),i=n.children.length-1;0\u003C=i;i--)null==e(t,n.children[i])&&s.children.splice(i,1);return 0\u003Cs.children.length?s:e(t,s)}var r=a(n.text).toUpperCase(),o=a(t.term).toUpperCase();return-1\u003Cr.indexOf(o)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,scrollAfterSelect:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:\"default\",width:\"resolve\"}},n.prototype.applyFromElement=function(e,t){var n=e.language,s=this.defaults.language,i=t.prop(\"lang\"),t=t.closest(\"[lang]\").prop(\"lang\"),t=Array.prototype.concat.call(this._resolveLanguage(i),this._resolveLanguage(n),this._resolveLanguage(s),this._resolveLanguage(t));return e.language=t,e},n.prototype._resolveLanguage=function(e){if(!e)return[];if(l.isEmptyObject(e))return[];if(l.isPlainObject(e))return[e];for(var t,n=Array.isArray(e)?e:[e],s=[],i=0;i\u003Cn.length;i++)s.push(n[i]),\"string\"==typeof n[i]&&0\u003Cn[i].indexOf(\"-\")&&(t=n[i].split(\"-\")[0],s.push(t));return s},n.prototype._processTranslations=function(e,t){for(var n=new g,s=0;s\u003Ce.length;s++){var i=new g,r=e[s];if(\"string\"==typeof r)try{i=g.loadPath(r)}catch(e){try{r=this.defaults.amdLanguageBase+r,i=g.loadPath(r)}catch(e){t&&window.console&&console.warn&&console.warn('Select2: The language file for \"'+r+'\" could not be automatically loaded. A fallback will be used instead.')}}else i=l.isPlainObject(r)?new g(r):r;n.extend(i)}return n},n.prototype.set=function(e,t){var n={};n[l.camelCase(e)]=t;n=f._convertData(n);l.extend(!0,this.defaults,n)},new n}),u.define(\"select2\u002Foptions\",[\"jquery\",\".\u002Fdefaults\",\".\u002Futils\"],function(c,n,u){function e(e,t){this.options=e,null!=t&&this.fromElement(t),null!=t&&(this.options=n.applyFromElement(this.options,t)),this.options=n.apply(this.options)}return e.prototype.fromElement=function(e){var t=[\"select2\"];null==this.options.multiple&&(this.options.multiple=e.prop(\"multiple\")),null==this.options.disabled&&(this.options.disabled=e.prop(\"disabled\")),null==this.options.autocomplete&&e.prop(\"autocomplete\")&&(this.options.autocomplete=e.prop(\"autocomplete\")),null==this.options.dir&&(e.prop(\"dir\")?this.options.dir=e.prop(\"dir\"):e.closest(\"[dir]\").prop(\"dir\")?this.options.dir=e.closest(\"[dir]\").prop(\"dir\"):this.options.dir=\"ltr\"),e.prop(\"disabled\",this.options.disabled),e.prop(\"multiple\",this.options.multiple),u.GetData(e[0],\"select2Tags\")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags=\"true\"` attributes and will be removed in future versions of Select2.'),u.StoreData(e[0],\"data\",u.GetData(e[0],\"select2Tags\")),u.StoreData(e[0],\"tags\",!0)),u.GetData(e[0],\"ajaxUrl\")&&(this.options.debug&&window.console&&console.warn&&console.warn(\"Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2.\"),e.attr(\"ajax--url\",u.GetData(e[0],\"ajaxUrl\")),u.StoreData(e[0],\"ajax-Url\",u.GetData(e[0],\"ajaxUrl\")));var n={};function s(e,t){return t.toUpperCase()}for(var i=0;i\u003Ce[0].attributes.length;i++){var r=e[0].attributes[i].name,o=\"data-\";r.substr(0,o.length)==o&&(r=r.substring(o.length),o=u.GetData(e[0],r),n[r.replace(\u002F-([a-z])\u002Fg,s)]=o)}c.fn.jquery&&\"1.\"==c.fn.jquery.substr(0,2)&&e[0].dataset&&(n=c.extend(!0,{},e[0].dataset,n));var a,l=c.extend(!0,{},u.GetData(e[0]),n);for(a in l=u._convertData(l))-1\u003Ct.indexOf(a)||(c.isPlainObject(this.options[a])?c.extend(this.options[a],l[a]):this.options[a]=l[a]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),u.define(\"select2\u002Fcore\",[\"jquery\",\".\u002Foptions\",\".\u002Futils\",\".\u002Fkeys\"],function(t,i,r,s){var o=function(e,t){null!=r.GetData(e[0],\"select2\")&&r.GetData(e[0],\"select2\").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new i(t,e),o.__super__.constructor.call(this);var n=e.attr(\"tabindex\")||0;r.StoreData(e[0],\"old-tabindex\",n),e.attr(\"tabindex\",\"-1\");t=this.options.get(\"dataAdapter\");this.dataAdapter=new t(e,this.options);n=this.render();this._placeContainer(n);t=this.options.get(\"selectionAdapter\");this.selection=new t(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,n);t=this.options.get(\"dropdownAdapter\");this.dropdown=new t(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,n);n=this.options.get(\"resultsAdapter\");this.results=new n(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var s=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){s.trigger(\"selection:update\",{data:e})}),e[0].classList.add(\"select2-hidden-accessible\"),e.attr(\"aria-hidden\",\"true\"),this._syncAttributes(),r.StoreData(e[0],\"select2\",this),e.data(\"select2\",this)};return r.Extend(o,r.Observable),o.prototype._generateId=function(e){return\"select2-\"+(null!=e.attr(\"id\")?e.attr(\"id\"):null!=e.attr(\"name\")?e.attr(\"name\")+\"-\"+r.generateChars(2):r.generateChars(4)).replace(\u002F(:|\\.|\\[|\\]|,)\u002Fg,\"\")},o.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get(\"width\"));null!=t&&e.css(\"width\",t)},o.prototype._resolveWidth=function(e,t){var n=\u002F^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))\u002Fi;if(\"resolve\"==t){var s=this._resolveWidth(e,\"style\");return null!=s?s:this._resolveWidth(e,\"element\")}if(\"element\"==t){s=e.outerWidth(!1);return s\u003C=0?\"auto\":s+\"px\"}if(\"style\"!=t)return\"computedstyle\"!=t?t:window.getComputedStyle(e[0]).width;e=e.attr(\"style\");if(\"string\"!=typeof e)return null;for(var i=e.split(\";\"),r=0,o=i.length;r\u003Co;r+=1){var a=i[r].replace(\u002F\\s\u002Fg,\"\").match(n);if(null!==a&&1\u003C=a.length)return a[1]}return null},o.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},o.prototype._registerDomEvents=function(){var t=this;this.$element.on(\"change.select2\",function(){t.dataAdapter.current(function(e){t.trigger(\"selection:update\",{data:e})})}),this.$element.on(\"focus.select2\",function(e){t.trigger(\"focus\",e)}),this._syncA=r.bind(this._syncAttributes,this),this._syncS=r.bind(this._syncSubtree,this),this._observer=new window.MutationObserver(function(e){t._syncA(),t._syncS(e)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})},o.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on(\"*\",function(e,t){n.trigger(e,t)})},o.prototype._registerSelectionEvents=function(){var n=this,s=[\"toggle\",\"focus\"];this.selection.on(\"toggle\",function(){n.toggleDropdown()}),this.selection.on(\"focus\",function(e){n.focus(e)}),this.selection.on(\"*\",function(e,t){-1===s.indexOf(e)&&n.trigger(e,t)})},o.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on(\"*\",function(e,t){n.trigger(e,t)})},o.prototype._registerResultsEvents=function(){var n=this;this.results.on(\"*\",function(e,t){n.trigger(e,t)})},o.prototype._registerEvents=function(){var n=this;this.on(\"open\",function(){n.$container[0].classList.add(\"select2-container--open\")}),this.on(\"close\",function(){n.$container[0].classList.remove(\"select2-container--open\")}),this.on(\"enable\",function(){n.$container[0].classList.remove(\"select2-container--disabled\")}),this.on(\"disable\",function(){n.$container[0].classList.add(\"select2-container--disabled\")}),this.on(\"blur\",function(){n.$container[0].classList.remove(\"select2-container--focus\")}),this.on(\"query\",function(t){n.isOpen()||n.trigger(\"open\",{}),this.dataAdapter.query(t,function(e){n.trigger(\"results:all\",{data:e,query:t})})}),this.on(\"query:append\",function(t){this.dataAdapter.query(t,function(e){n.trigger(\"results:append\",{data:e,query:t})})}),this.on(\"keypress\",function(e){var t=e.which;n.isOpen()?t===s.ESC||t===s.UP&&e.altKey?(n.close(e),e.preventDefault()):t===s.ENTER||t===s.TAB?(n.trigger(\"results:select\",{}),e.preventDefault()):t===s.SPACE&&e.ctrlKey?(n.trigger(\"results:toggle\",{}),e.preventDefault()):t===s.UP?(n.trigger(\"results:previous\",{}),e.preventDefault()):t===s.DOWN&&(n.trigger(\"results:next\",{}),e.preventDefault()):(t===s.ENTER||t===s.SPACE||t===s.DOWN&&e.altKey)&&(n.open(),e.preventDefault())})},o.prototype._syncAttributes=function(){this.options.set(\"disabled\",this.$element.prop(\"disabled\")),this.isDisabled()?(this.isOpen()&&this.close(),this.trigger(\"disable\",{})):this.trigger(\"enable\",{})},o.prototype._isChangeMutation=function(e){var t=this;if(e.addedNodes&&0\u003Ce.addedNodes.length){for(var n=0;n\u003Ce.addedNodes.length;n++)if(e.addedNodes[n].selected)return!0}else{if(e.removedNodes&&0\u003Ce.removedNodes.length)return!0;if(Array.isArray(e))return e.some(function(e){return t._isChangeMutation(e)})}return!1},o.prototype._syncSubtree=function(e){var e=this._isChangeMutation(e),t=this;e&&this.dataAdapter.current(function(e){t.trigger(\"selection:update\",{data:e})})},o.prototype.trigger=function(e,t){var n=o.__super__.trigger,s={open:\"opening\",close:\"closing\",select:\"selecting\",unselect:\"unselecting\",clear:\"clearing\"};if(void 0===t&&(t={}),e in s){var i=s[e],s={prevented:!1,name:e,args:t};if(n.call(this,i,s),s.prevented)return void(t.prevented=!0)}n.call(this,e,t)},o.prototype.toggleDropdown=function(){this.isDisabled()||(this.isOpen()?this.close():this.open())},o.prototype.open=function(){this.isOpen()||this.isDisabled()||this.trigger(\"query\",{})},o.prototype.close=function(e){this.isOpen()&&this.trigger(\"close\",{originalEvent:e})},o.prototype.isEnabled=function(){return!this.isDisabled()},o.prototype.isDisabled=function(){return this.options.get(\"disabled\")},o.prototype.isOpen=function(){return this.$container[0].classList.contains(\"select2-container--open\")},o.prototype.hasFocus=function(){return this.$container[0].classList.contains(\"select2-container--focus\")},o.prototype.focus=function(e){this.hasFocus()||(this.$container[0].classList.add(\"select2-container--focus\"),this.trigger(\"focus\",{}))},o.prototype.enable=function(e){this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"enable\")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop(\"disabled\") instead.'),null!=e&&0!==e.length||(e=[!0]);e=!e[0];this.$element.prop(\"disabled\",e)},o.prototype.data=function(){this.options.get(\"debug\")&&0\u003Carguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2(\"data\")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},o.prototype.val=function(e){if(this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"val\")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();e=e[0];Array.isArray(e)&&(e=e.map(function(e){return e.toString()})),this.$element.val(e).trigger(\"input\").trigger(\"change\")},o.prototype.destroy=function(){r.RemoveData(this.$container[0]),this.$container.remove(),this._observer.disconnect(),this._observer=null,this._syncA=null,this._syncS=null,this.$element.off(\".select2\"),this.$element.attr(\"tabindex\",r.GetData(this.$element[0],\"old-tabindex\")),this.$element[0].classList.remove(\"select2-hidden-accessible\"),this.$element.attr(\"aria-hidden\",\"false\"),r.RemoveData(this.$element[0]),this.$element.removeData(\"select2\"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},o.prototype.render=function(){var e=t('\u003Cspan class=\"select2 select2-container\">\u003Cspan class=\"selection\">\u003C\u002Fspan>\u003Cspan class=\"dropdown-wrapper\" aria-hidden=\"true\">\u003C\u002Fspan>\u003C\u002Fspan>');return e.attr(\"dir\",this.options.get(\"dir\")),this.$container=e,this.$container[0].classList.add(\"select2-container--\"+this.options.get(\"theme\")),r.StoreData(e[0],\"element\",this.$element),e},o}),u.define(\"jquery-mousewheel\",[\"jquery\"],function(e){return e}),u.define(\"jquery.select2\",[\"jquery\",\"jquery-mousewheel\",\".\u002Fselect2\u002Fcore\",\".\u002Fselect2\u002Fdefaults\",\".\u002Fselect2\u002Futils\"],function(i,e,r,t,o){var a;return null==i.fn.select2&&(a=[\"open\",\"close\",\"destroy\"],i.fn.select2=function(t){if(\"object\"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new r(i(this),e)}),this;if(\"string\"!=typeof t)throw new Error(\"Invalid arguments for Select2: \"+t);var n,s=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=o.GetData(this,\"select2\");null==e&&window.console&&console.error&&console.error(\"The select2('\"+t+\"') method was called on an element that is not using Select2.\"),n=e[t].apply(e,s)}),-1\u003Ca.indexOf(t)?this:n}),null==i.fn.select2.defaults&&(i.fn.select2.defaults=t),r}),{define:u.define,require:u.require});function b(e,t){return i.call(e,t)}function l(e,t){var n,s,i,r,o,a,l,c,u,d,p=t&&t.split(\"\u002F\"),h=y.map,f=h&&h[\"*\"]||{};if(e){for(t=(e=e.split(\"\u002F\")).length-1,y.nodeIdCompat&&_.test(e[t])&&(e[t]=e[t].replace(_,\"\")),\".\"===e[0].charAt(0)&&p&&(e=p.slice(0,p.length-1).concat(e)),c=0;c\u003Ce.length;c++)\".\"===(d=e[c])?(e.splice(c,1),--c):\"..\"===d&&(0===c||1===c&&\"..\"===e[2]||\"..\"===e[c-1]||0\u003Cc&&(e.splice(c-1,2),c-=2));e=e.join(\"\u002F\")}if((p||f)&&h){for(c=(n=e.split(\"\u002F\")).length;0\u003Cc;--c){if(s=n.slice(0,c).join(\"\u002F\"),p)for(u=p.length;0\u003Cu;--u)if(i=h[p.slice(0,u).join(\"\u002F\")],i=i&&i[s]){r=i,o=c;break}if(r)break;!a&&f&&f[s]&&(a=f[s],l=c)}!r&&a&&(r=a,o=l),r&&(n.splice(0,o,r),e=n.join(\"\u002F\"))}return e}function w(t,n){return function(){var e=a.call(arguments,0);return\"string\"!=typeof e[0]&&1===e.length&&e.push(null),o.apply(p,e.concat([t,n]))}}function x(e){var t;if(b(m,e)&&(t=m[e],delete m[e],v[e]=!0,r.apply(p,t)),!b(g,e)&&!b(v,e))throw new Error(\"No \"+e);return g[e]}function c(e){var t,n=e?e.indexOf(\"!\"):-1;return-1\u003Cn&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function A(e){return e?c(e):[]}var u=s.require(\"jquery.select2\");return t.fn.select2.amd=s,u});\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Factions\u002Fwppm_check_cron_attachment.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Factions\u002Fwppm_check_cron_attachment.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Factions\u002Fwppm_check_cron_attachment.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Factions\u002Fwppm_check_cron_attachment.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,48 +1,48 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb;\n-$garbage_collection_time = get_option('wppm_garbage_collection_time' ,'');\n-if ( empty( $garbage_collection_time ) ) {\n-    update_option( 'wppm_garbage_collection_time', current_time( 'mysql' ) );\n-    return;\n-}\n-$check_flag = false;\n-$now = current_time( 'timestamp' );\n-$ago = strtotime($garbage_collection_time);\n-$diff = $now - $ago;\n-if($diff >= DAY_IN_SECONDS){\n-  $check_flag = true;\n-}\n-if(!$check_flag){\n-  return;\n-}\n-$attachments=$wpdb->get_results((\"select id,name,date_created from {$wpdb->prefix}wppm_attachments where is_active=0\"));\n-if($attachments){\n-  foreach($attachments as $attachment){\n-    $created_time   = $attachment->date_created;\n-    $upload_dir  = wp_upload_dir();\n-    $time  = strtotime($created_time);\n-    $month = wp_date(\"m\",$time);\n-    $year  = wp_date(\"Y\",$time);\n-    $filename = sanitize_file_name( $attachment->name );\n-    $filepath = $upload_dir['basedir'] . '\u002Fwppm\u002F'.'\u002F'.$year.'\u002F'.$month.'\u002F'. $filename;\n-    $attachment_updated_time = strtotime($created_time);\n-    $diff = $now - $attachment_updated_time;\n-    if($diff > DAY_IN_SECONDS){\n-        $attachment_id = absint( $attachment->id );\n-        $wpdb->delete(\n-            $wpdb->prefix . 'wppm_attachments',\n-            array( 'id' => $attachment_id ),\n-            array( '%d' )\n-        );\n-        if(file_exists($filepath)){\n-            \u002F\u002Funlink($filepath);\n-            wp_delete_file($filepath);\n-        }\n-    }\n-  }\n-}\n-update_option('wppm_garbage_collection_time', current_time( 'mysql' ) );\n-    \n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb;\r\n+$garbage_collection_time = get_option('wppm_garbage_collection_time' ,'');\r\n+if ( empty( $garbage_collection_time ) ) {\r\n+    update_option( 'wppm_garbage_collection_time', current_time( 'mysql' ) );\r\n+    return;\r\n+}\r\n+$check_flag = false;\r\n+$now = current_time( 'timestamp' );\r\n+$ago = strtotime($garbage_collection_time);\r\n+$diff = $now - $ago;\r\n+if($diff >= DAY_IN_SECONDS){\r\n+  $check_flag = true;\r\n+}\r\n+if(!$check_flag){\r\n+  return;\r\n+}\r\n+$attachments=$wpdb->get_results((\"select id,name,date_created from {$wpdb->prefix}wppm_attachments where is_active=0\"));\r\n+if($attachments){\r\n+  foreach($attachments as $attachment){\r\n+    $created_time   = $attachment->date_created;\r\n+    $upload_dir  = wp_upload_dir();\r\n+    $time  = strtotime($created_time);\r\n+    $month = wp_date(\"m\",$time);\r\n+    $year  = wp_date(\"Y\",$time);\r\n+    $filename = sanitize_file_name( $attachment->name );\r\n+    $filepath = $upload_dir['basedir'] . '\u002Fwppm\u002F'.'\u002F'.$year.'\u002F'.$month.'\u002F'. $filename;\r\n+    $attachment_updated_time = strtotime($created_time);\r\n+    $diff = $now - $attachment_updated_time;\r\n+    if($diff > DAY_IN_SECONDS){\r\n+        $attachment_id = absint( $attachment->id );\r\n+        $wpdb->delete(\r\n+            $wpdb->prefix . 'wppm_attachments',\r\n+            array( 'id' => $attachment_id ),\r\n+            array( '%d' )\r\n+        );\r\n+        if(file_exists($filepath)){\r\n+            \u002F\u002Funlink($filepath);\r\n+            wp_delete_file($filepath);\r\n+        }\r\n+    }\r\n+  }\r\n+}\r\n+update_option('wppm_garbage_collection_time', current_time( 'mysql' ) );\r\n+    \r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Faddons.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Faddons.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Faddons.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Faddons.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,316 +1,316 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb, $wppmfunction;\n-?>\n-\u003Cdiv class=\"wppm_bootstrap\">\n-    \u003C!-- \u003Cdiv class=\"row\"> -->\n-        \u003Cdiv>\n-            \u003Ch3>\n-                \u003C?php esc_html_e('Addons','taskbuilder');?>\n-                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fsupport\u002F\" class=\"btn btn-info wppm-help-site-link\" style=\"float:right;margin-right:1% !important;margin-top:-9px !important;\">\u003C?php esc_html_e('Need Help? Click Here!','taskbuilder');?>\u003C\u002Fa>\n-            \u003C\u002Fh3>\n-            \u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\n-            \u003Cdiv>\n-            \u003C?php echo esc_html_e('Addons are available as shown below:','taskbuilder');?>\n-            \u003C\u002Fdiv>\n-            \u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\n-            \u003Cdiv class=\"pricing-flex\">\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv class=\"pheader\">\n-                        \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcalendar.svg'); ?>\">\u003C?php echo esc_html_e('Calendar','taskbuilder');?>\u003C\u002Fh3>\n-                    \u003C\u002Fdiv>\n-                    \u003Cdiv class=\"pbody\">\n-                        \u003Cdiv class=\"addon-container\">\n-                            \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                            \u003Cdiv class=\"addon-details\">\n-                                \u003C?php \n-                                echo esc_html_e('Calendar can help to schedule tasks to gain control over your work.\n-                                The use of task calendar  is the main reason that keeps your day organized and supercharge your level of productivity.','taskbuilder');?>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                    \u003Cdiv class=\"pfooter\">\n-                        \u003Cdiv class=\"purchase_addon\">\n-                            \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv>\n-                            \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Ftask-calendar\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv>\n-                        \u003Cdiv class=\"pheader\">\n-                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Femail-piping.svg'); ?>\">\u003C?php echo esc_html_e('Email Piping','taskbuilder');?>\u003C\u002Fh3>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pbody\">\n-                            \u003Cdiv class=\"addon-container\">\n-                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                                \u003Cdiv class=\"addon-details\">\n-                                    \u003C?php \n-                                    echo esc_html_e('Email Piping can help to create task from incoming email.\n-                                    The use of Email Piping is to convert incoming emails directly into actionable tasks within your project management system.','taskbuilder');?>\n-                                \u003C\u002Fdiv>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pfooter\">\n-                            \u003Cdiv class=\"purchase_addon\">\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                            \u003Cdiv>\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Femail-piping\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv>\n-                        \u003Cdiv class=\"pheader\">\n-                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcf.svg'); ?>\">\u003C?php echo esc_html_e('Custom Fields','taskbuilder');?>\u003C\u002Fh3>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pbody\">\n-                            \u003Cdiv class=\"addon-container\">\n-                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                                \u003Cdiv class=\"addon-details\">\n-                                    \u003C?php echo esc_html_e('Custom Fields extension allows you to collect extra information for your tasks. The Custom Fields extension is a very important tool for gathering accurate details on all your tasks.','taskbuilder');?>\n-                                \u003C\u002Fdiv>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pfooter\">\n-                            \u003Cdiv class=\"purchase_addon\">\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                            \u003Cdiv>\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fcustom-fields\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv>\n-                        \u003Cdiv class=\"pheader\">\n-                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftime-tracker.svg'); ?>\"> \u003C?php echo esc_html_e('Time Tracker','taskbuilder');?>\u003C\u002Fh3>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pbody\">\n-                            \u003Cdiv class=\"addon-container\">\n-                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                                \u003Cdiv class=\"addon-details\">\n-                                    \u003C?php echo esc_html_e('Time Tracker add-on will help you to record and track the time spent on each individual task. We have designed this like a stop-watch for a task.','taskbuilder');?>\n-                                    \u003C\u002Fdiv>\n-                                \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pfooter\">\n-                            \u003Cdiv class=\"purchase_addon\">\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                            \u003Cdiv>\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Ftime-tracker\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv>\n-                        \u003Cdiv class=\"pheader\">\n-                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fgantt_chart.svg'); ?>\">\u003C?php echo esc_html_e('Gantt Chart','taskbuilder');?> \u003C\u002Fh3>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pbody\">\n-                            \u003Cdiv class=\"addon-container\">\n-                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                                \u003Cdiv class=\"addon-details\">\n-                                    \u003C?php echo esc_html_e('Gantt Chart add-on effectively time manage your tasks and visualize upcoming deadlines for any project. Projects planners also use Gantt charts to maintain a bird&rsquo;s eye view of projects.','taskbuilder');?>\n-                                \u003C\u002Fdiv>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pfooter\">\n-                            \u003Cdiv class=\"purchase_addon\">\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                            \u003Cdiv>\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fgantt-chart\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv>\n-                        \u003Cdiv class=\"pheader\">\n-                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fclone_project.svg'); ?>\"> \u003C?php echo esc_html_e('Duplicate Project','taskbuilder');?>\u003C\u002Fh3>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pbody\">\n-                            \u003Cdiv class=\"addon-container\">\n-                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                                \u003Cdiv class=\"addon-details\">\n-                                \u003C?php echo esc_html_e('Duplicate Project extention allows you to clone existing project and you will get same project with(tasks+checklists).','taskbuilder');?>\u003C\u002Fdiv>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pfooter\">\n-                            \u003Cdiv class=\"purchase_addon\">\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                            \u003Cdiv>\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fduplicate-project\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv>\n-                        \u003Cdiv class=\"pheader\">\n-                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Freports-icon.svg'); ?>\"> \u003C?php echo esc_html_e('Reports','taskbuilder');?>\u003C\u002Fh3>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pbody\">\n-                            \u003Cdiv class=\"addon-container\">\n-                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                                \u003Cdiv class=\"addon-details\">\n-                                \u003C?php echo esc_html_e('Report extention allows you to create detailed project progress reports to view, print or download as a PDF or in CSV. Also, you can download report in csv format.','taskbuilder');?>\u003C\u002Fdiv>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pfooter\">\n-                            \u003Cdiv class=\"purchase_addon\">\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                            \u003Cdiv>\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Freport\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv>\n-                        \u003Cdiv class=\"pheader\">\n-                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fuser_group.svg'); ?>\"> \u003C?php echo esc_html_e('Buddypress Integration','taskbuilder');?>\u003C\u002Fh3>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pbody\">\n-                            \u003Cdiv class=\"addon-container\">\n-                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                                \u003Cdiv class=\"addon-details\">\n-                                \u003C?php echo esc_html_e('Buddypress extention allows you to create and manage projects in departments. This gives the group access to manage the project,tasks from frontend.','taskbuilder');?>\u003C\u002Fdiv>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pfooter\">\n-                            \u003Cdiv class=\"purchase_addon\">\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                            \u003Cdiv>\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fbuddypress\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv>\n-                        \u003Cdiv class=\"pheader\">\n-                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftaskbuilder_wc.svg'); ?>\"> \u003C?php echo esc_html_e('WooCommerce Integration','taskbuilder');?>\u003C\u002Fh3>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pbody\">\n-                            \u003Cdiv class=\"addon-container\">\n-                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                                \u003Cdiv class=\"addon-details\">\n-                                \u003C?php echo esc_html_e('WooCommerce extention allows you to automatically create task after order received. You can set task fields in setting. In task description you can set order details like product qty,price, total etc.','taskbuilder');?>\u003C\u002Fdiv>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pfooter\">\n-                            \u003Cdiv class=\"purchase_addon\">\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                            \u003Cdiv>\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fwoocommerce\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv>\n-                        \u003Cdiv class=\"pheader\">\n-                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdue_date_reminder_icon.svg'); ?>\"> \u003C?php echo esc_html_e('Due Date Reminder','taskbuilder');?>\u003C\u002Fh3>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pbody\">\n-                            \u003Cdiv class=\"addon-container\">\n-                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                                \u003Cdiv class=\"addon-details\">\n-                                \u003C?php echo esc_html_e('Due date reminder are super helpful for keeping your team on track to hit deadlines. Email notification will send to customer before due date of task.','taskbuilder');?>\u003C\u002Fdiv>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pfooter\">\n-                            \u003Cdiv class=\"purchase_addon\">\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                            \u003Cdiv>\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdue-date-reminder\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv>\n-                        \u003Cdiv class=\"pheader\">\n-                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fuser_group.svg'); ?>\"> \u003C?php echo esc_html_e('Users Group','taskbuilder');?>\u003C\u002Fh3>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pbody\">\n-                            \u003Cdiv class=\"addon-container\">\n-                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                                \u003Cdiv class=\"addon-details\">\n-                                \u003C?php echo esc_html_e('Using usergroup add-on you can assign group of users to project and those group assign to project can be assign to tasks of project. You can create groups of users to whom you can assign projects and tasks to just like individual user.','taskbuilder');?>\u003C\u002Fdiv>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pfooter\">\n-                            \u003Cdiv class=\"purchase_addon\">\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                            \u003Cdiv>\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdue-date-reminder\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv>\n-                        \u003Cdiv class=\"pheader\">\n-                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Frecurrent_task.svg'); ?>\"> \u003C?php echo esc_html_e('Recurrent Task','taskbuilder');?>\u003C\u002Fh3>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pbody\">\n-                            \u003Cdiv class=\"addon-container\">\n-                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                                \u003Cdiv class=\"addon-details\">\n-                                \u003C?php echo esc_html_e('Recurring tasks are automated task entries that repeat at defined intervals—daily, weekly, monthly. They eliminate the need to manually re-enter routine tasks, keeping workflows smooth and consistent.','taskbuilder');?>\u003C\u002Fdiv>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pfooter\">\n-                            \u003Cdiv class=\"purchase_addon\">\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                            \u003Cdiv>\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Frecurrent-task\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"pricing-widget\">\n-                    \u003Cdiv>\n-                        \u003Cdiv class=\"pheader\">\n-                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Foverdue.svg'); ?>\"> \u003C?php echo esc_html_e('Overdue Notifier','taskbuilder');?>\u003C\u002Fh3>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pbody\">\n-                            \u003Cdiv class=\"addon-container\">\n-                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\n-                                \u003Cdiv class=\"addon-details\">\n-                                \u003C?php echo esc_html_e('Overdue Notifier is a feature that automatically sends email notifications when a task becomes overdue. This will helps keep team members or assigned users aware of their pending or overdue responsibilities.','taskbuilder');?>\u003C\u002Fdiv>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003Cdiv class=\"pfooter\">\n-                            \u003Cdiv class=\"purchase_addon\">\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                            \u003Cdiv>\n-                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Foverdue-notifier\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\n-                            \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-    \u003C!-- \u003C\u002Fdiv> -->\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb, $wppmfunction;\r\n+?>\r\n+\u003Cdiv class=\"wppm_bootstrap\">\r\n+    \u003C!-- \u003Cdiv class=\"row\"> -->\r\n+        \u003Cdiv>\r\n+            \u003Ch3>\r\n+                \u003C?php esc_html_e('Addons','taskbuilder');?>\r\n+                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fsupport\u002F\" class=\"btn btn-info wppm-help-site-link\" style=\"float:right;margin-right:1% !important;margin-top:-9px !important;\">\u003C?php esc_html_e('Need Help? Click Here!','taskbuilder');?>\u003C\u002Fa>\r\n+            \u003C\u002Fh3>\r\n+            \u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\r\n+            \u003Cdiv>\r\n+            \u003C?php echo esc_html_e('Addons are available as shown below:','taskbuilder');?>\r\n+            \u003C\u002Fdiv>\r\n+            \u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\r\n+            \u003Cdiv class=\"pricing-flex\">\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv class=\"pheader\">\r\n+                        \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcalendar.svg'); ?>\">\u003C?php echo esc_html_e('Calendar','taskbuilder');?>\u003C\u002Fh3>\r\n+                    \u003C\u002Fdiv>\r\n+                    \u003Cdiv class=\"pbody\">\r\n+                        \u003Cdiv class=\"addon-container\">\r\n+                            \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                            \u003Cdiv class=\"addon-details\">\r\n+                                \u003C?php \r\n+                                echo esc_html_e('Calendar can help to schedule tasks to gain control over your work.\r\n+                                The use of task calendar  is the main reason that keeps your day organized and supercharge your level of productivity.','taskbuilder');?>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                    \u003Cdiv class=\"pfooter\">\r\n+                        \u003Cdiv class=\"purchase_addon\">\r\n+                            \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv>\r\n+                            \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Ftask-calendar\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv>\r\n+                        \u003Cdiv class=\"pheader\">\r\n+                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Femail-piping.svg'); ?>\">\u003C?php echo esc_html_e('Email Piping','taskbuilder');?>\u003C\u002Fh3>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pbody\">\r\n+                            \u003Cdiv class=\"addon-container\">\r\n+                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                                \u003Cdiv class=\"addon-details\">\r\n+                                    \u003C?php \r\n+                                    echo esc_html_e('Email Piping can help to create task from incoming email.\r\n+                                    The use of Email Piping is to convert incoming emails directly into actionable tasks within your project management system.','taskbuilder');?>\r\n+                                \u003C\u002Fdiv>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pfooter\">\r\n+                            \u003Cdiv class=\"purchase_addon\">\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cdiv>\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Femail-piping\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv>\r\n+                        \u003Cdiv class=\"pheader\">\r\n+                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcf.svg'); ?>\">\u003C?php echo esc_html_e('Custom Fields','taskbuilder');?>\u003C\u002Fh3>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pbody\">\r\n+                            \u003Cdiv class=\"addon-container\">\r\n+                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                                \u003Cdiv class=\"addon-details\">\r\n+                                    \u003C?php echo esc_html_e('Custom Fields extension allows you to collect extra information for your tasks. The Custom Fields extension is a very important tool for gathering accurate details on all your tasks.','taskbuilder');?>\r\n+                                \u003C\u002Fdiv>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pfooter\">\r\n+                            \u003Cdiv class=\"purchase_addon\">\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cdiv>\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fcustom-fields\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv>\r\n+                        \u003Cdiv class=\"pheader\">\r\n+                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftime-tracker.svg'); ?>\"> \u003C?php echo esc_html_e('Time Tracker','taskbuilder');?>\u003C\u002Fh3>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pbody\">\r\n+                            \u003Cdiv class=\"addon-container\">\r\n+                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                                \u003Cdiv class=\"addon-details\">\r\n+                                    \u003C?php echo esc_html_e('Time Tracker add-on will help you to record and track the time spent on each individual task. We have designed this like a stop-watch for a task.','taskbuilder');?>\r\n+                                    \u003C\u002Fdiv>\r\n+                                \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pfooter\">\r\n+                            \u003Cdiv class=\"purchase_addon\">\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cdiv>\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Ftime-tracker\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv>\r\n+                        \u003Cdiv class=\"pheader\">\r\n+                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fgantt_chart.svg'); ?>\">\u003C?php echo esc_html_e('Gantt Chart','taskbuilder');?> \u003C\u002Fh3>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pbody\">\r\n+                            \u003Cdiv class=\"addon-container\">\r\n+                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                                \u003Cdiv class=\"addon-details\">\r\n+                                    \u003C?php echo esc_html_e('Gantt Chart add-on effectively time manage your tasks and visualize upcoming deadlines for any project. Projects planners also use Gantt charts to maintain a bird&rsquo;s eye view of projects.','taskbuilder');?>\r\n+                                \u003C\u002Fdiv>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pfooter\">\r\n+                            \u003Cdiv class=\"purchase_addon\">\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cdiv>\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fgantt-chart\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv>\r\n+                        \u003Cdiv class=\"pheader\">\r\n+                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fclone_project.svg'); ?>\"> \u003C?php echo esc_html_e('Duplicate Project','taskbuilder');?>\u003C\u002Fh3>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pbody\">\r\n+                            \u003Cdiv class=\"addon-container\">\r\n+                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                                \u003Cdiv class=\"addon-details\">\r\n+                                \u003C?php echo esc_html_e('Duplicate Project extention allows you to clone existing project and you will get same project with(tasks+checklists).','taskbuilder');?>\u003C\u002Fdiv>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pfooter\">\r\n+                            \u003Cdiv class=\"purchase_addon\">\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cdiv>\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fduplicate-project\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv>\r\n+                        \u003Cdiv class=\"pheader\">\r\n+                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Freports-icon.svg'); ?>\"> \u003C?php echo esc_html_e('Reports','taskbuilder');?>\u003C\u002Fh3>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pbody\">\r\n+                            \u003Cdiv class=\"addon-container\">\r\n+                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                                \u003Cdiv class=\"addon-details\">\r\n+                                \u003C?php echo esc_html_e('Report extention allows you to create detailed project progress reports to view, print or download as a PDF or in CSV. Also, you can download report in csv format.','taskbuilder');?>\u003C\u002Fdiv>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pfooter\">\r\n+                            \u003Cdiv class=\"purchase_addon\">\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cdiv>\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Freport\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv>\r\n+                        \u003Cdiv class=\"pheader\">\r\n+                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fuser_group.svg'); ?>\"> \u003C?php echo esc_html_e('Buddypress Integration','taskbuilder');?>\u003C\u002Fh3>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pbody\">\r\n+                            \u003Cdiv class=\"addon-container\">\r\n+                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                                \u003Cdiv class=\"addon-details\">\r\n+                                \u003C?php echo esc_html_e('Buddypress extention allows you to create and manage projects in departments. This gives the group access to manage the project,tasks from frontend.','taskbuilder');?>\u003C\u002Fdiv>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pfooter\">\r\n+                            \u003Cdiv class=\"purchase_addon\">\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cdiv>\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fbuddypress\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv>\r\n+                        \u003Cdiv class=\"pheader\">\r\n+                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftaskbuilder_wc.svg'); ?>\"> \u003C?php echo esc_html_e('WooCommerce Integration','taskbuilder');?>\u003C\u002Fh3>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pbody\">\r\n+                            \u003Cdiv class=\"addon-container\">\r\n+                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                                \u003Cdiv class=\"addon-details\">\r\n+                                \u003C?php echo esc_html_e('WooCommerce extention allows you to automatically create task after order received. You can set task fields in setting. In task description you can set order details like product qty,price, total etc.','taskbuilder');?>\u003C\u002Fdiv>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pfooter\">\r\n+                            \u003Cdiv class=\"purchase_addon\">\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cdiv>\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fwoocommerce\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv>\r\n+                        \u003Cdiv class=\"pheader\">\r\n+                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdue_date_reminder_icon.svg'); ?>\"> \u003C?php echo esc_html_e('Due Date Reminder','taskbuilder');?>\u003C\u002Fh3>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pbody\">\r\n+                            \u003Cdiv class=\"addon-container\">\r\n+                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                                \u003Cdiv class=\"addon-details\">\r\n+                                \u003C?php echo esc_html_e('Due date reminder are super helpful for keeping your team on track to hit deadlines. Email notification will send to customer before due date of task.','taskbuilder');?>\u003C\u002Fdiv>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pfooter\">\r\n+                            \u003Cdiv class=\"purchase_addon\">\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cdiv>\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdue-date-reminder\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv>\r\n+                        \u003Cdiv class=\"pheader\">\r\n+                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fuser_group.svg'); ?>\"> \u003C?php echo esc_html_e('Users Group','taskbuilder');?>\u003C\u002Fh3>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pbody\">\r\n+                            \u003Cdiv class=\"addon-container\">\r\n+                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                                \u003Cdiv class=\"addon-details\">\r\n+                                \u003C?php echo esc_html_e('Using usergroup add-on you can assign group of users to project and those group assign to project can be assign to tasks of project. You can create groups of users to whom you can assign projects and tasks to just like individual user.','taskbuilder');?>\u003C\u002Fdiv>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pfooter\">\r\n+                            \u003Cdiv class=\"purchase_addon\">\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cdiv>\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdue-date-reminder\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv>\r\n+                        \u003Cdiv class=\"pheader\">\r\n+                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Frecurrent_task.svg'); ?>\"> \u003C?php echo esc_html_e('Recurrent Task','taskbuilder');?>\u003C\u002Fh3>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pbody\">\r\n+                            \u003Cdiv class=\"addon-container\">\r\n+                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                                \u003Cdiv class=\"addon-details\">\r\n+                                \u003C?php echo esc_html_e('Recurring tasks are automated task entries that repeat at defined intervals—daily, weekly, monthly. They eliminate the need to manually re-enter routine tasks, keeping workflows smooth and consistent.','taskbuilder');?>\u003C\u002Fdiv>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pfooter\">\r\n+                            \u003Cdiv class=\"purchase_addon\">\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cdiv>\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Frecurrent-task\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"pricing-widget\">\r\n+                    \u003Cdiv>\r\n+                        \u003Cdiv class=\"pheader\">\r\n+                            \u003Ch3 class=\"title\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Foverdue.svg'); ?>\"> \u003C?php echo esc_html_e('Overdue Notifier','taskbuilder');?>\u003C\u002Fh3>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pbody\">\r\n+                            \u003Cdiv class=\"addon-container\">\r\n+                                \u003Ci class=\"fas fa-arrow-right\">\u003C\u002Fi>\r\n+                                \u003Cdiv class=\"addon-details\">\r\n+                                \u003C?php echo esc_html_e('Overdue Notifier is a feature that automatically sends email notifications when a task becomes overdue. This will helps keep team members or assigned users aware of their pending or overdue responsibilities.','taskbuilder');?>\u003C\u002Fdiv>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003Cdiv class=\"pfooter\">\r\n+                            \u003Cdiv class=\"purchase_addon\">\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('Purchase','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cdiv>\r\n+                                \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Foverdue-notifier\u002F\" target=\"__blank\" type=\"button\" class=\"btn btn-success\">\u003C?php echo esc_html_e('View Details','taskbuilder');?>\u003C\u002Fa>\r\n+                            \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C!-- \u003C\u002Fdiv> -->\r\n \u003C\u002Fdiv>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fattachment\u002Fwppm_download_attachment.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fattachment\u002Fwppm_download_attachment.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fattachment\u002Fwppm_download_attachment.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fattachment\u002Fwppm_download_attachment.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,81 +1,81 @@\n-\u003C?php\n-\u002F\u002F Exit if accessed directly\n-if ( ! defined( 'ABSPATH' ) ) exit;\n-\n-global $wpdb;\n-global $wp_filesystem;\n-if ( ! function_exists( 'WP_Filesystem' ) ) {\n-\trequire_once ABSPATH . 'wp-admin\u002Fincludes\u002Ffile.php';\n-}\n-WP_Filesystem();\n-$upload_dir   = wp_upload_dir();\n-$attach_id = (int) $attach_id;\n-$attachment = $wpdb->get_row(\n-    $wpdb->prepare(\n-        \"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",\n-        $attach_id\n-    )\n-);\n-if ( ! $attachment ) {\n-    wp_die( esc_html__( 'Invalid attachment.', 'taskbuilder' ) );\n-}\n-\n-if ( ! current_user_can( 'read' ) ) {\n-    wp_die( esc_html__( 'Unauthorized access.', 'taskbuilder' ) );\n-}\n-\n-$date_created = $attachment->date_created;\n-$timestamp = strtotime( $attachment->date_created );\n-if ( ! $timestamp ) {\n-    wp_die( esc_html__( 'Invalid file date.', 'taskbuilder' ) );\n-}\n-$time  = strtotime($date_created);\n-$month = wp_date(\"m\",$time);\n-$year  = wp_date(\"Y\",$time);\n-$findStr = \".txt\";\n-$filepath = \"\";\n-$attachment_name = sanitize_file_name($attachment->name);\n-$attach_file_name = sanitize_file_name($attachment->file_name);\n-$filepath = $attachment->file_path;\n-$file_contents = $wp_filesystem->get_contents( $filepath );\n-while ( ob_get_level() ) {\n-    ob_end_clean();\n-}\n-$base_dir = realpath( trailingslashit( $upload_dir['basedir'] ) . 'wppm\u002F' );\n-$filepath = realpath(trailingslashit($upload_dir['basedir']) . '\u002Fwppm'.'\u002F'.$year.'\u002F'.$month.'\u002F'. $attachment_name);\n-if (\n-  ! $filepath ||\n-  ! $base_dir ||\n-\n-  strpos( $filepath, $base_dir ) !== 0\n-) {\n-  wp_die( esc_html__( 'File not found.', 'taskbuilder' ) );\n-}\n-\u002F\u002FTurn off output buffering\n-if (ob_get_level()) ob_end_clean();\n-if( !file_exists($filepath)) return;\n-  $mime_type = wp_check_filetype($filepath);\n-  $content_type = ! empty( $mime_type['type'] )\n-    ? $mime_type['type']\n-    : 'application\u002Foctet-stream';\n-  header('Content-Type: ' . $content_type);\n-\u002F\u002F Check whether attachment is of image type\n-if($attachment->is_image){\n-  if(ob_get_length() > 0) {\n-    ob_clean();\n-  }\n-  \u002F\u002Freadfile( $filepath );\n-  echo $file_contents;\n-  exit;\n-}\n-header('Content-Description: File Transfer');\n-header('Cache-Control: public');\n-header(\"Content-Transfer-Encoding: binary\");\n-header(\"Content-Disposition: attachment;filename=\".($attach_file_name));\n-header('Content-Length: '.filesize($filepath));\n-if (ob_get_length()) ob_clean();\n-flush();\n-\u002F\u002Freadfile($filepath);\n-echo $file_contents;   \n-exit;\n-?>\n+\u003C?php\r\n+\u002F\u002F Exit if accessed directly\r\n+if ( ! defined( 'ABSPATH' ) ) exit;\r\n+\r\n+global $wpdb;\r\n+global $wp_filesystem;\r\n+if ( ! function_exists( 'WP_Filesystem' ) ) {\r\n+\trequire_once ABSPATH . 'wp-admin\u002Fincludes\u002Ffile.php';\r\n+}\r\n+WP_Filesystem();\r\n+$upload_dir   = wp_upload_dir();\r\n+$attach_id = (int) $attach_id;\r\n+$attachment = $wpdb->get_row(\r\n+    $wpdb->prepare(\r\n+        \"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",\r\n+        $attach_id\r\n+    )\r\n+);\r\n+if ( ! $attachment ) {\r\n+    wp_die( esc_html__( 'Invalid attachment.', 'taskbuilder' ) );\r\n+}\r\n+\r\n+if ( ! current_user_can( 'read' ) ) {\r\n+    wp_die( esc_html__( 'Unauthorized access.', 'taskbuilder' ) );\r\n+}\r\n+\r\n+$date_created = $attachment->date_created;\r\n+$timestamp = strtotime( $attachment->date_created );\r\n+if ( ! $timestamp ) {\r\n+    wp_die( esc_html__( 'Invalid file date.', 'taskbuilder' ) );\r\n+}\r\n+$time  = strtotime($date_created);\r\n+$month = wp_date(\"m\",$time);\r\n+$year  = wp_date(\"Y\",$time);\r\n+$findStr = \".txt\";\r\n+$filepath = \"\";\r\n+$attachment_name = sanitize_file_name($attachment->name);\r\n+$attach_file_name = sanitize_file_name($attachment->file_name);\r\n+$filepath = $attachment->file_path;\r\n+$file_contents = $wp_filesystem->get_contents( $filepath );\r\n+while ( ob_get_level() ) {\r\n+    ob_end_clean();\r\n+}\r\n+$base_dir = realpath( trailingslashit( $upload_dir['basedir'] ) . 'wppm\u002F' );\r\n+$filepath = realpath(trailingslashit($upload_dir['basedir']) . '\u002Fwppm'.'\u002F'.$year.'\u002F'.$month.'\u002F'. $attachment_name);\r\n+if (\r\n+  ! $filepath ||\r\n+  ! $base_dir ||\r\n+\r\n+  strpos( $filepath, $base_dir ) !== 0\r\n+) {\r\n+  wp_die( esc_html__( 'File not found.', 'taskbuilder' ) );\r\n+}\r\n+\u002F\u002FTurn off output buffering\r\n+if (ob_get_level()) ob_end_clean();\r\n+if( !file_exists($filepath)) return;\r\n+  $mime_type = wp_check_filetype($filepath);\r\n+  $content_type = ! empty( $mime_type['type'] )\r\n+    ? $mime_type['type']\r\n+    : 'application\u002Foctet-stream';\r\n+  header('Content-Type: ' . $content_type);\r\n+\u002F\u002F Check whether attachment is of image type\r\n+if($attachment->is_image){\r\n+  if(ob_get_length() > 0) {\r\n+    ob_clean();\r\n+  }\r\n+  \u002F\u002Freadfile( $filepath );\r\n+  echo $file_contents;\r\n+  exit;\r\n+}\r\n+header('Content-Description: File Transfer');\r\n+header('Cache-Control: public');\r\n+header(\"Content-Transfer-Encoding: binary\");\r\n+header(\"Content-Disposition: attachment;filename=\".($attach_file_name));\r\n+header('Content-Length: '.filesize($filepath));\r\n+if (ob_get_length()) ob_clean();\r\n+flush();\r\n+\u002F\u002Freadfile($filepath);\r\n+echo $file_contents;   \r\n+exit;\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fdashboard.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fdashboard.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fdashboard.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fdashboard.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,964 +1,964 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$current_user;\n-$current_user_id = get_current_user_id();\n-$wppm_project_time = get_option('wppm_project_time');\n-$wppm_task_time = get_option('wppm_task_time');\n-$wppm_task_statuses = $wpdb->get_results(\"SELECT id,name,bg_color FROM {$wpdb->prefix}wppm_task_statuses\");\n-$wppm_project_statuses = $wpdb->get_results(\"SELECT id,name,bg_color FROM {$wpdb->prefix}wppm_project_statuses\");\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$is_admin = ( $wppm_current_user_capability === 'wppm_admin' || current_user_can('manage_options') ) ? 1 : 0;\n-$query = $wpdb->prepare(\n-    \"SELECT COUNT(DISTINCT p.id)\n-     FROM {$wpdb->prefix}wppm_project p\n-     LEFT JOIN {$wpdb->prefix}wppm_project_users pu\n-     ON p.id = pu.proj_id\n-     LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\n-     ON p.id = pm.project_id AND pm.meta_key = 'public_project'\n-     WHERE (\n-        FIND_IN_SET(%d, p.users)\n-        OR p.created_by = %d\n-        OR %d = 1 \n-        OR pm.meta_value = '1'\n-     )\n-     AND p.status != %d\",\n-    $current_user_id,\n-    $current_user_id,\n-    $is_admin,\n-    4\n-);\n-$active_projects = $wpdb->get_var($query);\n-$query = $wpdb->prepare(\n-    \"SELECT DISTINCT Task.*\n-     FROM {$wpdb->prefix}wppm_task AS Task\n-     WHERE (\n-        FIND_IN_SET(%d, Task.users)\n-        OR Task.created_by = %d \n-     )\n-     AND Task.status != %d\n-     AND Task.active = 1\n-     AND Task.is_archived = 0\n-     LIMIT 5\",\n-    $current_user_id,        \u002F\u002F for JOIN pu\n-    $current_user_id,                   \u002F\u002F role_id\n-    4                        \u002F\u002F status\n-);\n-$tasks = $wpdb->get_results($query);\n-$query = $wpdb->prepare(\n-    \"SELECT DISTINCT Task.*\n-     FROM {$wpdb->prefix}wppm_task AS Task\n-     LEFT JOIN {$wpdb->prefix}wppm_project p \n-        ON Task.project = p.id\n-     LEFT JOIN {$wpdb->prefix}wppm_project_users pu\n-        ON p.id = pu.proj_id AND pu.user_id = %d\n-     LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\n-        ON p.id = pm.project_id AND pm.meta_key = 'public_project'\n-     WHERE (\n-        %d = 1\n-        OR FIND_IN_SET(%d, Task.users)\n-        OR Task.created_by = %d\n-        OR p.created_by = %d\n-        OR (FIND_IN_SET(%d, p.users) AND pu.role_id = %d)\n-        OR pm.meta_value = '1'\n-     )\n-     AND Task.status = %d\n-     AND Task.active = 1\n-     AND Task.is_archived = 0\n-     LIMIT 5\",\n-    \n-    $current_user_id,  \u002F\u002F 1 → pu.user_id\n-    $is_admin,         \u002F\u002F 2\n-    $current_user_id,  \u002F\u002F 3\n-    $current_user_id,  \u002F\u002F 4\n-    $current_user_id,  \u002F\u002F 5\n-    $current_user_id,  \u002F\u002F 6\n-    2,                 \u002F\u002F 7 → role_id\n-    4                  \u002F\u002F 8 → status\n-);\n-$completed_tasks = $wpdb->get_results($query);\n-$query = $wpdb->prepare(\n-    \"SELECT COUNT(DISTINCT Task.id)\n-     FROM {$wpdb->prefix}wppm_task AS Task\n-     LEFT JOIN {$wpdb->prefix}wppm_project p \n-        ON Task.project = p.id\n-     LEFT JOIN {$wpdb->prefix}wppm_project_users pu\n-        ON p.id = pu.proj_id AND pu.user_id = %d\n-     LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\n-        ON p.id = pm.project_id AND pm.meta_key = 'public_project'\n-     WHERE (\n-        %d = 1\n-        OR FIND_IN_SET(%d, Task.users)\n-        OR Task.created_by = %d\n-        OR p.created_by = %d\n-        OR (FIND_IN_SET(%d, p.users) AND pu.role_id = %d)\n-        OR pm.meta_value = '1'\n-     )\n-     AND Task.status = %d\n-     AND Task.active = 1\n-     AND Task.is_archived = 0\",\n-    \n-    $current_user_id,  \u002F\u002F pu.user_id\n-    $is_admin,\n-    $current_user_id,\n-    $current_user_id,\n-    $current_user_id,\n-    $current_user_id,\n-    2,                 \u002F\u002F role_id ✅ FIXED\n-    4                  \u002F\u002F status\n-);\n-$completed_task_count = $wpdb->get_var($query);\n-$query = $wpdb->prepare(\n-    \"SELECT DISTINCT count(*) AS task_count\n-     FROM {$wpdb->prefix}wppm_task AS Task\n-     WHERE (\n-        FIND_IN_SET(%d, Task.users)\n-        OR Task.created_by = %d \n-     )\n-     AND Task.status != %d\n-     AND Task.active = 1\n-     AND Task.is_archived = 0\n-     LIMIT 5\",\n-    $current_user_id,        \u002F\u002F for JOIN pu\n-    $current_user_id,                     \u002F\u002F role_id\n-    4                        \u002F\u002F status\n-);\n-$task_count = $wpdb->get_var($query);\n-$query = $wpdb->prepare(\n-    \"SELECT DISTINCT Task.*,p.project_name\n-     FROM {$wpdb->prefix}wppm_task AS Task\n-     LEFT JOIN {$wpdb->prefix}wppm_project p \n-        ON Task.project = p.id\n-     LEFT JOIN {$wpdb->prefix}wppm_project_users pu\n-        ON p.id = pu.proj_id AND pu.user_id = %d\n-     LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\n-        ON p.id = pm.project_id AND pm.meta_key = 'public_project'\n-     WHERE (\n-        %d = 1\n-        OR FIND_IN_SET(%d, Task.users)\n-        OR Task.created_by = %d \n-        OR p.created_by = %d\n-        OR (FIND_IN_SET(%d, p.users) AND pu.role_id = %d)\n-        OR pm.meta_value = '1'\n-     )\n-     AND DATE(Task.end_date) = CURDATE()\n-     AND Task.status != %d\n-     AND Task.active = 1\n-     AND Task.is_archived = 0\n-     LIMIT 5\",\n-    $current_user_id,        \u002F\u002F for JOIN pu\n-    $is_admin,\n-    $current_user_id,\n-    $current_user_id,\n-    $current_user_id,\n-    $current_user_id,\n-    2,                       \u002F\u002F role_id\n-    4                        \u002F\u002F status\n-);\n-$todays_tasks = $wpdb->get_results($query);\n-$status_counts = [];\n-$task_bg_color = [];\n-$project_status_counts = [];\n-$project_bg_color = [];\n-if(!empty($wppm_task_statuses)){\n-  foreach($wppm_task_statuses as $key => $status){\n-      $count = $wpdb->get_var($wpdb->prepare(\n-           \"SELECT DISTINCT COUNT(DISTINCT Task.id) \n-          FROM {$wpdb->prefix}wppm_task AS Task\n-          LEFT JOIN {$wpdb->prefix}wppm_project p \n-              ON Task.project = p.id\n-          LEFT JOIN {$wpdb->prefix}wppm_project_users pu\n-              ON p.id = pu.proj_id AND pu.user_id = %d\n-          LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\n-              ON p.id = pm.project_id AND pm.meta_key = 'public_project'\n-          WHERE (\n-              %d = 1\n-              OR FIND_IN_SET(%d, Task.users)\n-              OR Task.created_by = %d \n-              OR p.created_by = %d\n-              OR (FIND_IN_SET(%d, p.users) AND pu.role_id = %d)\n-              OR pm.meta_value = '1'\n-          )\n-          AND Task.status = %d\n-          AND Task.active = 1\n-          AND Task.is_archived = 0\n-          LIMIT 5\",\n-          $current_user_id,        \u002F\u002F for JOIN pu\n-          $is_admin,\n-          $current_user_id,\n-          $current_user_id,\n-          $current_user_id,\n-          $current_user_id,\n-          2,                       \u002F\u002F role_id\n-          $status->id                    \u002F\u002F status\n-       ) \n-    );\n-    $status_counts[$status->name] = $count;\n-    $task_bg_color[$status->name] = $status->bg_color;\n-  }\n-}\n-if(!empty($wppm_project_statuses)){\n-  foreach($wppm_project_statuses as $key => $status){\n-      $count = $wpdb->get_var(\n-      $wpdb->prepare(\n-            \"SELECT COUNT(DISTINCT p.id)\n-            FROM {$wpdb->prefix}wppm_project p\n-            LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\n-                ON p.id = pm.project_id \n-                AND pm.meta_key = 'public_project'\n-            WHERE (\n-                FIND_IN_SET(%d, p.users)\n-                OR p.created_by = %d\n-                OR %d = 1\n-                OR pm.meta_value = '1'\n-            )\n-            AND p.status = %d\",\n-            $current_user_id,\n-            $current_user_id,\n-            $is_admin,\n-            $status->id\n-        )\n-      );\n-      $project_status_counts[$status->name] = $count;\n-      $project_bg_color[$status->name] = $status->bg_color;\n-  }\n-}\n-$overdue = $wpdb->get_var(\n-    $wpdb->prepare( \n-        \"SELECT COUNT(DISTINCT t.id)\n-         FROM {$wpdb->prefix}wppm_task t\n-         LEFT JOIN {$wpdb->prefix}wppm_project p \n-            ON t.project = p.id\n-         LEFT JOIN {$wpdb->prefix}wppm_project_users pu\n-            ON p.id = pu.proj_id \n-            AND pu.user_id = %d\n-         LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\n-            ON p.id = pm.project_id \n-            AND pm.meta_key = 'public_project'\n-         WHERE \n-            t.end_date \u003C CURDATE()\n-            AND t.status != 4\n-            AND t.active = 1\n-            AND t.is_archived = 0\n-            AND (\n-                %d = 1\n-                OR FIND_IN_SET(%d, t.users)\n-                OR t.created_by = %d \n-                OR p.created_by = %d\n-                OR pu.role_id = %d\n-                OR pm.meta_value = '1'\n-            )\",\n-        $current_user_id,   \u002F\u002F pu.user_id\n-        $is_admin,\n-        $current_user_id,\n-        $current_user_id,\n-        $current_user_id,\n-        2                   \u002F\u002F role_id\n-    )\n-);\n-$labels = array_keys($status_counts);\n-$data   = array_values($status_counts);\n-$task_bg_colors = array_values($task_bg_color);\n-$project_overdue = $wpdb->get_var(\n-        $wpdb->prepare(\n-            \"SELECT COUNT(DISTINCT p.id)\n-            FROM {$wpdb->prefix}wppm_project p\n-            LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\n-                ON p.id = pm.project_id \n-                AND pm.meta_key = 'public_project'\n-            WHERE (\n-                FIND_IN_SET(%d, p.users)\n-                OR p.created_by = %d\n-                OR %d = 1\n-                OR pm.meta_value = '1'\n-            )\n-            AND p.status != %d AND p.end_date \u003C CURDATE()\",\n-            $current_user_id,\n-            $current_user_id,\n-            $is_admin,\n-            4\n-      )\n-);\n-$project_labels = array_keys($project_status_counts);\n-$project_data   = array_values($project_status_counts);\n-$project_bg_colors = array_values($project_bg_color);\n-$labels[] = 'Overdue';\n-$data[]   = $overdue;\n-$task_bg_colors [] = '#e74c3c';\n-$project_labels[] = 'Overdue';\n-$project_data[]   = $project_overdue;\n-$project_bg_colors[] = '#e74c3c';\n-?>\n-\u003Cdiv class=\"wppm-dashboard\">\n-  \u003Cdiv class=\"wppm-dashboard-top\">\n-      \u003Cdiv class=\"wppm-small-widget\">\n-          \u003Cdiv class=\"wppm-widget-icon\">📁\u003C\u002Fdiv>\n-          \u003Ch3>\u003C?php echo esc_html_e('Active Projects', 'taskbuilder'); ?>\u003C\u002Fh3>\n-          \u003Cspan class=\"wppm-number\">\u003C?php echo intval($active_projects); ?>\u003C\u002Fspan>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv class=\"wppm-small-widget\">\n-          \u003Cdiv class=\"wppm-widget-icon\">📝\u003C\u002Fdiv>\n-          \u003Ch3>\u003C?php echo esc_html_e('My Tasks', 'taskbuilder'); ?>\u003C\u002Fh3>\n-          \u003Cspan class=\"wppm-number\">\u003C?php echo intval($task_count); ?>\u003C\u002Fspan>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv class=\"wppm-small-widget\">\n-          \u003Cdiv class=\"wppm-widget-icon\">✅\u003C\u002Fdiv>\n-          \u003Ch3>\u003C?php echo esc_html_e('Completed Tasks', 'taskbuilder'); ?>\u003C\u002Fh3>\n-          \u003Cspan class=\"wppm-number\">\u003C?php echo intval($completed_task_count); ?>\u003C\u002Fspan>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv class=\"wppm-small-widget overdue\">\n-          \u003Cdiv class=\"wppm-widget-icon\">⚠\u003C\u002Fdiv>\n-          \u003Ch3>\u003C?php echo esc_html_e('Overdue Tasks', 'taskbuilder'); ?>\u003C\u002Fh3>\n-          \u003Cspan class=\"wppm-number\">\u003C?php echo intval($overdue); ?>\u003C\u002Fspan>\n-      \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv class=\"wppm-divider\">\u003C\u002Fdiv>\n-  \u003Cdiv class=\"wppm-row\">\n-    \u003Cdiv class=\"wppm-widget\">\n-      \u003Ch2>\u003C?php echo esc_html_e('Today\\'s Tasks', 'taskbuilder'); ?>\u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-tasks')); ?>\" class=\"wppm-view-all\" target=\"_blank\">\u003C?php echo esc_html_e('View All', 'taskbuilder'); ?>\u003C\u002Fa>\u003C\u002Fh2>\n-      \u003Cform id=\"wppm_get_my_tasks_frm\" name=\"wppm_get_my_tasks_frm\">\n-        \u003Cdiv class=\"table-responsive\">\n-          \u003Ctable id=\"tbl_todays_tasks\" class=\"table table-striped table-bordered\" cellspacing=\"0\" width=\"100%\">\n-              \u003Cthead>\n-                \u003Ctr>\n-                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Task Name','taskbuilder');?> \u003C\u002Fth>\n-                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Task Status','taskbuilder');?> \u003C\u002Fth>\n-                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Project','taskbuilder');?> \u003C\u002Fth>\n-                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Due date','taskbuilder');?> \u003C\u002Fth>\n-                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Progress','taskbuilder');?> \u003C\u002Fth>\n-                \u003C\u002Ftr>\n-              \u003C\u002Fthead>\n-              \u003Ctbody>\n-                \u003C?php\n-                if(!empty($todays_tasks)){\n-                  foreach ($todays_tasks as $task) {\n-                    $status = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", (int) $task->status ) );\n-                    $users = array();\n-                    if($task->users != null){\n-                      $users = explode(\",\",$task->users);\n-                    }\n-                    if(!empty($task->project)){\n-                      $project = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_project WHERE id = %d\",(int) $task->project));\n-                    }\n-                    if($wppm_task_time == 1){\n-                      $task_end_date = $task->end_date;\n-                    } elseif($wppm_task_time == 0){\n-                        $teDate = new DateTime($task->end_date);\n-                        $task_end_date = $teDate->format('Y-m-d');\n-                    }\n-                    $priority_color = $wpdb->get_var(\n-                      $wpdb->prepare(\n-                          \"SELECT bg_color \n-                          FROM {$wpdb->prefix}wppm_task_priorities \n-                          WHERE id = %d\",\n-                          (int) $task->priority\n-                      )\n-                    );\n-                    \u002F\u002F fallback color if not found\n-                    if(empty($priority_color)){\n-                        $priority_color = '#cccccc';\n-                    }\n-                    ?>\n-                  \u003Ctr onclick=\"wppm_open_task(\u003C?php echo esc_attr($task->id); ?>)\" class=\"wppm-task-row\" data-task=\"\u003C?php echo esc_attr($task->id); ?>\" data-project=\"\u003C?php echo esc_attr($task->project); ?>\">\n-                    \u003Ctd>\n-                        \u003Cspan class=\"wppm-priority-dot\" style=\"background: \u003C?php echo esc_attr($priority_color); ?>;\">\u003C\u002Fspan>\n-                        \u003C?php echo esc_html($task->task_name); ?>\n-                    \u003C\u002Ftd>\n-                    \u003Ctd>\n-                      \u003Cspan class=\"wppm_td_task_status\" style=\"background-color:\u003C?php echo (isset($status->bg_color))? esc_attr($status->bg_color):\"\";?>; color: \u003C?php echo (isset($status->color))? esc_attr($status->color):\"\"; ?>\">\u003C?php echo (isset($status->name))? esc_html($status->name):\"\" ?>\u003C\u002Fspan>\n-                    \u003C\u002Ftd>\n-                    \u003Ctd>\n-                      \u003C?php echo esc_html($project->project_name); ?>\n-                    \u003C\u002Ftd>\n-                    \u003Ctd>\n-                      \u003C?php echo (isset($task_end_date))? esc_html($task_end_date):\"\"?>\n-                    \u003C\u002Ftd>\n-                    \u003Ctd>\n-                        \u003C?php\n-                        $checklists = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = %d\",$task->id) );\n-                        $row = $wpdb->get_row(\n-                          $wpdb->prepare(\n-                              \"SELECT \n-                              COUNT(Items.id) as total,\n-                              SUM(CASE WHEN Items.checked = 1 THEN 1 ELSE 0 END) as completed\n-                              FROM {$wpdb->prefix}wppm_checklist_items AS Items\n-                              LEFT JOIN {$wpdb->prefix}wppm_checklist checklist \n-                              ON Items.checklist_id = checklist.id\n-                              WHERE checklist.task_id = %d\",\n-                              $task->id\n-                          )\n-                      );\n-                      $total = $row->total;\n-                      $total_checked_items = intval($row->completed);\n-                      $progress = ($total > 0) ? round(($total_checked_items \u002F $total) * 100) : 0;\n-                      $color = '#ef4444'; \u002F\u002F red\n-                      if($progress >= 50){\n-                        $color = '#f59e0b'; \u002F\u002F orange\n-                      }\n-                      if($progress >= 80){\n-                        $color = '#22c55e'; \u002F\u002F green\n-                      }\n-                        ?>\n-                        \u003Cdiv class=\"dashboard-progress-wrapper\">\n-                          \u003Cdiv class=\"dashboard-progress-bar\">\n-                              \u003Cdiv class=\"dashboard-progress\" style=\"width: \u003C?php echo esc_attr($progress); ?>%; background: \u003C?php echo esc_attr($color); ?>;\">\u003C\u002Fdiv>\n-                          \u003C\u002Fdiv>\n-                          \u003Cspan class=\"dashboard-progress-text\">\u003C?php echo esc_html($progress); ?>%\u003C\u002Fspan>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Ftd>\n-                  \u003C\u002Ftr>\n-                  \u003C?php } \n-                }\n-                ?>\n-              \u003C\u002Ftbody>\n-          \u003C\u002Ftable>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fform>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-widget\">\n-      \u003Ch2>\u003C?php echo esc_html__('Upcoming Tasks(Next 7 Days)', 'taskbuilder'); ?> \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-tasks')); ?>\" class=\"wppm-view-all\" target=\"_blank\">\u003C?php echo esc_html__('View All','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fh2>\n-      \u003C?php \n-      $query = $wpdb->prepare(\n-                \"SELECT t.*, p.project_name\n-                FROM {$wpdb->prefix}wppm_task t\n-                LEFT JOIN {$wpdb->prefix}wppm_project p \n-                ON t.project = p.id\n-                LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\n-                ON p.id = pm.project_id \n-                AND pm.meta_key = 'public_project'\n-                WHERE \n-                    (\n-                        FIND_IN_SET(%d, t.users)\n-                        OR t.created_by = %d\n-                        OR %d = 1\n-                        OR pm.meta_value = '1'\n-                        OR t.project IN (\n-                            SELECT id FROM {$wpdb->prefix}wppm_project \n-                            WHERE created_by = %d \n-                              OR FIND_IN_SET(%d, users)\n-                        )\n-                    )\n-                    AND DATE(t.end_date) BETWEEN CURDATE() \n-                    AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)\n-                    AND t.status != 4\n-                    AND t.active = 1\n-                    AND t.is_archived = 0\n-\n-                ORDER BY t.end_date ASC\n-                LIMIT 5\",\n-                $current_user_id,\n-                $current_user_id,\n-                $is_admin,\n-                $current_user_id,\n-                $current_user_id\n-            );\n-        $upcoming_tasks = $wpdb->get_results($query);?>\n-        \u003Cform id=\"wppm_get_upcoming_tasks_frm\" name=\"wppm_get_upcoming_tasks_frm\">\n-          \u003Cdiv class=\"table-responsive\">\n-            \u003Ctable id=\"tbl_upcoming_tasks\" class=\"table table-striped table-bordered\" cellspacing=\"0\" width=\"100%\">\n-                \u003Cthead>\n-                  \u003Ctr>\n-                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Name','taskbuilder');?> \u003C\u002Fth>\n-                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Status','taskbuilder');?> \u003C\u002Fth>\n-                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Project','taskbuilder');?> \u003C\u002Fth>\n-                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Due date','taskbuilder');?> \u003C\u002Fth>\n-                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Progress','taskbuilder');?> \u003C\u002Fth>\n-                  \u003C\u002Ftr>\n-                \u003C\u002Fthead>\n-                \u003Ctbody>\n-                \u003C?php\n-                if(!empty($upcoming_tasks)){\n-                  foreach ($upcoming_tasks as $task) {\n-                    $status = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", (int) $task->status ) );\n-                    $users = array();\n-                    if($task->users != null){\n-                      $users = explode(\",\",$task->users);\n-                    }\n-                    if(!empty($task->project)){\n-                      $project = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_project WHERE id = %d\",(int) $task->project));\n-                    }\n-                    if($wppm_task_time == 1){\n-                      $task_end_date = $task->end_date;\n-                    } elseif($wppm_task_time == 0){\n-                        $teDate = new DateTime($task->end_date);\n-                        $task_end_date = $teDate->format('Y-m-d');\n-                    }\n-                    $priority_color = $wpdb->get_var(\n-                    $wpdb->prepare(\n-                        \"SELECT bg_color \n-                        FROM {$wpdb->prefix}wppm_task_priorities \n-                        WHERE id = %d\",\n-                        (int) $task->priority\n-                    )\n-                    );\n-                    \u002F\u002F fallback color if not found\n-                    if(empty($priority_color)){\n-                        $priority_color = '#cccccc';\n-                    }\n-                    ?>\n-                  \u003Ctr onclick=\"wppm_open_task(\u003C?php echo esc_attr($task->id);?>)\" class=\"wppm-task-row\" data-task=\"\u003C?php echo esc_attr($task->id); ?>\" data-project=\"\u003C?php echo esc_attr($task->project); ?> \">\n-                    \u003Ctd>\n-                        \u003Cspan class=\"wppm-priority-dot\" style=\"background: \u003C?php echo esc_attr($priority_color); ?>;\">\u003C\u002Fspan>\n-                        \u003C?php echo esc_html($task->task_name); ?>\n-                    \u003C\u002Ftd>\n-                      \u003Ctd>\n-                        \u003Cspan class=\"wppm_td_task_status\" style=\"background-color:\u003C?php echo (isset($status->bg_color))? esc_attr($status->bg_color):\"\";?>; color: \u003C?php echo (isset($status->color))? esc_attr($status->color):\"\"; ?>\">\u003C?php echo (isset($status->name))? esc_html($status->name):\"\" ?>\u003C\u002Fspan>\n-                      \u003C\u002Ftd>\n-                      \u003Ctd>\n-                        \u003C?php echo esc_html($project->project_name); ?>\n-                      \u003C\u002Ftd>\n-                      \u003Ctd>\n-                        \u003C?php echo (isset($task_end_date))? esc_html($task_end_date):\"\"?>\n-                      \u003C\u002Ftd>\n-                      \u003Ctd>\n-                        \u003C?php\n-                        $checklists = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = %d\",$task->id) );\n-                       $row = $wpdb->get_row(\n-                          $wpdb->prepare(\n-                              \"SELECT \n-                              COUNT(Items.id) as total,\n-                              SUM(CASE WHEN Items.checked = 1 THEN 1 ELSE 0 END) as completed\n-                              FROM {$wpdb->prefix}wppm_checklist_items AS Items\n-                              LEFT JOIN {$wpdb->prefix}wppm_checklist checklist \n-                              ON Items.checklist_id = checklist.id\n-                              WHERE checklist.task_id = %d\",\n-                              $task->id\n-                          )\n-                      );\n-\n-                      $total = $row->total;\n-                      $total_checked_items = intval($row->completed);\n-\n-                      $progress = ($total > 0) ? round(($total_checked_items \u002F $total) * 100) : 0;\n-                      $color = '#ef4444'; \u002F\u002F red\n-                        if($progress >= 50){\n-                          $color = '#f59e0b'; \u002F\u002F orange\n-                      }\n-                        if($progress >= 80){\n-                          $color = '#22c55e'; \u002F\u002F green\n-                        }\n-                        ?>\n-                        \u003Cdiv class=\"dashboard-progress-wrapper\">\n-                          \u003Cdiv class=\"dashboard-progress-bar\">\n-                              \u003Cdiv class=\"dashboard-progress\" style=\"width: \u003C?php echo esc_attr($progress); ?>%; background: \u003C?php echo esc_attr($color); ?>;\">\u003C\u002Fdiv>\n-                          \u003C\u002Fdiv>\n-                          \u003Cspan class=\"dashboard-progress-text\">\u003C?php echo esc_html($progress); ?>%\u003C\u002Fspan>\n-                        \u003C\u002Fdiv>\n-                    \u003C\u002Ftd>\n-                    \u003C\u002Ftr>\n-            \u003C?php } \n-                }\n-                ?>\n-              \u003C\u002Ftbody>\n-            \u003C\u002Ftable>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fform>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv class=\"wppm-row\">\n-    \u003Cdiv class=\"wppm-widget\">\n-      \u003Ch2>\u003C?php echo esc_html_e('My Tasks','taskbuilder'); ?>   \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-tasks')); ?>\" class=\"wppm-view-all\" target=\"_blank\">\u003C?php echo esc_html_e('View All','taskbuilder'); ?>\u003C\u002Fa>\u003C\u002Fh2>\n-      \u003Cform id=\"wppm_get_my_tasks_frm\" name=\"wppm_get_my_tasks_frm\">\n-        \u003Cdiv class=\"table-responsive\">\n-          \u003Ctable id=\"tbl_my_tasks\" class=\"table table-striped table-bordered\" cellspacing=\"0\" width=\"100%\">\n-              \u003Cthead>\n-                \u003Ctr>\n-                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Task Name','taskbuilder');?> \u003C\u002Fth>\n-                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Task Status','taskbuilder');?> \u003C\u002Fth>\n-                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Project','taskbuilder');?> \u003C\u002Fth>\n-                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Due date','taskbuilder');?> \u003C\u002Fth>\n-                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Progress','taskbuilder');?> \u003C\u002Fth>\n-                \u003C\u002Ftr>\n-              \u003C\u002Fthead>\n-              \u003Ctbody>\n-                \u003C?php\n-                if(!empty($tasks)){\n-                  foreach ($tasks as $task) {\n-                    $status = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", (int) $task->status ) );\n-                    $users = array();\n-                    if($task->users != null){\n-                      $users = explode(\",\",$task->users);\n-                    }\n-                    if(!empty($task->project)){\n-                      $project = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_project WHERE id = %d\",(int) $task->project));\n-                    }\n-                    if($wppm_task_time == 1){\n-                      $task_end_date = $task->end_date;\n-                    } elseif($wppm_task_time == 0){\n-                        $teDate = new DateTime($task->end_date);\n-                        $task_end_date = $teDate->format('Y-m-d');\n-                    }\n-                    $priority_color = $wpdb->get_var( $wpdb->prepare(\n-                        \"SELECT bg_color \n-                        FROM {$wpdb->prefix}wppm_task_priorities \n-                        WHERE id = %d\",\n-                        (int) $task->priority \n-                      )\n-                    );\n-                    \u002F\u002F fallback color if not found\n-                    if(empty($priority_color)){\n-                        $priority_color = '#cccccc';\n-                    }\n-                    ?>\n-                    \u003Ctr class=\"wppm-task-row\" data-task=\"\u003C?php echo esc_attr($task->id); ?>\" data-project=\"\u003C?php echo esc_attr($task->project); ?>\">\n-                      \u003Ctd>\n-                          \u003Cspan class=\"wppm-priority-dot\" style=\"background: \u003C?php echo esc_attr($priority_color); ?>;\">\u003C\u002Fspan>\n-                          \u003C?php echo esc_html($task->task_name); ?>\n-                      \u003C\u002Ftd>\n-                      \u003Ctd>\n-                        \u003Cspan class=\"wppm_td_task_status\" style=\"background-color:\u003C?php echo (isset($status->bg_color))? esc_attr($status->bg_color):\"\";?>; color: \u003C?php echo (isset($status->color))? esc_attr($status->color):\"\"; ?>\">\u003C?php echo (isset($status->name))? esc_html($status->name):\"\" ?>\u003C\u002Fspan>\n-                      \u003C\u002Ftd>\n-                      \u003Ctd>\n-                        \u003C?php echo esc_html($project->project_name); ?>\n-                      \u003C\u002Ftd>\n-                      \u003Ctd>\n-                        \u003C?php echo (isset($task_end_date))? esc_html($task_end_date):\"\"?>\n-                      \u003C\u002Ftd>\n-                      \u003Ctd>\n-                        \u003C?php\n-                        $checklists = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = %d\",$task->id) );\n-                        $row = $wpdb->get_row(\n-                            $wpdb->prepare(\n-                                \"SELECT \n-                                COUNT(Items.id) as total,\n-                                SUM(CASE WHEN Items.checked = 1 THEN 1 ELSE 0 END) as completed\n-                                FROM {$wpdb->prefix}wppm_checklist_items AS Items\n-                                LEFT JOIN {$wpdb->prefix}wppm_checklist checklist \n-                                ON Items.checklist_id = checklist.id\n-                                WHERE checklist.task_id = %d\",\n-                                $task->id\n-                            )\n-                        );\n-                        $total = $row->total;\n-                        $total_checked_items = intval($row->completed);\n-\n-                        $progress = ($total > 0) ? round(($total_checked_items \u002F $total) * 100) : 0;\n-                        $color = '#ef4444'; \u002F\u002F red\n-                          if($progress >= 50){\n-                            $color = '#f59e0b'; \u002F\u002F orange\n-                        }\n-                          if($progress >= 80){\n-                            $color = '#22c55e'; \u002F\u002F green\n-                          }\n-                          ?>\n-                          \u003Cdiv class=\"dashboard-progress-wrapper\">\n-                            \u003Cdiv class=\"dashboard-progress-bar\">\n-                                \u003Cdiv class=\"dashboard-progress\" style=\"width: \u003C?php echo esc_attr($progress); ?>%; background: \u003C?php echo esc_attr($color); ?>;\">\u003C\u002Fdiv>\n-                            \u003C\u002Fdiv>\n-                            \u003Cspan class=\"dashboard-progress-text\">\u003C?php echo esc_html($progress); ?>%\u003C\u002Fspan>\n-                          \u003C\u002Fdiv>\n-                      \u003C\u002Ftd>\n-                    \u003C\u002Ftr>\n-                  \u003C?php } \n-                }\n-                ?>\n-              \u003C\u002Ftbody>\n-          \u003C\u002Ftable>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fform>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-widget\">\n-      \u003Ch2>\u003C?php echo esc_html_e('Active Projects','taskbuilder'); ?> \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-projects')); ?>\" class=\"wppm-view-all\" target=\"_blank\">\u003C?php echo esc_html_e('View All','taskbuilder'); ?>\u003C\u002Fa>\u003C\u002Fh2>\n-      \u003C?php \n-      $query = $wpdb->prepare(\n-              \"SELECT \n-              p.id,\n-              p.project_name AS name,\n-              ps.name AS status_name,\n-              ps.bg_color AS status_color,\n-              ps.color AS status_text_color,\n-              p.end_date,\n-              COUNT(t.id) AS total_tasks,\n-              SUM(CASE WHEN t.status = '4' THEN 1 ELSE 0 END) AS completed_tasks\n-              FROM {$wpdb->prefix}wppm_project p\n-              LEFT JOIN {$wpdb->prefix}wppm_project_statuses ps\n-              ON p.status = ps.id\n-              LEFT JOIN {$wpdb->prefix}wppm_project_users pu\n-              ON p.id = pu.proj_id\n-              LEFT JOIN {$wpdb->prefix}wppm_task t\n-              ON p.id = t.project\n-              LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\n-              ON p.id = pm.project_id \n-              AND pm.meta_key = 'public_project'\n-              WHERE (FIND_IN_SET(%d, p.users) OR p.created_by = %d OR %d = 1 OR pm.meta_value = 1)\n-              AND p.status != %d\n-              GROUP BY p.id\n-              ORDER BY p.end_date ASC\n-              LIMIT 5\",\n-              $current_user_id,\n-              $current_user_id,\n-              $is_admin,\n-              4\n-      );\n-        $projects = $wpdb->get_results($query);\n-        ?>\n-        \u003Cform id=\"wppm_get_active_projects_frm\" name=\"wppm_get_active_projects_frm\">\n-          \u003Cdiv class=\"table-responsive\">\n-            \u003Ctable id=\"tbl_active_projects\" class=\"table table-striped table-bordered\" cellspacing=\"0\" width=\"100%\">\n-                \u003Cthead>\n-                  \u003Ctr>\n-                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Name','taskbuilder');?> \u003C\u002Fth>\n-                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Status','taskbuilder');?> \u003C\u002Fth>\n-                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Due date','taskbuilder');?> \u003C\u002Fth>\n-                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Progress','taskbuilder');?> \u003C\u002Fth>\n-                  \u003C\u002Ftr>\n-                \u003C\u002Fthead>\n-                \u003Ctbody>\n-                  \u003C?php\n-                  if(!empty($projects)){\n-                    foreach ($projects as $project) {\n-                      if($wppm_project_time == 1){\n-                        $project_end_date = $project->end_date;\n-                      } elseif($wppm_project_time == 0){\n-                          $peDate = new DateTime($project->end_date);\n-                          $project_end_date = $peDate->format('Y-m-d');\n-                      }\n-                      ?>\n-                      \u003Ctr onclick= \"wppm_open_project(\u003C?php echo esc_attr($project->id) ?>)\" class=\"wppm-project-row\" data-project=\"\u003C?php echo esc_attr($project->id); ?>\">\n-                        \u003Ctd>\n-                          \u003C?php echo esc_html($project->name); ?>\n-                        \u003C\u002Ftd>\n-                        \u003Ctd>\n-                          \u003Cspan class=\"wppm_td_project_status\" style=\"background-color:\u003C?php echo (isset($project->status_color))? esc_attr($project->status_color):\"\";?>; color: \u003C?php echo (isset($project->status_text_color))? esc_attr($project->status_text_color):\"\"; ?>\">\u003C?php echo (isset($project->status_name))? esc_html($project->status_name):\"\" ?>\u003C\u002Fspan>\n-                        \u003C\u002Ftd>\n-                        \u003Ctd>\n-                          \u003C?php echo esc_html($project_end_date); ?>\n-                        \u003C\u002Ftd>\n-                        \u003Ctd>\n-                            \u003C?php\n-                              $total = $project->total_tasks;\n-                              $completed = $project->completed_tasks;\n-                              if($total > 0){\n-                                $proj_progress = round(($completed \u002F $total) * 100);\n-                              }else{\n-                                $proj_progress = 0;\n-                              }\n-                              $color = '#ef4444'; \u002F\u002F red\n-                                if($proj_progress >= 50){\n-                                  $color = '#f59e0b'; \u002F\u002F orange\n-                              }\n-                              if($proj_progress >= 80){\n-                                $color = '#22c55e'; \u002F\u002F green\n-                              }\n-                              ?>\n-                              \u003Cdiv class=\"dashboard-progress-wrapper\">\n-                                  \u003Cdiv class=\"dashboard-progress-bar\">\n-                                      \u003Cdiv class=\"dashboard-progress\" style=\"width:\u003C?php echo esc_attr($proj_progress); ?>%; background: \u003C?php echo esc_attr($color); ?>;\">\u003C\u002Fdiv>\n-                                  \u003C\u002Fdiv>\n-                                  \u003Cspan class=\"dashboard-progress-text\">\u003C?php echo esc_html($proj_progress); ?>%\u003C\u002Fspan>\n-                              \u003C\u002Fdiv>\n-                          \u003C\u002Fdiv>\n-                        \u003C\u002Ftd>\n-                      \u003C\u002Ftr>\n-                    \u003C?php }\n-                  }?>\n-                \u003C\u002Ftbody>\n-            \u003C\u002Ftable>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fform>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv class=\"wppm-row\">\n-    \u003Cdiv class=\"wppm-widget\">\n-        \u003Ch2>\u003C?php echo esc_html_e('Project Overview', 'taskbuilder'); ?>\u003C\u002Fh2>\n-        \u003Ccanvas id=\"wppm_project_chart\">\u003C\u002Fcanvas>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-widget\">\n-        \u003Ch2>\u003C?php echo esc_html_e('Task Overview', 'taskbuilder'); ?>\u003C\u002Fh2>\n-        \u003Ccanvas id=\"wppm_task_chart\">\u003C\u002Fcanvas>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv class=\"wppm-row\">\n-    \u003Cdiv class=\"wppm-widget\">\n-        \u003Ch2>\u003C?php echo esc_html_e('User Workload', 'taskbuilder'); ?>\u003C\u002Fh2>\n-        \u003C?php \n-$query = $wpdb->prepare( \"SELECT u.ID, u.display_name, \n-        COUNT(DISTINCT t.id) AS total_tasks\n-        FROM {$wpdb->users} u\n-        INNER JOIN {$wpdb->prefix}wppm_project_users pu \n-        ON u.ID = pu.user_id\n-        INNER JOIN {$wpdb->prefix}wppm_task t \n-        ON FIND_IN_SET(u.ID, t.users)\n-        AND t.project = pu.proj_id AND pu.role_id!=3\n-     WHERE \n-        t.status != 4 \n-        AND t.active = 1 \n-        AND t.is_archived = 0\n-        AND (\n-            %d = 1\n-            OR EXISTS (\n-                SELECT 1 \n-                FROM {$wpdb->prefix}wppm_project_users current_pu\n-                LEFT JOIN {$wpdb->prefix}wppm_project p\n-                ON current_pu.proj_id = p.id\n-                WHERE (current_pu.proj_id = pu.proj_id\n-                AND current_pu.user_id = %d\n-                AND current_pu.role_id != 3 OR p.created_by = %d )\n-            )\n-        )\n-     GROUP BY u.ID\n-     HAVING total_tasks > 0\n-     ORDER BY total_tasks DESC\n-     LIMIT 5\",\n-    $is_admin,\n-    $current_user_id,\n-    $current_user_id\n-);\n-\n-$workloads = $wpdb->get_results($query);\n-    \u002F\u002F Get max task count\n-    $max_tasks = 0;\n-    if(!empty($workloads)){\n-      foreach($workloads as $w){\n-        if($w->total_tasks > $max_tasks){\n-          $max_tasks = $w->total_tasks;\n-        }\n-      }\n-    }\n-    ?>\n-    \u003Cul class=\"wppm-workload-list\">\n-    \u003C?php\n-    if(!empty($workloads)){ \n-      foreach($workloads as $workload){ \n-        $percent = 0;\n-        if($max_tasks > 0){\n-            $percent = ($workload->total_tasks \u002F $max_tasks) * 100;\n-        }\n-        $color = '#4CAF50';\n-        if($percent > 80){\n-            $color = '#ff4d4d';\n-        }elseif($percent > 50){\n-            $color = '#ffa500';\n-        }?>\n-          \u003Cli>\n-              \u003Cspan>\u003C?php echo esc_html($workload->display_name); ?>\u003C\u002Fspan>\n-              \u003Cdiv class=\"wppm-workload-bar\">\n-                  \u003Cdiv class=\"wppm-progress\" style=\"width:\u003C?php echo esc_attr($percent); ?>%; background:\u003C?php echo esc_attr($color); ?>\">\u003C\u002Fdiv>\n-              \u003C\u002Fdiv>\n-              \u003Cspan>\u003C?php echo esc_html($workload->total_tasks); ?>\u003C\u002Fspan>\n-          \u003C\u002Fli>\n-    \u003C?php } \n-    }?>\n-    \u003C\u002Ful>\n-  \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-widget\">\n-      \u003Ch2>\u003C?php echo esc_html_e('Quick Actions', 'taskbuilder'); ?>\u003C\u002Fh2>\n-      \u003Cdiv class=\"wppm-quick-actions\">\n-        \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-projects&action=add')); ?>\" class=\"wppm-add-new-btn btn-primary\" target=\"_blank\"> ➕ \u003C?php echo esc_html_e('Add New Project', 'taskbuilder'); ?>\u003C\u002Fa>\n-        \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-projects&action=view')); ?>\" class=\"wppm-add-new-btn btn-primary\" target=\"_blank\"> 📂 \u003C?php echo esc_html_e('View Projects', 'taskbuilder'); ?>\u003C\u002Fa>\n-        \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-tasks&action=add')); ?>\" class=\"wppm-add-new-btn btn-primary\" target=\"_blank\"> ✅ \u003C?php echo esc_html_e('Add New Task', 'taskbuilder'); ?>\u003C\u002Fa>\n-        \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-tasks&action=view')); ?>\" class=\"wppm-add-new-btn btn-primary\" target=\"_blank\"> 📋 \u003C?php echo esc_html_e('View Tasks', 'taskbuilder'); ?>\u003C\u002Fa>\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003Cscript type=\"text\u002Fjavascript\">\n-  jQuery(document).ready(function() {\n-    var table = jQuery('#tbl_my_tasks').DataTable({\n-      \"paging\":   false,\n-      \"ordering\": false,\n-      \"info\":     false,\n-      \"searching\": false,\n-      \"language\": {\n-          \"emptyTable\": \"\u003C?php echo esc_html_e('No tasks found','taskbuilder'); ?>\"\n-        }\n-    });\n-    var table = jQuery('#tbl_todays_tasks').DataTable({\n-      \"paging\":   false,\n-      \"ordering\": false,\n-      \"info\":     false,\n-      \"searching\": false,\n-      \"language\": {\n-          \"emptyTable\": \"\u003C?php echo esc_html_e('No tasks found','taskbuilder'); ?>\"\n-        }\n-    });\n-    var proj_table = jQuery('#tbl_active_projects').DataTable({\n-      \"paging\":   false,\n-      \"ordering\": false,\n-      \"info\":     false,\n-      \"searching\": false,\n-      \"language\": {\n-          \"emptyTable\": \"\u003C?php echo esc_html_e('No Projects found','taskbuilder'); ?>\"\n-        }\n-    });\n-    jQuery('div.dataTables_filter input', proj_table.table().container()).focus();\t\n-    var upcoming_tasks_table = jQuery('#tbl_upcoming_tasks').DataTable({\n-      \"paging\":   false,\n-      \"ordering\": false,\n-      \"info\":     false,\n-      \"searching\": false,\n-      \"language\": {\n-          \"emptyTable\": \"\u003C?php echo esc_html_e('No Upcoming Tasks found','taskbuilder'); ?>\"\n-        }\n-    });\n-    \u002F\u002FjQuery('div.dataTables_filter input', upcoming_tasks_table.table().container()).focus();\t\n-    var ctx = document.getElementById('wppm_task_chart').getContext('2d');\n-    new Chart(ctx, {\n-        type: 'doughnut',\n-        data: {\n-            labels: \u003C?php echo json_encode($labels); ?>,\n-            datasets: [{\n-                data:\u003C?php echo json_encode($data); ?>,\n-                backgroundColor: [\n-                    \u003C?php \n-                      foreach($task_bg_colors as $color){\n-                        echo \"'\".esc_attr($color).\"',\";\n-                      }\n-                    ?>\n-                ]\n-            }]\n-        },\n-        options: {\n-            responsive: true,\n-            plugins: {\n-                legend: {\n-                    position: 'bottom'\n-                }\n-            }\n-        }\n-    });\n-    var ctx = document.getElementById('wppm_project_chart').getContext('2d');\n-    new Chart(ctx, {\n-        type: 'doughnut',\n-        data: {\n-            labels: \u003C?php echo json_encode($project_labels); ?>,\n-            datasets: [{\n-                data: \u003C?php echo json_encode($project_data); ?>,\n-                backgroundColor: [\n-                    \u003C?php \n-                      foreach($project_bg_colors as $color){\n-                        echo \"'\".esc_attr($color).\"',\";\n-                      }\n-                    ?>\n-                ]\n-            }]\n-        },\n-        options: {\n-            responsive: true,\n-            plugins: {\n-                legend: {\n-                    position: 'bottom'\n-                }\n-            }\n-        }\n-    });\n-} );\n-jQuery(document).on('click','.wppm-task-row',function(){\n-    var task_id = jQuery(this).data('task');\n-    var project_id = jQuery(this).data('project');\n-    event.stopPropagation();\n-    window.location.href = '\u003C?php echo admin_url(\"admin.php?page=wppm-tasks\"); ?>' + '&task_id=' + task_id;\n-});\n-jQuery(document).on('click','.wppm-project-row',function(){\n-    var project_id = jQuery(this).data('project');\n-    event.stopPropagation();\n-    window.location.href = '\u003C?php echo admin_url(\"admin.php?page=wppm-projects\"); ?>' + '&project_id=' + project_id;\n-});\n-\u003C\u002Fscript>\n-\u003Cstyle type=\"text\u002Fcss\">\n-  #wpfooter{\n-    display: none;\n-  }\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$current_user;\r\n+$current_user_id = get_current_user_id();\r\n+$wppm_project_time = get_option('wppm_project_time');\r\n+$wppm_task_time = get_option('wppm_task_time');\r\n+$wppm_task_statuses = $wpdb->get_results(\"SELECT id,name,bg_color FROM {$wpdb->prefix}wppm_task_statuses\");\r\n+$wppm_project_statuses = $wpdb->get_results(\"SELECT id,name,bg_color FROM {$wpdb->prefix}wppm_project_statuses\");\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$is_admin = ( $wppm_current_user_capability === 'wppm_admin' || current_user_can('manage_options') ) ? 1 : 0;\r\n+$query = $wpdb->prepare(\r\n+    \"SELECT COUNT(DISTINCT p.id)\r\n+     FROM {$wpdb->prefix}wppm_project p\r\n+     LEFT JOIN {$wpdb->prefix}wppm_project_users pu\r\n+     ON p.id = pu.proj_id\r\n+     LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\r\n+     ON p.id = pm.project_id AND pm.meta_key = 'public_project'\r\n+     WHERE (\r\n+        FIND_IN_SET(%d, p.users)\r\n+        OR p.created_by = %d\r\n+        OR %d = 1 \r\n+        OR pm.meta_value = '1'\r\n+     )\r\n+     AND p.status != %d\",\r\n+    $current_user_id,\r\n+    $current_user_id,\r\n+    $is_admin,\r\n+    4\r\n+);\r\n+$active_projects = $wpdb->get_var($query);\r\n+$query = $wpdb->prepare(\r\n+    \"SELECT DISTINCT Task.*\r\n+     FROM {$wpdb->prefix}wppm_task AS Task\r\n+     WHERE (\r\n+        FIND_IN_SET(%d, Task.users)\r\n+        OR Task.created_by = %d \r\n+     )\r\n+     AND Task.status != %d\r\n+     AND Task.active = 1\r\n+     AND Task.is_archived = 0\r\n+     LIMIT 5\",\r\n+    $current_user_id,        \u002F\u002F for JOIN pu\r\n+    $current_user_id,                   \u002F\u002F role_id\r\n+    4                        \u002F\u002F status\r\n+);\r\n+$tasks = $wpdb->get_results($query);\r\n+$query = $wpdb->prepare(\r\n+    \"SELECT DISTINCT Task.*\r\n+     FROM {$wpdb->prefix}wppm_task AS Task\r\n+     LEFT JOIN {$wpdb->prefix}wppm_project p \r\n+        ON Task.project = p.id\r\n+     LEFT JOIN {$wpdb->prefix}wppm_project_users pu\r\n+        ON p.id = pu.proj_id AND pu.user_id = %d\r\n+     LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\r\n+        ON p.id = pm.project_id AND pm.meta_key = 'public_project'\r\n+     WHERE (\r\n+        %d = 1\r\n+        OR FIND_IN_SET(%d, Task.users)\r\n+        OR Task.created_by = %d\r\n+        OR p.created_by = %d\r\n+        OR (FIND_IN_SET(%d, p.users) AND pu.role_id = %d)\r\n+        OR pm.meta_value = '1'\r\n+     )\r\n+     AND Task.status = %d\r\n+     AND Task.active = 1\r\n+     AND Task.is_archived = 0\r\n+     LIMIT 5\",\r\n+    \r\n+    $current_user_id,  \u002F\u002F 1 → pu.user_id\r\n+    $is_admin,         \u002F\u002F 2\r\n+    $current_user_id,  \u002F\u002F 3\r\n+    $current_user_id,  \u002F\u002F 4\r\n+    $current_user_id,  \u002F\u002F 5\r\n+    $current_user_id,  \u002F\u002F 6\r\n+    2,                 \u002F\u002F 7 → role_id\r\n+    4                  \u002F\u002F 8 → status\r\n+);\r\n+$completed_tasks = $wpdb->get_results($query);\r\n+$query = $wpdb->prepare(\r\n+    \"SELECT COUNT(DISTINCT Task.id)\r\n+     FROM {$wpdb->prefix}wppm_task AS Task\r\n+     LEFT JOIN {$wpdb->prefix}wppm_project p \r\n+        ON Task.project = p.id\r\n+     LEFT JOIN {$wpdb->prefix}wppm_project_users pu\r\n+        ON p.id = pu.proj_id AND pu.user_id = %d\r\n+     LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\r\n+        ON p.id = pm.project_id AND pm.meta_key = 'public_project'\r\n+     WHERE (\r\n+        %d = 1\r\n+        OR FIND_IN_SET(%d, Task.users)\r\n+        OR Task.created_by = %d\r\n+        OR p.created_by = %d\r\n+        OR (FIND_IN_SET(%d, p.users) AND pu.role_id = %d)\r\n+        OR pm.meta_value = '1'\r\n+     )\r\n+     AND Task.status = %d\r\n+     AND Task.active = 1\r\n+     AND Task.is_archived = 0\",\r\n+    \r\n+    $current_user_id,  \u002F\u002F pu.user_id\r\n+    $is_admin,\r\n+    $current_user_id,\r\n+    $current_user_id,\r\n+    $current_user_id,\r\n+    $current_user_id,\r\n+    2,                 \u002F\u002F role_id ✅ FIXED\r\n+    4                  \u002F\u002F status\r\n+);\r\n+$completed_task_count = $wpdb->get_var($query);\r\n+$query = $wpdb->prepare(\r\n+    \"SELECT DISTINCT count(*) AS task_count\r\n+     FROM {$wpdb->prefix}wppm_task AS Task\r\n+     WHERE (\r\n+        FIND_IN_SET(%d, Task.users)\r\n+        OR Task.created_by = %d \r\n+     )\r\n+     AND Task.status != %d\r\n+     AND Task.active = 1\r\n+     AND Task.is_archived = 0\r\n+     LIMIT 5\",\r\n+    $current_user_id,        \u002F\u002F for JOIN pu\r\n+    $current_user_id,                     \u002F\u002F role_id\r\n+    4                        \u002F\u002F status\r\n+);\r\n+$task_count = $wpdb->get_var($query);\r\n+$query = $wpdb->prepare(\r\n+    \"SELECT DISTINCT Task.*,p.project_name\r\n+     FROM {$wpdb->prefix}wppm_task AS Task\r\n+     LEFT JOIN {$wpdb->prefix}wppm_project p \r\n+        ON Task.project = p.id\r\n+     LEFT JOIN {$wpdb->prefix}wppm_project_users pu\r\n+        ON p.id = pu.proj_id AND pu.user_id = %d\r\n+     LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\r\n+        ON p.id = pm.project_id AND pm.meta_key = 'public_project'\r\n+     WHERE (\r\n+        %d = 1\r\n+        OR FIND_IN_SET(%d, Task.users)\r\n+        OR Task.created_by = %d \r\n+        OR p.created_by = %d\r\n+        OR (FIND_IN_SET(%d, p.users) AND pu.role_id = %d)\r\n+        OR pm.meta_value = '1'\r\n+     )\r\n+     AND DATE(Task.end_date) = CURDATE()\r\n+     AND Task.status != %d\r\n+     AND Task.active = 1\r\n+     AND Task.is_archived = 0\r\n+     LIMIT 5\",\r\n+    $current_user_id,        \u002F\u002F for JOIN pu\r\n+    $is_admin,\r\n+    $current_user_id,\r\n+    $current_user_id,\r\n+    $current_user_id,\r\n+    $current_user_id,\r\n+    2,                       \u002F\u002F role_id\r\n+    4                        \u002F\u002F status\r\n+);\r\n+$todays_tasks = $wpdb->get_results($query);\r\n+$status_counts = [];\r\n+$task_bg_color = [];\r\n+$project_status_counts = [];\r\n+$project_bg_color = [];\r\n+if(!empty($wppm_task_statuses)){\r\n+  foreach($wppm_task_statuses as $key => $status){\r\n+      $count = $wpdb->get_var($wpdb->prepare(\r\n+           \"SELECT DISTINCT COUNT(DISTINCT Task.id) \r\n+          FROM {$wpdb->prefix}wppm_task AS Task\r\n+          LEFT JOIN {$wpdb->prefix}wppm_project p \r\n+              ON Task.project = p.id\r\n+          LEFT JOIN {$wpdb->prefix}wppm_project_users pu\r\n+              ON p.id = pu.proj_id AND pu.user_id = %d\r\n+          LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\r\n+              ON p.id = pm.project_id AND pm.meta_key = 'public_project'\r\n+          WHERE (\r\n+              %d = 1\r\n+              OR FIND_IN_SET(%d, Task.users)\r\n+              OR Task.created_by = %d \r\n+              OR p.created_by = %d\r\n+              OR (FIND_IN_SET(%d, p.users) AND pu.role_id = %d)\r\n+              OR pm.meta_value = '1'\r\n+          )\r\n+          AND Task.status = %d\r\n+          AND Task.active = 1\r\n+          AND Task.is_archived = 0\r\n+          LIMIT 5\",\r\n+          $current_user_id,        \u002F\u002F for JOIN pu\r\n+          $is_admin,\r\n+          $current_user_id,\r\n+          $current_user_id,\r\n+          $current_user_id,\r\n+          $current_user_id,\r\n+          2,                       \u002F\u002F role_id\r\n+          $status->id                    \u002F\u002F status\r\n+       ) \r\n+    );\r\n+    $status_counts[$status->name] = $count;\r\n+    $task_bg_color[$status->name] = $status->bg_color;\r\n+  }\r\n+}\r\n+if(!empty($wppm_project_statuses)){\r\n+  foreach($wppm_project_statuses as $key => $status){\r\n+      $count = $wpdb->get_var(\r\n+      $wpdb->prepare(\r\n+            \"SELECT COUNT(DISTINCT p.id)\r\n+            FROM {$wpdb->prefix}wppm_project p\r\n+            LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\r\n+                ON p.id = pm.project_id \r\n+                AND pm.meta_key = 'public_project'\r\n+            WHERE (\r\n+                FIND_IN_SET(%d, p.users)\r\n+                OR p.created_by = %d\r\n+                OR %d = 1\r\n+                OR pm.meta_value = '1'\r\n+            )\r\n+            AND p.status = %d\",\r\n+            $current_user_id,\r\n+            $current_user_id,\r\n+            $is_admin,\r\n+            $status->id\r\n+        )\r\n+      );\r\n+      $project_status_counts[$status->name] = $count;\r\n+      $project_bg_color[$status->name] = $status->bg_color;\r\n+  }\r\n+}\r\n+$overdue = $wpdb->get_var(\r\n+    $wpdb->prepare( \r\n+        \"SELECT COUNT(DISTINCT t.id)\r\n+         FROM {$wpdb->prefix}wppm_task t\r\n+         LEFT JOIN {$wpdb->prefix}wppm_project p \r\n+            ON t.project = p.id\r\n+         LEFT JOIN {$wpdb->prefix}wppm_project_users pu\r\n+            ON p.id = pu.proj_id \r\n+            AND pu.user_id = %d\r\n+         LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\r\n+            ON p.id = pm.project_id \r\n+            AND pm.meta_key = 'public_project'\r\n+         WHERE \r\n+            t.end_date \u003C CURDATE()\r\n+            AND t.status != 4\r\n+            AND t.active = 1\r\n+            AND t.is_archived = 0\r\n+            AND (\r\n+                %d = 1\r\n+                OR FIND_IN_SET(%d, t.users)\r\n+                OR t.created_by = %d \r\n+                OR p.created_by = %d\r\n+                OR pu.role_id = %d\r\n+                OR pm.meta_value = '1'\r\n+            )\",\r\n+        $current_user_id,   \u002F\u002F pu.user_id\r\n+        $is_admin,\r\n+        $current_user_id,\r\n+        $current_user_id,\r\n+        $current_user_id,\r\n+        2                   \u002F\u002F role_id\r\n+    )\r\n+);\r\n+$labels = array_keys($status_counts);\r\n+$data   = array_values($status_counts);\r\n+$task_bg_colors = array_values($task_bg_color);\r\n+$project_overdue = $wpdb->get_var(\r\n+        $wpdb->prepare(\r\n+            \"SELECT COUNT(DISTINCT p.id)\r\n+            FROM {$wpdb->prefix}wppm_project p\r\n+            LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\r\n+                ON p.id = pm.project_id \r\n+                AND pm.meta_key = 'public_project'\r\n+            WHERE (\r\n+                FIND_IN_SET(%d, p.users)\r\n+                OR p.created_by = %d\r\n+                OR %d = 1\r\n+                OR pm.meta_value = '1'\r\n+            )\r\n+            AND p.status != %d AND p.end_date \u003C CURDATE()\",\r\n+            $current_user_id,\r\n+            $current_user_id,\r\n+            $is_admin,\r\n+            4\r\n+      )\r\n+);\r\n+$project_labels = array_keys($project_status_counts);\r\n+$project_data   = array_values($project_status_counts);\r\n+$project_bg_colors = array_values($project_bg_color);\r\n+$labels[] = 'Overdue';\r\n+$data[]   = $overdue;\r\n+$task_bg_colors [] = '#e74c3c';\r\n+$project_labels[] = 'Overdue';\r\n+$project_data[]   = $project_overdue;\r\n+$project_bg_colors[] = '#e74c3c';\r\n+?>\r\n+\u003Cdiv class=\"wppm-dashboard\">\r\n+  \u003Cdiv class=\"wppm-dashboard-top\">\r\n+      \u003Cdiv class=\"wppm-small-widget\">\r\n+          \u003Cdiv class=\"wppm-widget-icon\">📁\u003C\u002Fdiv>\r\n+          \u003Ch3>\u003C?php echo esc_html_e('Active Projects', 'taskbuilder'); ?>\u003C\u002Fh3>\r\n+          \u003Cspan class=\"wppm-number\">\u003C?php echo intval($active_projects); ?>\u003C\u002Fspan>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv class=\"wppm-small-widget\">\r\n+          \u003Cdiv class=\"wppm-widget-icon\">📝\u003C\u002Fdiv>\r\n+          \u003Ch3>\u003C?php echo esc_html_e('My Tasks', 'taskbuilder'); ?>\u003C\u002Fh3>\r\n+          \u003Cspan class=\"wppm-number\">\u003C?php echo intval($task_count); ?>\u003C\u002Fspan>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv class=\"wppm-small-widget\">\r\n+          \u003Cdiv class=\"wppm-widget-icon\">✅\u003C\u002Fdiv>\r\n+          \u003Ch3>\u003C?php echo esc_html_e('Completed Tasks', 'taskbuilder'); ?>\u003C\u002Fh3>\r\n+          \u003Cspan class=\"wppm-number\">\u003C?php echo intval($completed_task_count); ?>\u003C\u002Fspan>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv class=\"wppm-small-widget overdue\">\r\n+          \u003Cdiv class=\"wppm-widget-icon\">⚠\u003C\u002Fdiv>\r\n+          \u003Ch3>\u003C?php echo esc_html_e('Overdue Tasks', 'taskbuilder'); ?>\u003C\u002Fh3>\r\n+          \u003Cspan class=\"wppm-number\">\u003C?php echo intval($overdue); ?>\u003C\u002Fspan>\r\n+      \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"wppm-divider\">\u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"wppm-row\">\r\n+    \u003Cdiv class=\"wppm-widget\">\r\n+      \u003Ch2>\u003C?php echo esc_html_e('Today\\'s Tasks', 'taskbuilder'); ?>\u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-tasks')); ?>\" class=\"wppm-view-all\" target=\"_blank\">\u003C?php echo esc_html_e('View All', 'taskbuilder'); ?>\u003C\u002Fa>\u003C\u002Fh2>\r\n+      \u003Cform id=\"wppm_get_my_tasks_frm\" name=\"wppm_get_my_tasks_frm\">\r\n+        \u003Cdiv class=\"table-responsive\">\r\n+          \u003Ctable id=\"tbl_todays_tasks\" class=\"table table-striped table-bordered\" cellspacing=\"0\" width=\"100%\">\r\n+              \u003Cthead>\r\n+                \u003Ctr>\r\n+                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Task Name','taskbuilder');?> \u003C\u002Fth>\r\n+                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Task Status','taskbuilder');?> \u003C\u002Fth>\r\n+                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Project','taskbuilder');?> \u003C\u002Fth>\r\n+                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Due date','taskbuilder');?> \u003C\u002Fth>\r\n+                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Progress','taskbuilder');?> \u003C\u002Fth>\r\n+                \u003C\u002Ftr>\r\n+              \u003C\u002Fthead>\r\n+              \u003Ctbody>\r\n+                \u003C?php\r\n+                if(!empty($todays_tasks)){\r\n+                  foreach ($todays_tasks as $task) {\r\n+                    $status = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", (int) $task->status ) );\r\n+                    $users = array();\r\n+                    if($task->users != null){\r\n+                      $users = explode(\",\",$task->users);\r\n+                    }\r\n+                    if(!empty($task->project)){\r\n+                      $project = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_project WHERE id = %d\",(int) $task->project));\r\n+                    }\r\n+                    if($wppm_task_time == 1){\r\n+                      $task_end_date = $task->end_date;\r\n+                    } elseif($wppm_task_time == 0){\r\n+                        $teDate = new DateTime($task->end_date);\r\n+                        $task_end_date = $teDate->format('Y-m-d');\r\n+                    }\r\n+                    $priority_color = $wpdb->get_var(\r\n+                      $wpdb->prepare(\r\n+                          \"SELECT bg_color \r\n+                          FROM {$wpdb->prefix}wppm_task_priorities \r\n+                          WHERE id = %d\",\r\n+                          (int) $task->priority\r\n+                      )\r\n+                    );\r\n+                    \u002F\u002F fallback color if not found\r\n+                    if(empty($priority_color)){\r\n+                        $priority_color = '#cccccc';\r\n+                    }\r\n+                    ?>\r\n+                  \u003Ctr onclick=\"wppm_open_task(\u003C?php echo esc_attr($task->id); ?>)\" class=\"wppm-task-row\" data-task=\"\u003C?php echo esc_attr($task->id); ?>\" data-project=\"\u003C?php echo esc_attr($task->project); ?>\">\r\n+                    \u003Ctd>\r\n+                        \u003Cspan class=\"wppm-priority-dot\" style=\"background: \u003C?php echo esc_attr($priority_color); ?>;\">\u003C\u002Fspan>\r\n+                        \u003C?php echo esc_html($task->task_name); ?>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003Ctd>\r\n+                      \u003Cspan class=\"wppm_td_task_status\" style=\"background-color:\u003C?php echo (isset($status->bg_color))? esc_attr($status->bg_color):\"\";?>; color: \u003C?php echo (isset($status->color))? esc_attr($status->color):\"\"; ?>\">\u003C?php echo (isset($status->name))? esc_html($status->name):\"\" ?>\u003C\u002Fspan>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003Ctd>\r\n+                      \u003C?php echo esc_html($project->project_name); ?>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003Ctd>\r\n+                      \u003C?php echo (isset($task_end_date))? esc_html($task_end_date):\"\"?>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003Ctd>\r\n+                        \u003C?php\r\n+                        $checklists = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = %d\",$task->id) );\r\n+                        $row = $wpdb->get_row(\r\n+                          $wpdb->prepare(\r\n+                              \"SELECT \r\n+                              COUNT(Items.id) as total,\r\n+                              SUM(CASE WHEN Items.checked = 1 THEN 1 ELSE 0 END) as completed\r\n+                              FROM {$wpdb->prefix}wppm_checklist_items AS Items\r\n+                              LEFT JOIN {$wpdb->prefix}wppm_checklist checklist \r\n+                              ON Items.checklist_id = checklist.id\r\n+                              WHERE checklist.task_id = %d\",\r\n+                              $task->id\r\n+                          )\r\n+                      );\r\n+                      $total = $row->total;\r\n+                      $total_checked_items = intval($row->completed);\r\n+                      $progress = ($total > 0) ? round(($total_checked_items \u002F $total) * 100) : 0;\r\n+                      $color = '#ef4444'; \u002F\u002F red\r\n+                      if($progress >= 50){\r\n+                        $color = '#f59e0b'; \u002F\u002F orange\r\n+                      }\r\n+                      if($progress >= 80){\r\n+                        $color = '#22c55e'; \u002F\u002F green\r\n+                      }\r\n+                        ?>\r\n+                        \u003Cdiv class=\"dashboard-progress-wrapper\">\r\n+                          \u003Cdiv class=\"dashboard-progress-bar\">\r\n+                              \u003Cdiv class=\"dashboard-progress\" style=\"width: \u003C?php echo esc_attr($progress); ?>%; background: \u003C?php echo esc_attr($color); ?>;\">\u003C\u002Fdiv>\r\n+                          \u003C\u002Fdiv>\r\n+                          \u003Cspan class=\"dashboard-progress-text\">\u003C?php echo esc_html($progress); ?>%\u003C\u002Fspan>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Ftd>\r\n+                  \u003C\u002Ftr>\r\n+                  \u003C?php } \r\n+                }\r\n+                ?>\r\n+              \u003C\u002Ftbody>\r\n+          \u003C\u002Ftable>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fform>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-widget\">\r\n+      \u003Ch2>\u003C?php echo esc_html__('Upcoming Tasks(Next 7 Days)', 'taskbuilder'); ?> \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-tasks')); ?>\" class=\"wppm-view-all\" target=\"_blank\">\u003C?php echo esc_html__('View All','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fh2>\r\n+      \u003C?php \r\n+      $query = $wpdb->prepare(\r\n+                \"SELECT t.*, p.project_name\r\n+                FROM {$wpdb->prefix}wppm_task t\r\n+                LEFT JOIN {$wpdb->prefix}wppm_project p \r\n+                ON t.project = p.id\r\n+                LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\r\n+                ON p.id = pm.project_id \r\n+                AND pm.meta_key = 'public_project'\r\n+                WHERE \r\n+                    (\r\n+                        FIND_IN_SET(%d, t.users)\r\n+                        OR t.created_by = %d\r\n+                        OR %d = 1\r\n+                        OR pm.meta_value = '1'\r\n+                        OR t.project IN (\r\n+                            SELECT id FROM {$wpdb->prefix}wppm_project \r\n+                            WHERE created_by = %d \r\n+                              OR FIND_IN_SET(%d, users)\r\n+                        )\r\n+                    )\r\n+                    AND DATE(t.end_date) BETWEEN CURDATE() \r\n+                    AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)\r\n+                    AND t.status != 4\r\n+                    AND t.active = 1\r\n+                    AND t.is_archived = 0\r\n+\r\n+                ORDER BY t.end_date ASC\r\n+                LIMIT 5\",\r\n+                $current_user_id,\r\n+                $current_user_id,\r\n+                $is_admin,\r\n+                $current_user_id,\r\n+                $current_user_id\r\n+            );\r\n+        $upcoming_tasks = $wpdb->get_results($query);?>\r\n+        \u003Cform id=\"wppm_get_upcoming_tasks_frm\" name=\"wppm_get_upcoming_tasks_frm\">\r\n+          \u003Cdiv class=\"table-responsive\">\r\n+            \u003Ctable id=\"tbl_upcoming_tasks\" class=\"table table-striped table-bordered\" cellspacing=\"0\" width=\"100%\">\r\n+                \u003Cthead>\r\n+                  \u003Ctr>\r\n+                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Name','taskbuilder');?> \u003C\u002Fth>\r\n+                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Status','taskbuilder');?> \u003C\u002Fth>\r\n+                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Project','taskbuilder');?> \u003C\u002Fth>\r\n+                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Due date','taskbuilder');?> \u003C\u002Fth>\r\n+                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Progress','taskbuilder');?> \u003C\u002Fth>\r\n+                  \u003C\u002Ftr>\r\n+                \u003C\u002Fthead>\r\n+                \u003Ctbody>\r\n+                \u003C?php\r\n+                if(!empty($upcoming_tasks)){\r\n+                  foreach ($upcoming_tasks as $task) {\r\n+                    $status = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", (int) $task->status ) );\r\n+                    $users = array();\r\n+                    if($task->users != null){\r\n+                      $users = explode(\",\",$task->users);\r\n+                    }\r\n+                    if(!empty($task->project)){\r\n+                      $project = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_project WHERE id = %d\",(int) $task->project));\r\n+                    }\r\n+                    if($wppm_task_time == 1){\r\n+                      $task_end_date = $task->end_date;\r\n+                    } elseif($wppm_task_time == 0){\r\n+                        $teDate = new DateTime($task->end_date);\r\n+                        $task_end_date = $teDate->format('Y-m-d');\r\n+                    }\r\n+                    $priority_color = $wpdb->get_var(\r\n+                    $wpdb->prepare(\r\n+                        \"SELECT bg_color \r\n+                        FROM {$wpdb->prefix}wppm_task_priorities \r\n+                        WHERE id = %d\",\r\n+                        (int) $task->priority\r\n+                    )\r\n+                    );\r\n+                    \u002F\u002F fallback color if not found\r\n+                    if(empty($priority_color)){\r\n+                        $priority_color = '#cccccc';\r\n+                    }\r\n+                    ?>\r\n+                  \u003Ctr onclick=\"wppm_open_task(\u003C?php echo esc_attr($task->id);?>)\" class=\"wppm-task-row\" data-task=\"\u003C?php echo esc_attr($task->id); ?>\" data-project=\"\u003C?php echo esc_attr($task->project); ?> \">\r\n+                    \u003Ctd>\r\n+                        \u003Cspan class=\"wppm-priority-dot\" style=\"background: \u003C?php echo esc_attr($priority_color); ?>;\">\u003C\u002Fspan>\r\n+                        \u003C?php echo esc_html($task->task_name); ?>\r\n+                    \u003C\u002Ftd>\r\n+                      \u003Ctd>\r\n+                        \u003Cspan class=\"wppm_td_task_status\" style=\"background-color:\u003C?php echo (isset($status->bg_color))? esc_attr($status->bg_color):\"\";?>; color: \u003C?php echo (isset($status->color))? esc_attr($status->color):\"\"; ?>\">\u003C?php echo (isset($status->name))? esc_html($status->name):\"\" ?>\u003C\u002Fspan>\r\n+                      \u003C\u002Ftd>\r\n+                      \u003Ctd>\r\n+                        \u003C?php echo esc_html($project->project_name); ?>\r\n+                      \u003C\u002Ftd>\r\n+                      \u003Ctd>\r\n+                        \u003C?php echo (isset($task_end_date))? esc_html($task_end_date):\"\"?>\r\n+                      \u003C\u002Ftd>\r\n+                      \u003Ctd>\r\n+                        \u003C?php\r\n+                        $checklists = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = %d\",$task->id) );\r\n+                       $row = $wpdb->get_row(\r\n+                          $wpdb->prepare(\r\n+                              \"SELECT \r\n+                              COUNT(Items.id) as total,\r\n+                              SUM(CASE WHEN Items.checked = 1 THEN 1 ELSE 0 END) as completed\r\n+                              FROM {$wpdb->prefix}wppm_checklist_items AS Items\r\n+                              LEFT JOIN {$wpdb->prefix}wppm_checklist checklist \r\n+                              ON Items.checklist_id = checklist.id\r\n+                              WHERE checklist.task_id = %d\",\r\n+                              $task->id\r\n+                          )\r\n+                      );\r\n+\r\n+                      $total = $row->total;\r\n+                      $total_checked_items = intval($row->completed);\r\n+\r\n+                      $progress = ($total > 0) ? round(($total_checked_items \u002F $total) * 100) : 0;\r\n+                      $color = '#ef4444'; \u002F\u002F red\r\n+                        if($progress >= 50){\r\n+                          $color = '#f59e0b'; \u002F\u002F orange\r\n+                      }\r\n+                        if($progress >= 80){\r\n+                          $color = '#22c55e'; \u002F\u002F green\r\n+                        }\r\n+                        ?>\r\n+                        \u003Cdiv class=\"dashboard-progress-wrapper\">\r\n+                          \u003Cdiv class=\"dashboard-progress-bar\">\r\n+                              \u003Cdiv class=\"dashboard-progress\" style=\"width: \u003C?php echo esc_attr($progress); ?>%; background: \u003C?php echo esc_attr($color); ?>;\">\u003C\u002Fdiv>\r\n+                          \u003C\u002Fdiv>\r\n+                          \u003Cspan class=\"dashboard-progress-text\">\u003C?php echo esc_html($progress); ?>%\u003C\u002Fspan>\r\n+                        \u003C\u002Fdiv>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003C\u002Ftr>\r\n+            \u003C?php } \r\n+                }\r\n+                ?>\r\n+              \u003C\u002Ftbody>\r\n+            \u003C\u002Ftable>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fform>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"wppm-row\">\r\n+    \u003Cdiv class=\"wppm-widget\">\r\n+      \u003Ch2>\u003C?php echo esc_html_e('My Tasks','taskbuilder'); ?>   \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-tasks')); ?>\" class=\"wppm-view-all\" target=\"_blank\">\u003C?php echo esc_html_e('View All','taskbuilder'); ?>\u003C\u002Fa>\u003C\u002Fh2>\r\n+      \u003Cform id=\"wppm_get_my_tasks_frm\" name=\"wppm_get_my_tasks_frm\">\r\n+        \u003Cdiv class=\"table-responsive\">\r\n+          \u003Ctable id=\"tbl_my_tasks\" class=\"table table-striped table-bordered\" cellspacing=\"0\" width=\"100%\">\r\n+              \u003Cthead>\r\n+                \u003Ctr>\r\n+                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Task Name','taskbuilder');?> \u003C\u002Fth>\r\n+                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Task Status','taskbuilder');?> \u003C\u002Fth>\r\n+                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Project','taskbuilder');?> \u003C\u002Fth>\r\n+                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Due date','taskbuilder');?> \u003C\u002Fth>\r\n+                  \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Progress','taskbuilder');?> \u003C\u002Fth>\r\n+                \u003C\u002Ftr>\r\n+              \u003C\u002Fthead>\r\n+              \u003Ctbody>\r\n+                \u003C?php\r\n+                if(!empty($tasks)){\r\n+                  foreach ($tasks as $task) {\r\n+                    $status = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", (int) $task->status ) );\r\n+                    $users = array();\r\n+                    if($task->users != null){\r\n+                      $users = explode(\",\",$task->users);\r\n+                    }\r\n+                    if(!empty($task->project)){\r\n+                      $project = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_project WHERE id = %d\",(int) $task->project));\r\n+                    }\r\n+                    if($wppm_task_time == 1){\r\n+                      $task_end_date = $task->end_date;\r\n+                    } elseif($wppm_task_time == 0){\r\n+                        $teDate = new DateTime($task->end_date);\r\n+                        $task_end_date = $teDate->format('Y-m-d');\r\n+                    }\r\n+                    $priority_color = $wpdb->get_var( $wpdb->prepare(\r\n+                        \"SELECT bg_color \r\n+                        FROM {$wpdb->prefix}wppm_task_priorities \r\n+                        WHERE id = %d\",\r\n+                        (int) $task->priority \r\n+                      )\r\n+                    );\r\n+                    \u002F\u002F fallback color if not found\r\n+                    if(empty($priority_color)){\r\n+                        $priority_color = '#cccccc';\r\n+                    }\r\n+                    ?>\r\n+                    \u003Ctr class=\"wppm-task-row\" data-task=\"\u003C?php echo esc_attr($task->id); ?>\" data-project=\"\u003C?php echo esc_attr($task->project); ?>\">\r\n+                      \u003Ctd>\r\n+                          \u003Cspan class=\"wppm-priority-dot\" style=\"background: \u003C?php echo esc_attr($priority_color); ?>;\">\u003C\u002Fspan>\r\n+                          \u003C?php echo esc_html($task->task_name); ?>\r\n+                      \u003C\u002Ftd>\r\n+                      \u003Ctd>\r\n+                        \u003Cspan class=\"wppm_td_task_status\" style=\"background-color:\u003C?php echo (isset($status->bg_color))? esc_attr($status->bg_color):\"\";?>; color: \u003C?php echo (isset($status->color))? esc_attr($status->color):\"\"; ?>\">\u003C?php echo (isset($status->name))? esc_html($status->name):\"\" ?>\u003C\u002Fspan>\r\n+                      \u003C\u002Ftd>\r\n+                      \u003Ctd>\r\n+                        \u003C?php echo esc_html($project->project_name); ?>\r\n+                      \u003C\u002Ftd>\r\n+                      \u003Ctd>\r\n+                        \u003C?php echo (isset($task_end_date))? esc_html($task_end_date):\"\"?>\r\n+                      \u003C\u002Ftd>\r\n+                      \u003Ctd>\r\n+                        \u003C?php\r\n+                        $checklists = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = %d\",$task->id) );\r\n+                        $row = $wpdb->get_row(\r\n+                            $wpdb->prepare(\r\n+                                \"SELECT \r\n+                                COUNT(Items.id) as total,\r\n+                                SUM(CASE WHEN Items.checked = 1 THEN 1 ELSE 0 END) as completed\r\n+                                FROM {$wpdb->prefix}wppm_checklist_items AS Items\r\n+                                LEFT JOIN {$wpdb->prefix}wppm_checklist checklist \r\n+                                ON Items.checklist_id = checklist.id\r\n+                                WHERE checklist.task_id = %d\",\r\n+                                $task->id\r\n+                            )\r\n+                        );\r\n+                        $total = $row->total;\r\n+                        $total_checked_items = intval($row->completed);\r\n+\r\n+                        $progress = ($total > 0) ? round(($total_checked_items \u002F $total) * 100) : 0;\r\n+                        $color = '#ef4444'; \u002F\u002F red\r\n+                          if($progress >= 50){\r\n+                            $color = '#f59e0b'; \u002F\u002F orange\r\n+                        }\r\n+                          if($progress >= 80){\r\n+                            $color = '#22c55e'; \u002F\u002F green\r\n+                          }\r\n+                          ?>\r\n+                          \u003Cdiv class=\"dashboard-progress-wrapper\">\r\n+                            \u003Cdiv class=\"dashboard-progress-bar\">\r\n+                                \u003Cdiv class=\"dashboard-progress\" style=\"width: \u003C?php echo esc_attr($progress); ?>%; background: \u003C?php echo esc_attr($color); ?>;\">\u003C\u002Fdiv>\r\n+                            \u003C\u002Fdiv>\r\n+                            \u003Cspan class=\"dashboard-progress-text\">\u003C?php echo esc_html($progress); ?>%\u003C\u002Fspan>\r\n+                          \u003C\u002Fdiv>\r\n+                      \u003C\u002Ftd>\r\n+                    \u003C\u002Ftr>\r\n+                  \u003C?php } \r\n+                }\r\n+                ?>\r\n+              \u003C\u002Ftbody>\r\n+          \u003C\u002Ftable>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fform>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-widget\">\r\n+      \u003Ch2>\u003C?php echo esc_html_e('Active Projects','taskbuilder'); ?> \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-projects')); ?>\" class=\"wppm-view-all\" target=\"_blank\">\u003C?php echo esc_html_e('View All','taskbuilder'); ?>\u003C\u002Fa>\u003C\u002Fh2>\r\n+      \u003C?php \r\n+      $query = $wpdb->prepare(\r\n+              \"SELECT \r\n+              p.id,\r\n+              p.project_name AS name,\r\n+              ps.name AS status_name,\r\n+              ps.bg_color AS status_color,\r\n+              ps.color AS status_text_color,\r\n+              p.end_date,\r\n+              COUNT(t.id) AS total_tasks,\r\n+              SUM(CASE WHEN t.status = '4' THEN 1 ELSE 0 END) AS completed_tasks\r\n+              FROM {$wpdb->prefix}wppm_project p\r\n+              LEFT JOIN {$wpdb->prefix}wppm_project_statuses ps\r\n+              ON p.status = ps.id\r\n+              LEFT JOIN {$wpdb->prefix}wppm_project_users pu\r\n+              ON p.id = pu.proj_id\r\n+              LEFT JOIN {$wpdb->prefix}wppm_task t\r\n+              ON p.id = t.project\r\n+              LEFT JOIN {$wpdb->prefix}wppm_project_meta pm\r\n+              ON p.id = pm.project_id \r\n+              AND pm.meta_key = 'public_project'\r\n+              WHERE (FIND_IN_SET(%d, p.users) OR p.created_by = %d OR %d = 1 OR pm.meta_value = 1)\r\n+              AND p.status != %d\r\n+              GROUP BY p.id\r\n+              ORDER BY p.end_date ASC\r\n+              LIMIT 5\",\r\n+              $current_user_id,\r\n+              $current_user_id,\r\n+              $is_admin,\r\n+              4\r\n+      );\r\n+        $projects = $wpdb->get_results($query);\r\n+        ?>\r\n+        \u003Cform id=\"wppm_get_active_projects_frm\" name=\"wppm_get_active_projects_frm\">\r\n+          \u003Cdiv class=\"table-responsive\">\r\n+            \u003Ctable id=\"tbl_active_projects\" class=\"table table-striped table-bordered\" cellspacing=\"0\" width=\"100%\">\r\n+                \u003Cthead>\r\n+                  \u003Ctr>\r\n+                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Name','taskbuilder');?> \u003C\u002Fth>\r\n+                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Status','taskbuilder');?> \u003C\u002Fth>\r\n+                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Due date','taskbuilder');?> \u003C\u002Fth>\r\n+                    \u003Cth class=\"wppm_table_header\">\u003C?php echo esc_html_e('Progress','taskbuilder');?> \u003C\u002Fth>\r\n+                  \u003C\u002Ftr>\r\n+                \u003C\u002Fthead>\r\n+                \u003Ctbody>\r\n+                  \u003C?php\r\n+                  if(!empty($projects)){\r\n+                    foreach ($projects as $project) {\r\n+                      if($wppm_project_time == 1){\r\n+                        $project_end_date = $project->end_date;\r\n+                      } elseif($wppm_project_time == 0){\r\n+                          $peDate = new DateTime($project->end_date);\r\n+                          $project_end_date = $peDate->format('Y-m-d');\r\n+                      }\r\n+                      ?>\r\n+                      \u003Ctr onclick= \"wppm_open_project(\u003C?php echo esc_attr($project->id) ?>)\" class=\"wppm-project-row\" data-project=\"\u003C?php echo esc_attr($project->id); ?>\">\r\n+                        \u003Ctd>\r\n+                          \u003C?php echo esc_html($project->name); ?>\r\n+                        \u003C\u002Ftd>\r\n+                        \u003Ctd>\r\n+                          \u003Cspan class=\"wppm_td_project_status\" style=\"background-color:\u003C?php echo (isset($project->status_color))? esc_attr($project->status_color):\"\";?>; color: \u003C?php echo (isset($project->status_text_color))? esc_attr($project->status_text_color):\"\"; ?>\">\u003C?php echo (isset($project->status_name))? esc_html($project->status_name):\"\" ?>\u003C\u002Fspan>\r\n+                        \u003C\u002Ftd>\r\n+                        \u003Ctd>\r\n+                          \u003C?php echo esc_html($project_end_date); ?>\r\n+                        \u003C\u002Ftd>\r\n+                        \u003Ctd>\r\n+                            \u003C?php\r\n+                              $total = $project->total_tasks;\r\n+                              $completed = $project->completed_tasks;\r\n+                              if($total > 0){\r\n+                                $proj_progress = round(($completed \u002F $total) * 100);\r\n+                              }else{\r\n+                                $proj_progress = 0;\r\n+                              }\r\n+                              $color = '#ef4444'; \u002F\u002F red\r\n+                                if($proj_progress >= 50){\r\n+                                  $color = '#f59e0b'; \u002F\u002F orange\r\n+                              }\r\n+                              if($proj_progress >= 80){\r\n+                                $color = '#22c55e'; \u002F\u002F green\r\n+                              }\r\n+                              ?>\r\n+                              \u003Cdiv class=\"dashboard-progress-wrapper\">\r\n+                                  \u003Cdiv class=\"dashboard-progress-bar\">\r\n+                                      \u003Cdiv class=\"dashboard-progress\" style=\"width:\u003C?php echo esc_attr($proj_progress); ?>%; background: \u003C?php echo esc_attr($color); ?>;\">\u003C\u002Fdiv>\r\n+                                  \u003C\u002Fdiv>\r\n+                                  \u003Cspan class=\"dashboard-progress-text\">\u003C?php echo esc_html($proj_progress); ?>%\u003C\u002Fspan>\r\n+                              \u003C\u002Fdiv>\r\n+                          \u003C\u002Fdiv>\r\n+                        \u003C\u002Ftd>\r\n+                      \u003C\u002Ftr>\r\n+                    \u003C?php }\r\n+                  }?>\r\n+                \u003C\u002Ftbody>\r\n+            \u003C\u002Ftable>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fform>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"wppm-row\">\r\n+    \u003Cdiv class=\"wppm-widget\">\r\n+        \u003Ch2>\u003C?php echo esc_html_e('Project Overview', 'taskbuilder'); ?>\u003C\u002Fh2>\r\n+        \u003Ccanvas id=\"wppm_project_chart\">\u003C\u002Fcanvas>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-widget\">\r\n+        \u003Ch2>\u003C?php echo esc_html_e('Task Overview', 'taskbuilder'); ?>\u003C\u002Fh2>\r\n+        \u003Ccanvas id=\"wppm_task_chart\">\u003C\u002Fcanvas>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"wppm-row\">\r\n+    \u003Cdiv class=\"wppm-widget\">\r\n+        \u003Ch2>\u003C?php echo esc_html_e('User Workload', 'taskbuilder'); ?>\u003C\u002Fh2>\r\n+        \u003C?php \r\n+$query = $wpdb->prepare( \"SELECT u.ID, u.display_name, \r\n+        COUNT(DISTINCT t.id) AS total_tasks\r\n+        FROM {$wpdb->users} u\r\n+        INNER JOIN {$wpdb->prefix}wppm_project_users pu \r\n+        ON u.ID = pu.user_id\r\n+        INNER JOIN {$wpdb->prefix}wppm_task t \r\n+        ON FIND_IN_SET(u.ID, t.users)\r\n+        AND t.project = pu.proj_id AND pu.role_id!=3\r\n+     WHERE \r\n+        t.status != 4 \r\n+        AND t.active = 1 \r\n+        AND t.is_archived = 0\r\n+        AND (\r\n+            %d = 1\r\n+            OR EXISTS (\r\n+                SELECT 1 \r\n+                FROM {$wpdb->prefix}wppm_project_users current_pu\r\n+                LEFT JOIN {$wpdb->prefix}wppm_project p\r\n+                ON current_pu.proj_id = p.id\r\n+                WHERE (current_pu.proj_id = pu.proj_id\r\n+                AND current_pu.user_id = %d\r\n+                AND current_pu.role_id != 3 OR p.created_by = %d )\r\n+            )\r\n+        )\r\n+     GROUP BY u.ID\r\n+     HAVING total_tasks > 0\r\n+     ORDER BY total_tasks DESC\r\n+     LIMIT 5\",\r\n+    $is_admin,\r\n+    $current_user_id,\r\n+    $current_user_id\r\n+);\r\n+\r\n+$workloads = $wpdb->get_results($query);\r\n+    \u002F\u002F Get max task count\r\n+    $max_tasks = 0;\r\n+    if(!empty($workloads)){\r\n+      foreach($workloads as $w){\r\n+        if($w->total_tasks > $max_tasks){\r\n+          $max_tasks = $w->total_tasks;\r\n+        }\r\n+      }\r\n+    }\r\n+    ?>\r\n+    \u003Cul class=\"wppm-workload-list\">\r\n+    \u003C?php\r\n+    if(!empty($workloads)){ \r\n+      foreach($workloads as $workload){ \r\n+        $percent = 0;\r\n+        if($max_tasks > 0){\r\n+            $percent = ($workload->total_tasks \u002F $max_tasks) * 100;\r\n+        }\r\n+        $color = '#4CAF50';\r\n+        if($percent > 80){\r\n+            $color = '#ff4d4d';\r\n+        }elseif($percent > 50){\r\n+            $color = '#ffa500';\r\n+        }?>\r\n+          \u003Cli>\r\n+              \u003Cspan>\u003C?php echo esc_html($workload->display_name); ?>\u003C\u002Fspan>\r\n+              \u003Cdiv class=\"wppm-workload-bar\">\r\n+                  \u003Cdiv class=\"wppm-progress\" style=\"width:\u003C?php echo esc_attr($percent); ?>%; background:\u003C?php echo esc_attr($color); ?>\">\u003C\u002Fdiv>\r\n+              \u003C\u002Fdiv>\r\n+              \u003Cspan>\u003C?php echo esc_html($workload->total_tasks); ?>\u003C\u002Fspan>\r\n+          \u003C\u002Fli>\r\n+    \u003C?php } \r\n+    }?>\r\n+    \u003C\u002Ful>\r\n+  \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-widget\">\r\n+      \u003Ch2>\u003C?php echo esc_html_e('Quick Actions', 'taskbuilder'); ?>\u003C\u002Fh2>\r\n+      \u003Cdiv class=\"wppm-quick-actions\">\r\n+        \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-projects&action=add')); ?>\" class=\"wppm-add-new-btn btn-primary\" target=\"_blank\"> ➕ \u003C?php echo esc_html_e('Add New Project', 'taskbuilder'); ?>\u003C\u002Fa>\r\n+        \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-projects&action=view')); ?>\" class=\"wppm-add-new-btn btn-primary\" target=\"_blank\"> 📂 \u003C?php echo esc_html_e('View Projects', 'taskbuilder'); ?>\u003C\u002Fa>\r\n+        \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-tasks&action=add')); ?>\" class=\"wppm-add-new-btn btn-primary\" target=\"_blank\"> ✅ \u003C?php echo esc_html_e('Add New Task', 'taskbuilder'); ?>\u003C\u002Fa>\r\n+        \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-tasks&action=view')); ?>\" class=\"wppm-add-new-btn btn-primary\" target=\"_blank\"> 📋 \u003C?php echo esc_html_e('View Tasks', 'taskbuilder'); ?>\u003C\u002Fa>\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003Cscript type=\"text\u002Fjavascript\">\r\n+  jQuery(document).ready(function() {\r\n+    var table = jQuery('#tbl_my_tasks').DataTable({\r\n+      \"paging\":   false,\r\n+      \"ordering\": false,\r\n+      \"info\":     false,\r\n+      \"searching\": false,\r\n+      \"language\": {\r\n+          \"emptyTable\": \"\u003C?php echo esc_html_e('No tasks found','taskbuilder'); ?>\"\r\n+        }\r\n+    });\r\n+    var table = jQuery('#tbl_todays_tasks').DataTable({\r\n+      \"paging\":   false,\r\n+      \"ordering\": false,\r\n+      \"info\":     false,\r\n+      \"searching\": false,\r\n+      \"language\": {\r\n+          \"emptyTable\": \"\u003C?php echo esc_html_e('No tasks found','taskbuilder'); ?>\"\r\n+        }\r\n+    });\r\n+    var proj_table = jQuery('#tbl_active_projects').DataTable({\r\n+      \"paging\":   false,\r\n+      \"ordering\": false,\r\n+      \"info\":     false,\r\n+      \"searching\": false,\r\n+      \"language\": {\r\n+          \"emptyTable\": \"\u003C?php echo esc_html_e('No Projects found','taskbuilder'); ?>\"\r\n+        }\r\n+    });\r\n+    jQuery('div.dataTables_filter input', proj_table.table().container()).focus();\t\r\n+    var upcoming_tasks_table = jQuery('#tbl_upcoming_tasks').DataTable({\r\n+      \"paging\":   false,\r\n+      \"ordering\": false,\r\n+      \"info\":     false,\r\n+      \"searching\": false,\r\n+      \"language\": {\r\n+          \"emptyTable\": \"\u003C?php echo esc_html_e('No Upcoming Tasks found','taskbuilder'); ?>\"\r\n+        }\r\n+    });\r\n+    \u002F\u002FjQuery('div.dataTables_filter input', upcoming_tasks_table.table().container()).focus();\t\r\n+    var ctx = document.getElementById('wppm_task_chart').getContext('2d');\r\n+    new Chart(ctx, {\r\n+        type: 'doughnut',\r\n+        data: {\r\n+            labels: \u003C?php echo json_encode($labels); ?>,\r\n+            datasets: [{\r\n+                data:\u003C?php echo json_encode($data); ?>,\r\n+                backgroundColor: [\r\n+                    \u003C?php \r\n+                      foreach($task_bg_colors as $color){\r\n+                        echo \"'\".esc_attr($color).\"',\";\r\n+                      }\r\n+                    ?>\r\n+                ]\r\n+            }]\r\n+        },\r\n+        options: {\r\n+            responsive: true,\r\n+            plugins: {\r\n+                legend: {\r\n+                    position: 'bottom'\r\n+                }\r\n+            }\r\n+        }\r\n+    });\r\n+    var ctx = document.getElementById('wppm_project_chart').getContext('2d');\r\n+    new Chart(ctx, {\r\n+        type: 'doughnut',\r\n+        data: {\r\n+            labels: \u003C?php echo json_encode($project_labels); ?>,\r\n+            datasets: [{\r\n+                data: \u003C?php echo json_encode($project_data); ?>,\r\n+                backgroundColor: [\r\n+                    \u003C?php \r\n+                      foreach($project_bg_colors as $color){\r\n+                        echo \"'\".esc_attr($color).\"',\";\r\n+                      }\r\n+                    ?>\r\n+                ]\r\n+            }]\r\n+        },\r\n+        options: {\r\n+            responsive: true,\r\n+            plugins: {\r\n+                legend: {\r\n+                    position: 'bottom'\r\n+                }\r\n+            }\r\n+        }\r\n+    });\r\n+} );\r\n+jQuery(document).on('click','.wppm-task-row',function(){\r\n+    var task_id = jQuery(this).data('task');\r\n+    var project_id = jQuery(this).data('project');\r\n+    event.stopPropagation();\r\n+    window.location.href = '\u003C?php echo admin_url(\"admin.php?page=wppm-tasks\"); ?>' + '&task_id=' + task_id;\r\n+});\r\n+jQuery(document).on('click','.wppm-project-row',function(){\r\n+    var project_id = jQuery(this).data('project');\r\n+    event.stopPropagation();\r\n+    window.location.href = '\u003C?php echo admin_url(\"admin.php?page=wppm-projects\"); ?>' + '&project_id=' + project_id;\r\n+});\r\n+\u003C\u002Fscript>\r\n+\u003Cstyle type=\"text\u002Fcss\">\r\n+  #wpfooter{\r\n+    display: none;\r\n+  }\r\n \u003C\u002Fstyle>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,94 +1,94 @@\n-\u003C?php\n-\u002F\u002F Exit if accessed directly\n-if ( ! defined( 'ABSPATH' ) ) exit;\n-\n-global $wpdb,$wppmfunction, $current_user;\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$settings = get_option(\"wppm-ap-modal\");\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-?>\n-\u003Cdiv class=\"wppm_bootstrap\">\n-  \u003Cspan class=\"wppm-heading-inline wppm_email_notification_header\">\n-    \u003C?php echo esc_html_e('Email Notifications','taskbuilder');?>\n-  \u003C\u002Fspan>\n-  \u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\n-  \u003Cdiv class=\"row\" style=\"margin-bottom:20px;\">\n-    \u003Cdiv class=\"col-sm-4 wppm_setting_col1\">\n-      \u003Cul class=\"nav nav-pills nav-stacked wppm_setting_pills\">\n-        \u003Cli id=\"wppm_en_setting_general\" role=\"presentation\" class=\"active\">\u003Ca href=\"javascript:wppm_get_en_general_setting();\">\u003C?php echo esc_html_e('General Settings','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003Cli id=\"wppm_en_ticket_notifications\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_en_task_notifications();\">\u003C?php echo esc_html_e('Project And Task Notifications','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003C?php do_action('wppm_after_en_setting_pills');?>\n-      \u003C\u002Ful>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"col-sm-8 wppm_setting_col2\">\u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\n-    \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\">\u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\n-    \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\">\u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-  \u003C\u002Fdiv>\n-\n-  \u003C!-- Pop-up snippet start -->\n-  \u003Cdiv id=\"wppm_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\n-  \u003Cdiv id=\"wppm_popup_container\" style=\"display:none;\">\n-  \u003Cdiv class=\"wppm_bootstrap\">\n-    \u003Cdiv class=\"row\">\n-      \u003Cdiv id=\"wppm_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n-        \u003Cdiv id=\"wppm_popup_title\" class=\"row\">\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_popup_footer\" class=\"row\">\n-          \u003Cbutton type=\"button\" class=\"btn wppm_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-          \u003Cbutton type=\"button\" class=\"btn wppm_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003Cstyle>\n-  #wppm_popup_title{\n-  background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\n-  }\n-  #wppm_popup_title h3{\n-    color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\n-  }\n-  #wppm_popup_body{\n-    background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\n-  }\n-  #wppm_popup_body label{\n-    color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\n-  }\n-  #wppm_popup_body input{\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_body select{\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_body span {\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_body .select2-results__options {\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_footer{\n-    background-color: \u003C?php echo esc_attr($settings['footer-bg-color'])?>!important;\n-  }\n-  .wppm_popup_action{\n-    background-color: \u003C?php echo esc_attr($settings['action-btn-bg-color'])?>!important;\n-    color:\u003C?php echo esc_attr( $settings['action-btn-text-color'])?>!important;\n-  }\n-  .wppm_bootstrap .nav-pills > li.active > a,\n-  .wppm_bootstrap .nav-pills > li.active > a:hover,\n-  .wppm_bootstrap .nav-pills > li.active > a:focus {\n-    color: \u003C?php echo esc_attr( $wppm_ap_settings['tab-text-color'])?>!important;\n-    background-color:\u003C?php echo esc_attr($wppm_ap_settings['tab-background-color'])?>!important;\n-  }\n-\u003C\u002Fstyle>\n-\u003C!-- Pop-up snippet end -->\n-\u003Cscript>\n-    jQuery(document).ready(function(){\n-      wppm_get_en_general_setting();\n-    });\n+\u003C?php\r\n+\u002F\u002F Exit if accessed directly\r\n+if ( ! defined( 'ABSPATH' ) ) exit;\r\n+\r\n+global $wpdb,$wppmfunction, $current_user;\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+?>\r\n+\u003Cdiv class=\"wppm_bootstrap\">\r\n+  \u003Cspan class=\"wppm-heading-inline wppm_email_notification_header\">\r\n+    \u003C?php echo esc_html_e('Email Notifications','taskbuilder');?>\r\n+  \u003C\u002Fspan>\r\n+  \u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"row\" style=\"margin-bottom:20px;\">\r\n+    \u003Cdiv class=\"col-sm-4 wppm_setting_col1\">\r\n+      \u003Cul class=\"nav nav-pills nav-stacked wppm_setting_pills\">\r\n+        \u003Cli id=\"wppm_en_setting_general\" role=\"presentation\" class=\"active\">\u003Ca href=\"javascript:wppm_get_en_general_setting();\">\u003C?php echo esc_html_e('General Settings','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003Cli id=\"wppm_en_ticket_notifications\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_en_task_notifications();\">\u003C?php echo esc_html_e('Project And Task Notifications','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003C?php do_action('wppm_after_en_setting_pills');?>\r\n+      \u003C\u002Ful>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"col-sm-8 wppm_setting_col2\">\u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+    \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\">\u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+    \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\">\u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+  \u003C\u002Fdiv>\r\n+\r\n+  \u003C!-- Pop-up snippet start -->\r\n+  \u003Cdiv id=\"wppm_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\r\n+  \u003Cdiv id=\"wppm_popup_container\" style=\"display:none;\">\r\n+  \u003Cdiv class=\"wppm_bootstrap\">\r\n+    \u003Cdiv class=\"row\">\r\n+      \u003Cdiv id=\"wppm_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\r\n+        \u003Cdiv id=\"wppm_popup_title\" class=\"row\">\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_popup_footer\" class=\"row\">\r\n+          \u003Cbutton type=\"button\" class=\"btn wppm_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+          \u003Cbutton type=\"button\" class=\"btn wppm_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003Cstyle>\r\n+  #wppm_popup_title{\r\n+  background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\r\n+  }\r\n+  #wppm_popup_title h3{\r\n+    color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body{\r\n+    background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\r\n+  }\r\n+  #wppm_popup_body label{\r\n+    color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\r\n+  }\r\n+  #wppm_popup_body input{\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body select{\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body span {\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body .select2-results__options {\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_footer{\r\n+    background-color: \u003C?php echo esc_attr($settings['footer-bg-color'])?>!important;\r\n+  }\r\n+  .wppm_popup_action{\r\n+    background-color: \u003C?php echo esc_attr($settings['action-btn-bg-color'])?>!important;\r\n+    color:\u003C?php echo esc_attr( $settings['action-btn-text-color'])?>!important;\r\n+  }\r\n+  .wppm_bootstrap .nav-pills > li.active > a,\r\n+  .wppm_bootstrap .nav-pills > li.active > a:hover,\r\n+  .wppm_bootstrap .nav-pills > li.active > a:focus {\r\n+    color: \u003C?php echo esc_attr( $wppm_ap_settings['tab-text-color'])?>!important;\r\n+    background-color:\u003C?php echo esc_attr($wppm_ap_settings['tab-background-color'])?>!important;\r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003C!-- Pop-up snippet end -->\r\n+\u003Cscript>\r\n+    jQuery(document).ready(function(){\r\n+      wppm_get_en_general_setting();\r\n+    });\r\n \u003C\u002Fscript>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_change_project_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_change_project_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_change_project_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_change_project_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,93 +1,93 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $wppmfunction, $current_user,$wpdb;\n-$from_name     = get_option('wppm_en_from_name');\n-$from_email    = get_option('wppm_en_from_email');\n-$ignore_emails = get_option('wppm_en_ignore_emails');\n-$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\n-$project_id = intval(sanitize_text_field($project_id));\n-$project_id = absint($project_id);\n-$project_data = $wppmfunction->get_project($project_id);\n-$proj_users = $project_data['users'];\n-$proj_users = explode(',',$proj_users);\n-if ( !$from_name || !$from_email ) {\n-  return;\n-}\n-$wppm_email_notificatins = get_option('wppm_email_notification');\n-if(!empty($wppm_email_notificatins)){\n-  foreach ($wppm_email_notificatins as $key=>$val) :\n-    if($val['type']=='change_project_status'){\n-      $subject  = $wppmfunction->replace_macro(stripslashes($val['subject']), $project_id);\n-      $body  = $wppmfunction->replace_macro(stripslashes($val['body']),$project_id);\n-      $recipients = $val['recipients'];\n-      $email_addresses = array();\n-      if(!empty($recipients)){\n-        foreach ($recipients as $recipient) {\n-          if(is_numeric($recipient)){\n-            if($recipient == 1 && !empty($proj_users)) {\n-              foreach($proj_users as $user){\n-                if(!empty($user)){\n-                  $user = absint($user);\n-                  $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                  $userdata = get_userdata($user);\n-                  if((!empty($project_user_data)) && $project_user_data->role_id == 1){\n-                    $email_addresses[] = $userdata->user_email;\n-                  } \n-                }\n-              }\n-            } \n-            elseif($recipient == 2 && !empty($proj_users)){\n-              foreach($proj_users as $user){\n-                if(!empty($user)){\n-                  $user = absint($user);\n-                  $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                  $userdata = get_userdata($user);\n-                  if((!empty($project_user_data)) && $project_user_data->role_id == 2){\n-                    $email_addresses[] = $userdata->user_email;\n-                  }\n-                }\n-              }\n-            }\n-          } else {\n-            switch ($recipient) {\n-              case 'previously_assigned_user':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_previously_assigned_users($project_id));\n-                break;\n-              case 'project_creator':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\n-                break;\n-            }\n-          }\n-        }\n-      }\n-      $email_addresses = array_unique($email_addresses);\n-      $email_addresses = array_diff($email_addresses,$ignore_emails);\n-      if(empty($wppm_default_email_notification_to_current_user)){\n-        $email_addresses = array_diff($email_addresses,array($current_user->user_email));\n-      }\n-      $email_addresses = apply_filters('wppm_en_change_status_email_addresses',$email_addresses,$val,$project_id);\n-      $email_addresses = array_values($email_addresses);\n-\n-      $to =  isset($email_addresses[0])? $email_addresses[0] : '';\n-      if($to){\n-        unset($email_addresses[0]);\n-      } else {\n-        continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\n-      }\n-\n-      $bcc = implode(',',$email_addresses);\n-      $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\n-      $email_addresses = explode(',',$bcc);\n-      foreach ($email_addresses as $email_address) {\n-        $headers .= \"BCC: {$email_address}\\r\\n\";\n-      }\n-      $headers .= \"Content-Type: text\u002Fhtml; charset=utf-8\\r\\n\";\n-      wp_mail($to, $subject, $body, $headers);\n-      do_action('wppm_after_project_change_status_mail',$project_id,$val);\n-    }\n-  endforeach;\n-}\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $wppmfunction, $current_user,$wpdb;\r\n+$from_name     = get_option('wppm_en_from_name');\r\n+$from_email    = get_option('wppm_en_from_email');\r\n+$ignore_emails = get_option('wppm_en_ignore_emails');\r\n+$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\r\n+$project_id = intval(sanitize_text_field($project_id));\r\n+$project_id = absint($project_id);\r\n+$project_data = $wppmfunction->get_project($project_id);\r\n+$proj_users = $project_data['users'];\r\n+$proj_users = explode(',',$proj_users);\r\n+if ( !$from_name || !$from_email ) {\r\n+  return;\r\n+}\r\n+$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+if(!empty($wppm_email_notificatins)){\r\n+  foreach ($wppm_email_notificatins as $key=>$val) :\r\n+    if($val['type']=='change_project_status'){\r\n+      $subject  = $wppmfunction->replace_macro(stripslashes($val['subject']), $project_id);\r\n+      $body  = $wppmfunction->replace_macro(stripslashes($val['body']),$project_id);\r\n+      $recipients = $val['recipients'];\r\n+      $email_addresses = array();\r\n+      if(!empty($recipients)){\r\n+        foreach ($recipients as $recipient) {\r\n+          if(is_numeric($recipient)){\r\n+            if($recipient == 1 && !empty($proj_users)) {\r\n+              foreach($proj_users as $user){\r\n+                if(!empty($user)){\r\n+                  $user = absint($user);\r\n+                  $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                  $userdata = get_userdata($user);\r\n+                  if((!empty($project_user_data)) && $project_user_data->role_id == 1){\r\n+                    $email_addresses[] = $userdata->user_email;\r\n+                  } \r\n+                }\r\n+              }\r\n+            } \r\n+            elseif($recipient == 2 && !empty($proj_users)){\r\n+              foreach($proj_users as $user){\r\n+                if(!empty($user)){\r\n+                  $user = absint($user);\r\n+                  $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                  $userdata = get_userdata($user);\r\n+                  if((!empty($project_user_data)) && $project_user_data->role_id == 2){\r\n+                    $email_addresses[] = $userdata->user_email;\r\n+                  }\r\n+                }\r\n+              }\r\n+            }\r\n+          } else {\r\n+            switch ($recipient) {\r\n+              case 'previously_assigned_user':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_previously_assigned_users($project_id));\r\n+                break;\r\n+              case 'project_creator':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\r\n+                break;\r\n+            }\r\n+          }\r\n+        }\r\n+      }\r\n+      $email_addresses = array_unique($email_addresses);\r\n+      $email_addresses = array_diff($email_addresses,$ignore_emails);\r\n+      if(empty($wppm_default_email_notification_to_current_user)){\r\n+        $email_addresses = array_diff($email_addresses,array($current_user->user_email));\r\n+      }\r\n+      $email_addresses = apply_filters('wppm_en_change_status_email_addresses',$email_addresses,$val,$project_id);\r\n+      $email_addresses = array_values($email_addresses);\r\n+\r\n+      $to =  isset($email_addresses[0])? $email_addresses[0] : '';\r\n+      if($to){\r\n+        unset($email_addresses[0]);\r\n+      } else {\r\n+        continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\r\n+      }\r\n+\r\n+      $bcc = implode(',',$email_addresses);\r\n+      $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\r\n+      $email_addresses = explode(',',$bcc);\r\n+      foreach ($email_addresses as $email_address) {\r\n+        $headers .= \"BCC: {$email_address}\\r\\n\";\r\n+      }\r\n+      $headers .= \"Content-Type: text\u002Fhtml; charset=utf-8\\r\\n\";\r\n+      wp_mail($to, $subject, $body, $headers);\r\n+      do_action('wppm_after_project_change_status_mail',$project_id,$val);\r\n+    }\r\n+  endforeach;\r\n+}\r\n+\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_project_created.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_project_created.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_project_created.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_project_created.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,87 +1,87 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $wppmfunction, $current_user,$wpdb;\n-$from_name     = get_option('wppm_en_from_name');\n-$from_email    = get_option('wppm_en_from_email');\n-$ignore_emails = get_option('wppm_en_ignore_emails');\n-$project_id = intval(sanitize_text_field(($project_id)));\n-$project_id = absint($project_id);\n-$project_data = $wppmfunction->get_project($project_id);\n-$proj_users = $project_data['users'];\n-$proj_users = explode(',',$proj_users);\n-$email_addresses = array();\n-if ( !$from_name || !$from_email ) {\n-  return;\n-}\n-$wppm_email_notificatins = get_option('wppm_email_notification');\n-$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\n-if(!empty($wppm_email_notificatins)){\n-  foreach ($wppm_email_notificatins as $key=>$val) :\n-    if($val['type']=='new_project'){\n-      $subject  = $wppmfunction->replace_macro(stripslashes($val['subject']), $project_id);\n-      $body  = $wppmfunction->replace_macro(stripslashes($val['body']),$project_id);\n-      $recipients = $val['recipients'];\n-      foreach ($recipients as $recipient) {\n-        if(is_numeric($recipient)){\n-          if($recipient == 1 && !empty($proj_users)) {\n-            foreach($proj_users as $user){\n-              if(!empty($user)){\n-                $user = absint($user);\n-                $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                $userdata = get_userdata($user);\n-                if((!empty($project_user_data)) && $project_user_data->role_id == 1){\n-                  $email_addresses[] = $userdata->user_email;\n-                } \n-              }\n-            }\n-          } \n-          elseif($recipient == 2 && !empty($proj_users)){\n-            foreach($proj_users as $user){\n-              if(!empty($user)){\n-                $user = absint($user);\n-                $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                $userdata = get_userdata($user);\n-                if((!empty($project_user_data)) && $project_user_data->role_id == 2){\n-                  $email_addresses[] = $userdata->user_email;\n-                } \n-              }\n-            }\n-          }\n-        } else{\n-          switch ($recipient) {\n-            case 'project_creator':\n-              $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\n-              break;\n-          }\n-        }\n-      }\n-      $email_addresses = array_unique($email_addresses);\n-      $email_addresses = array_diff($email_addresses,$ignore_emails);\n-      if(empty($wppm_default_email_notification_to_current_user)){\n-        $email_addresses = array_diff($email_addresses,array($current_user->user_email));\n-      }\n-      $email_addresses = apply_filters('wppm_en_project_users_email_addresses',$email_addresses,$val,$project_id);\n-      $email_addresses = array_values($email_addresses);\n-\n-      $to =  isset($email_addresses[0])? $email_addresses[0] : '';\n-      if($to){\n-        unset($email_addresses[0]);\n-      } else {\n-        continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\n-      }\n-\n-      $bcc = implode(',',$email_addresses);\n-      $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\n-      $email_addresses = explode(',',$bcc);\n-      foreach ($email_addresses as $email_address) {\n-        $headers .= \"BCC: {$email_address}\\r\\n\";\n-      }\n-      $headers .= \"Content-Type: text\u002Fhtml; charset=utf-8\\r\\n\";\n-      wp_mail($to, $subject, $body, $headers);\n-      do_action('wppm_after_project_created_mail',$project_id,$val);\n-    }\n-  endforeach;\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $wppmfunction, $current_user,$wpdb;\r\n+$from_name     = get_option('wppm_en_from_name');\r\n+$from_email    = get_option('wppm_en_from_email');\r\n+$ignore_emails = get_option('wppm_en_ignore_emails');\r\n+$project_id = intval(sanitize_text_field(($project_id)));\r\n+$project_id = absint($project_id);\r\n+$project_data = $wppmfunction->get_project($project_id);\r\n+$proj_users = $project_data['users'];\r\n+$proj_users = explode(',',$proj_users);\r\n+$email_addresses = array();\r\n+if ( !$from_name || !$from_email ) {\r\n+  return;\r\n+}\r\n+$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\r\n+if(!empty($wppm_email_notificatins)){\r\n+  foreach ($wppm_email_notificatins as $key=>$val) :\r\n+    if($val['type']=='new_project'){\r\n+      $subject  = $wppmfunction->replace_macro(stripslashes($val['subject']), $project_id);\r\n+      $body  = $wppmfunction->replace_macro(stripslashes($val['body']),$project_id);\r\n+      $recipients = $val['recipients'];\r\n+      foreach ($recipients as $recipient) {\r\n+        if(is_numeric($recipient)){\r\n+          if($recipient == 1 && !empty($proj_users)) {\r\n+            foreach($proj_users as $user){\r\n+              if(!empty($user)){\r\n+                $user = absint($user);\r\n+                $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                $userdata = get_userdata($user);\r\n+                if((!empty($project_user_data)) && $project_user_data->role_id == 1){\r\n+                  $email_addresses[] = $userdata->user_email;\r\n+                } \r\n+              }\r\n+            }\r\n+          } \r\n+          elseif($recipient == 2 && !empty($proj_users)){\r\n+            foreach($proj_users as $user){\r\n+              if(!empty($user)){\r\n+                $user = absint($user);\r\n+                $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                $userdata = get_userdata($user);\r\n+                if((!empty($project_user_data)) && $project_user_data->role_id == 2){\r\n+                  $email_addresses[] = $userdata->user_email;\r\n+                } \r\n+              }\r\n+            }\r\n+          }\r\n+        } else{\r\n+          switch ($recipient) {\r\n+            case 'project_creator':\r\n+              $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\r\n+              break;\r\n+          }\r\n+        }\r\n+      }\r\n+      $email_addresses = array_unique($email_addresses);\r\n+      $email_addresses = array_diff($email_addresses,$ignore_emails);\r\n+      if(empty($wppm_default_email_notification_to_current_user)){\r\n+        $email_addresses = array_diff($email_addresses,array($current_user->user_email));\r\n+      }\r\n+      $email_addresses = apply_filters('wppm_en_project_users_email_addresses',$email_addresses,$val,$project_id);\r\n+      $email_addresses = array_values($email_addresses);\r\n+\r\n+      $to =  isset($email_addresses[0])? $email_addresses[0] : '';\r\n+      if($to){\r\n+        unset($email_addresses[0]);\r\n+      } else {\r\n+        continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\r\n+      }\r\n+\r\n+      $bcc = implode(',',$email_addresses);\r\n+      $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\r\n+      $email_addresses = explode(',',$bcc);\r\n+      foreach ($email_addresses as $email_address) {\r\n+        $headers .= \"BCC: {$email_address}\\r\\n\";\r\n+      }\r\n+      $headers .= \"Content-Type: text\u002Fhtml; charset=utf-8\\r\\n\";\r\n+      wp_mail($to, $subject, $body, $headers);\r\n+      do_action('wppm_after_project_created_mail',$project_id,$val);\r\n+    }\r\n+  endforeach;\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_change_task_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_change_task_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_change_task_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_change_task_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,107 +1,107 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $wppmfunction, $current_user,$wpdb;\n-$from_name     = get_option('wppm_en_from_name');\n-$from_email    = get_option('wppm_en_from_email');\n-$ignore_emails = get_option('wppm_en_ignore_emails');\n-$task_id = sanitize_text_field($task_id);\n-$task_data = $wppmfunction->get_task($task_id);\n-$project_id = absint($task_data['project']);\n-$project_users = $wpdb->get_results($wpdb->prepare(\"SELECT user_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND role_id = 1\",$project_id));\n-$p_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$project_id));\n-$p_users_array = array();\n-if(!empty($p_users)){\n-  $p_users_array = explode(',',$p_users );\n-}\n-$task_users = $task_data['users'];\n-$task_users = explode(',',$task_users);\n-if ( !$from_name || !$from_email ) {\n-  return;\n-}\n-$wppm_email_notificatins = get_option('wppm_email_notification');\n-$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\n-foreach ($wppm_email_notificatins as $key=>$val) :\n-  if($val['type']=='change_task_status'){\n-    $subject  = $wppmfunction->replace_task_macro(stripslashes($val['subject']), $task_id);\n-    $body  = $wppmfunction->replace_task_macro(stripslashes($val['body']),$task_id);\n-    $recipients = $val['recipients'];\n-    $email_addresses = array();\n-    if(!empty($recipients)){\n-      foreach ($recipients as $recipient) {\n-          if(is_numeric($recipient)){\n-            if($recipient == 1 && !empty($project_users)){\n-              foreach($project_users as $proj_user){\n-                $proj_user = (array) $proj_user;\n-                if(in_array($proj_user['user_id'],$p_users_array)){\n-                  $proj_userdata = get_userdata($proj_user['user_id']);\n-                  $email_addresses[] = $proj_userdata->user_email;\n-                }\n-              }\n-            }\n-            if($recipient == 1 && !empty($task_users)) {\n-                foreach($task_users as $user){\n-                  if(!empty($user)){\n-                    $userdata = get_userdata($user);\n-                    $user = absint($user);\n-                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                    if((!empty($project_user_data)) && $project_user_data->role_id == 1){\n-                      $email_addresses[] = $userdata->user_email;\n-                    }\n-                  }\n-                }\n-            } \n-            elseif($recipient == 2 && !empty($task_users)){\n-                foreach($task_users as $user){\n-                  if(!empty($user)){\n-                    $userdata = get_userdata($user);\n-                    $user = absint($user);\n-                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                    if((!empty($project_user_data)) && $project_user_data->role_id == 2){\n-                      $email_addresses[] = $userdata->user_email;\n-                    }\n-                  }\n-                }\n-              }\n-          } else {\n-            switch ($recipient) {\n-                case 'previously_assigned_user':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_previously_assigned_task_users($task_id));\n-                break;\n-                case 'project_creator':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\n-                break;\n-                case 'task_creator':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_task_creator_email($task_id));\n-                break;\n-            }\n-          }\n-      }\n-    }   \n-    $email_addresses = array_unique($email_addresses);\n-    $email_addresses = array_diff($email_addresses,$ignore_emails);\n-    if(empty($wppm_default_email_notification_to_current_user)){\n-      $email_addresses = array_diff($email_addresses,array($current_user->user_email));\n-    }\n-    $email_addresses = apply_filters('wppm_en_task_assign_users_email_addresses',$email_addresses,$val,$task_id);\n-    $email_addresses = array_values($email_addresses);\n-\n-    $to =  isset($email_addresses[0])? $email_addresses[0] : '';\n-    if($to){\n-      unset($email_addresses[0]);\n-    } else {\n-      continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\n-    }\n-    $bcc = implode(',',$email_addresses);\n-    $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\n-    $email_addresses = explode(',',$bcc);\n-    foreach ($email_addresses as $email_address) {\n-      $headers .= \"BCC: {$email_address}\\r\\n\";\n-    }\n-    $headers .= \"Content-Type: text\u002Fhtml; charset=utf-8\\r\\n\";\n-    wp_mail($to, $subject, $body, $headers);\n-    do_action('wppm_after_task_change_status_mail',$task_id,$val);\n-  }\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $wppmfunction, $current_user,$wpdb;\r\n+$from_name     = get_option('wppm_en_from_name');\r\n+$from_email    = get_option('wppm_en_from_email');\r\n+$ignore_emails = get_option('wppm_en_ignore_emails');\r\n+$task_id = sanitize_text_field($task_id);\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$project_id = absint($task_data['project']);\r\n+$project_users = $wpdb->get_results($wpdb->prepare(\"SELECT user_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND role_id = 1\",$project_id));\r\n+$p_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$project_id));\r\n+$p_users_array = array();\r\n+if(!empty($p_users)){\r\n+  $p_users_array = explode(',',$p_users );\r\n+}\r\n+$task_users = $task_data['users'];\r\n+$task_users = explode(',',$task_users);\r\n+if ( !$from_name || !$from_email ) {\r\n+  return;\r\n+}\r\n+$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\r\n+foreach ($wppm_email_notificatins as $key=>$val) :\r\n+  if($val['type']=='change_task_status'){\r\n+    $subject  = $wppmfunction->replace_task_macro(stripslashes($val['subject']), $task_id);\r\n+    $body  = $wppmfunction->replace_task_macro(stripslashes($val['body']),$task_id);\r\n+    $recipients = $val['recipients'];\r\n+    $email_addresses = array();\r\n+    if(!empty($recipients)){\r\n+      foreach ($recipients as $recipient) {\r\n+          if(is_numeric($recipient)){\r\n+            if($recipient == 1 && !empty($project_users)){\r\n+              foreach($project_users as $proj_user){\r\n+                $proj_user = (array) $proj_user;\r\n+                if(in_array($proj_user['user_id'],$p_users_array)){\r\n+                  $proj_userdata = get_userdata($proj_user['user_id']);\r\n+                  $email_addresses[] = $proj_userdata->user_email;\r\n+                }\r\n+              }\r\n+            }\r\n+            if($recipient == 1 && !empty($task_users)) {\r\n+                foreach($task_users as $user){\r\n+                  if(!empty($user)){\r\n+                    $userdata = get_userdata($user);\r\n+                    $user = absint($user);\r\n+                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                    if((!empty($project_user_data)) && $project_user_data->role_id == 1){\r\n+                      $email_addresses[] = $userdata->user_email;\r\n+                    }\r\n+                  }\r\n+                }\r\n+            } \r\n+            elseif($recipient == 2 && !empty($task_users)){\r\n+                foreach($task_users as $user){\r\n+                  if(!empty($user)){\r\n+                    $userdata = get_userdata($user);\r\n+                    $user = absint($user);\r\n+                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                    if((!empty($project_user_data)) && $project_user_data->role_id == 2){\r\n+                      $email_addresses[] = $userdata->user_email;\r\n+                    }\r\n+                  }\r\n+                }\r\n+              }\r\n+          } else {\r\n+            switch ($recipient) {\r\n+                case 'previously_assigned_user':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_previously_assigned_task_users($task_id));\r\n+                break;\r\n+                case 'project_creator':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\r\n+                break;\r\n+                case 'task_creator':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_task_creator_email($task_id));\r\n+                break;\r\n+            }\r\n+          }\r\n+      }\r\n+    }   \r\n+    $email_addresses = array_unique($email_addresses);\r\n+    $email_addresses = array_diff($email_addresses,$ignore_emails);\r\n+    if(empty($wppm_default_email_notification_to_current_user)){\r\n+      $email_addresses = array_diff($email_addresses,array($current_user->user_email));\r\n+    }\r\n+    $email_addresses = apply_filters('wppm_en_task_assign_users_email_addresses',$email_addresses,$val,$task_id);\r\n+    $email_addresses = array_values($email_addresses);\r\n+\r\n+    $to =  isset($email_addresses[0])? $email_addresses[0] : '';\r\n+    if($to){\r\n+      unset($email_addresses[0]);\r\n+    } else {\r\n+      continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\r\n+    }\r\n+    $bcc = implode(',',$email_addresses);\r\n+    $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\r\n+    $email_addresses = explode(',',$bcc);\r\n+    foreach ($email_addresses as $email_address) {\r\n+      $headers .= \"BCC: {$email_address}\\r\\n\";\r\n+    }\r\n+    $headers .= \"Content-Type: text\u002Fhtml; charset=utf-8\\r\\n\";\r\n+    wp_mail($to, $subject, $body, $headers);\r\n+    do_action('wppm_after_task_change_status_mail',$task_id,$val);\r\n+  }\r\n endforeach;\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_project_users.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_project_users.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_project_users.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_project_users.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,89 +1,89 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wppmfunction, $current_user,$wpdb;\n-$from_name     = get_option('wppm_en_from_name');\n-$from_email    = get_option('wppm_en_from_email');\n-$ignore_emails = get_option('wppm_en_ignore_emails');\n-$project_id = absint(sanitize_text_field($project_id));\n-$project_data = $wppmfunction->get_project($project_id);\n-$proj_users = $project_data['users'];\n-if(!empty($proj_users)){\n-  $proj_users = explode(',',$proj_users);\n-}\n-if ( !$from_name || !$from_email ) {\n-  return;\n-}\n-$wppm_email_notificatins = get_option('wppm_email_notification');\n-$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\n-foreach ($wppm_email_notificatins as $key=>$val) :\n-  if($val['type']=='change_project_assign_users'){\n-    $subject  = $wppmfunction->replace_macro(stripslashes($val['subject']), $project_id);\n-    $body  = $wppmfunction->replace_macro(stripslashes($val['body']),$project_id);\n-    $recipients = $val['recipients'];\n-    $email_addresses = array();\n-    if(!empty($recipients)){\n-      foreach ($recipients as $recipient) {\n-          if(is_numeric($recipient)){\n-            if($recipient == 1 && !empty($proj_users)) {\n-                foreach($proj_users as $user){\n-                  if(!empty($user)){\n-                    $user = absint($user);\n-                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                    $userdata = get_userdata($user);\n-                    if((!empty($project_user_data)) && $project_user_data->role_id == 1){\n-                      $email_addresses[] = $userdata->user_email;\n-                    }\n-                  }\n-                }\n-            }\n-            elseif($recipient == 2 && !empty($proj_users)){\n-                foreach($proj_users as $user){\n-                  if(!empty($user)){\n-                    $user = absint($user);\n-                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                    $userdata = get_userdata($user);\n-                    if((!empty($project_user_data)) && $project_user_data->role_id == 2){\n-                      $email_addresses[] = $userdata->user_email;\n-                    }\n-                  }\n-                }\n-            } \n-          } else {\n-            switch ($recipient) {\n-                case 'previously_assigned_user':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_previously_assigned_users($project_id));\n-                break;\n-                case 'project_creator':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\n-                break;\n-            }\n-          }\n-      }\n-    }   \n-    $email_addresses = array_unique($email_addresses);\n-    $email_addresses = array_diff($email_addresses,$ignore_emails);\n-    if(empty($wppm_default_email_notification_to_current_user)){\n-      $email_addresses = array_diff($email_addresses,array($current_user->user_email));\n-    }\n-    $email_addresses = apply_filters('wppm_en_project_assign_users_email_addresses',$email_addresses,$val,$project_id);\n-    $email_addresses = array_values($email_addresses);\n-    $to =  isset($email_addresses[0])? $email_addresses[0] : '';\n-    if($to){\n-      unset($email_addresses[0]);\n-    } else {\n-      continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\n-    }\n-    $bcc = implode(',',$email_addresses);\n-    $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\n-    $email_addresses = explode(',',$bcc);\n-    foreach ($email_addresses as $email_address) {\n-      $headers .= \"BCC: {$email_address}\\r\\n\";\n-    }\n-    $headers .= \"Content-Type: text\u002Fhtml; charset=UTF-8\\r\\n\";\n-    wp_mail($to, $subject, $body, $headers);\n-    do_action('wppm_after_project_change_users_mail',$project_id,$val);\n-  }\n-endforeach;\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wppmfunction, $current_user,$wpdb;\r\n+$from_name     = get_option('wppm_en_from_name');\r\n+$from_email    = get_option('wppm_en_from_email');\r\n+$ignore_emails = get_option('wppm_en_ignore_emails');\r\n+$project_id = absint(sanitize_text_field($project_id));\r\n+$project_data = $wppmfunction->get_project($project_id);\r\n+$proj_users = $project_data['users'];\r\n+if(!empty($proj_users)){\r\n+  $proj_users = explode(',',$proj_users);\r\n+}\r\n+if ( !$from_name || !$from_email ) {\r\n+  return;\r\n+}\r\n+$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\r\n+foreach ($wppm_email_notificatins as $key=>$val) :\r\n+  if($val['type']=='change_project_assign_users'){\r\n+    $subject  = $wppmfunction->replace_macro(stripslashes($val['subject']), $project_id);\r\n+    $body  = $wppmfunction->replace_macro(stripslashes($val['body']),$project_id);\r\n+    $recipients = $val['recipients'];\r\n+    $email_addresses = array();\r\n+    if(!empty($recipients)){\r\n+      foreach ($recipients as $recipient) {\r\n+          if(is_numeric($recipient)){\r\n+            if($recipient == 1 && !empty($proj_users)) {\r\n+                foreach($proj_users as $user){\r\n+                  if(!empty($user)){\r\n+                    $user = absint($user);\r\n+                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                    $userdata = get_userdata($user);\r\n+                    if((!empty($project_user_data)) && $project_user_data->role_id == 1){\r\n+                      $email_addresses[] = $userdata->user_email;\r\n+                    }\r\n+                  }\r\n+                }\r\n+            }\r\n+            elseif($recipient == 2 && !empty($proj_users)){\r\n+                foreach($proj_users as $user){\r\n+                  if(!empty($user)){\r\n+                    $user = absint($user);\r\n+                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                    $userdata = get_userdata($user);\r\n+                    if((!empty($project_user_data)) && $project_user_data->role_id == 2){\r\n+                      $email_addresses[] = $userdata->user_email;\r\n+                    }\r\n+                  }\r\n+                }\r\n+            } \r\n+          } else {\r\n+            switch ($recipient) {\r\n+                case 'previously_assigned_user':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_previously_assigned_users($project_id));\r\n+                break;\r\n+                case 'project_creator':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\r\n+                break;\r\n+            }\r\n+          }\r\n+      }\r\n+    }   \r\n+    $email_addresses = array_unique($email_addresses);\r\n+    $email_addresses = array_diff($email_addresses,$ignore_emails);\r\n+    if(empty($wppm_default_email_notification_to_current_user)){\r\n+      $email_addresses = array_diff($email_addresses,array($current_user->user_email));\r\n+    }\r\n+    $email_addresses = apply_filters('wppm_en_project_assign_users_email_addresses',$email_addresses,$val,$project_id);\r\n+    $email_addresses = array_values($email_addresses);\r\n+    $to =  isset($email_addresses[0])? $email_addresses[0] : '';\r\n+    if($to){\r\n+      unset($email_addresses[0]);\r\n+    } else {\r\n+      continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\r\n+    }\r\n+    $bcc = implode(',',$email_addresses);\r\n+    $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\r\n+    $email_addresses = explode(',',$bcc);\r\n+    foreach ($email_addresses as $email_address) {\r\n+      $headers .= \"BCC: {$email_address}\\r\\n\";\r\n+    }\r\n+    $headers .= \"Content-Type: text\u002Fhtml; charset=UTF-8\\r\\n\";\r\n+    wp_mail($to, $subject, $body, $headers);\r\n+    do_action('wppm_after_project_change_users_mail',$project_id,$val);\r\n+  }\r\n+endforeach;\r\n+\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_task_users.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_task_users.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_task_users.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_task_users.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,106 +1,106 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $wppmfunction, $current_user,$wpdb;\n-$from_name     = get_option('wppm_en_from_name');\n-$from_email    = get_option('wppm_en_from_email');\n-$ignore_emails = get_option('wppm_en_ignore_emails');\n-$task_id = intval(sanitize_text_field($task_id));\n-$task_data = $wppmfunction->get_task($task_id);\n-$project_id = absint($task_data['project']);\n-$task_users = absint($task_data['users']);\n-$project_users = $wpdb->get_results($wpdb->prepare(\"SELECT user_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND role_id = 1\",$project_id));\n-$p_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$project_id));\n-$p_users_array = explode(',',$p_users );\n-$task_users = explode(',',$task_users);\n-$flag= false;\n-if ( !$from_name || !$from_email ) {\n-  return;\n-}\n-$wppm_email_notificatins = get_option('wppm_email_notification');\n-$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\n-foreach ($wppm_email_notificatins as $key=>$val) :\n-  if($val['type']=='change_task_assign_users'){\n-    $subject  = $wppmfunction->replace_task_macro(stripslashes($val['subject']), $task_id);\n-    $body  = $wppmfunction->replace_task_macro(stripslashes($val['body']),$task_id);\n-    $recipients = $val['recipients'];\n-    $email_addresses = array();\n-    if(!empty($recipients)){\n-      foreach ($recipients as $recipient) {\n-          if(is_numeric($recipient)){\n-            if($recipient == 1 && !empty($project_users)){\n-              foreach($project_users as $proj_user){\n-                $proj_user = (array) $proj_user;\n-                if(in_array($proj_user['user_id'],$p_users_array)){\n-                  $proj_userdata = get_userdata($proj_user['user_id']);\n-                  $email_addresses[] = $proj_userdata->user_email;\n-                }\n-              }\n-            }\n-            \n-            if($recipient == 1 && isset($task_users)) {\n-                foreach($task_users as $user){\n-                  if(!empty($user)){\n-                    $user= absint($user);\n-                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                    $userdata = get_userdata($user);\n-                    if((!empty($project_user_data)) && $project_user_data->role_id == 1){\n-                      $email_addresses[] = $userdata->user_email;\n-                    }\n-                  }\n-                }\n-            }\n-            elseif($recipient == 2 && isset($task_users)){\n-                foreach($task_users as $user){\n-                  if(!empty($user)){\n-                    $user= absint($user);\n-                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                    $userdata = get_userdata($user);\n-                    if((!empty($project_user_data)) && $project_user_data->role_id == 2){\n-                      $email_addresses[] = $userdata->user_email;\n-                    }\n-                  }\n-                }      \n-            }\n-          } else {\n-            switch ($recipient) {\n-                case 'previously_assigned_user':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_previously_assigned_task_users($task_id));\n-                break;\n-                case 'project_creator':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\n-                break;\n-                case 'task_creator':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_task_creator_email($task_id));\n-                break;\n-            }\n-          }\n-      }\n-    }   \n-    $email_addresses = array_unique($email_addresses);\n-    $email_addresses = array_diff($email_addresses,$ignore_emails);\n-    if(empty($wppm_default_email_notification_to_current_user)){\n-      $email_addresses = array_diff($email_addresses,array($current_user->user_email));\n-    }\n-    $email_addresses = apply_filters('wppm_en_project_assign_users_email_addresses',$email_addresses,$val,$task_id);\n-    $email_addresses = array_values($email_addresses);\n-    $to =  isset($email_addresses[0])? $email_addresses[0] : '';\n-    if($to){\n-      unset($email_addresses[0]);\n-    } else {\n-      continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\n-    }\n-    $bcc = implode(',',$email_addresses);\n-    $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\n-    $email_addresses = explode(',',$bcc);\n-    foreach ($email_addresses as $email_address) {\n-      $headers .= \"BCC: {$email_address}\\r\\n\";\n-    }\n-    $headers .= \"Content-Type: text\u002Fhtml; charset=utf-8\\r\\n\";\n-    wp_mail($to, $subject, $body, $headers);\n-    do_action('wppm_after_task_change_users_mail',$task_id,$val);\n-  }\n-endforeach;\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $wppmfunction, $current_user,$wpdb;\r\n+$from_name     = get_option('wppm_en_from_name');\r\n+$from_email    = get_option('wppm_en_from_email');\r\n+$ignore_emails = get_option('wppm_en_ignore_emails');\r\n+$task_id = intval(sanitize_text_field($task_id));\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$project_id = absint($task_data['project']);\r\n+$task_users = absint($task_data['users']);\r\n+$project_users = $wpdb->get_results($wpdb->prepare(\"SELECT user_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND role_id = 1\",$project_id));\r\n+$p_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$project_id));\r\n+$p_users_array = explode(',',$p_users );\r\n+$task_users = explode(',',$task_users);\r\n+$flag= false;\r\n+if ( !$from_name || !$from_email ) {\r\n+  return;\r\n+}\r\n+$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\r\n+foreach ($wppm_email_notificatins as $key=>$val) :\r\n+  if($val['type']=='change_task_assign_users'){\r\n+    $subject  = $wppmfunction->replace_task_macro(stripslashes($val['subject']), $task_id);\r\n+    $body  = $wppmfunction->replace_task_macro(stripslashes($val['body']),$task_id);\r\n+    $recipients = $val['recipients'];\r\n+    $email_addresses = array();\r\n+    if(!empty($recipients)){\r\n+      foreach ($recipients as $recipient) {\r\n+          if(is_numeric($recipient)){\r\n+            if($recipient == 1 && !empty($project_users)){\r\n+              foreach($project_users as $proj_user){\r\n+                $proj_user = (array) $proj_user;\r\n+                if(in_array($proj_user['user_id'],$p_users_array)){\r\n+                  $proj_userdata = get_userdata($proj_user['user_id']);\r\n+                  $email_addresses[] = $proj_userdata->user_email;\r\n+                }\r\n+              }\r\n+            }\r\n+            \r\n+            if($recipient == 1 && isset($task_users)) {\r\n+                foreach($task_users as $user){\r\n+                  if(!empty($user)){\r\n+                    $user= absint($user);\r\n+                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                    $userdata = get_userdata($user);\r\n+                    if((!empty($project_user_data)) && $project_user_data->role_id == 1){\r\n+                      $email_addresses[] = $userdata->user_email;\r\n+                    }\r\n+                  }\r\n+                }\r\n+            }\r\n+            elseif($recipient == 2 && isset($task_users)){\r\n+                foreach($task_users as $user){\r\n+                  if(!empty($user)){\r\n+                    $user= absint($user);\r\n+                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                    $userdata = get_userdata($user);\r\n+                    if((!empty($project_user_data)) && $project_user_data->role_id == 2){\r\n+                      $email_addresses[] = $userdata->user_email;\r\n+                    }\r\n+                  }\r\n+                }      \r\n+            }\r\n+          } else {\r\n+            switch ($recipient) {\r\n+                case 'previously_assigned_user':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_previously_assigned_task_users($task_id));\r\n+                break;\r\n+                case 'project_creator':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\r\n+                break;\r\n+                case 'task_creator':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_task_creator_email($task_id));\r\n+                break;\r\n+            }\r\n+          }\r\n+      }\r\n+    }   \r\n+    $email_addresses = array_unique($email_addresses);\r\n+    $email_addresses = array_diff($email_addresses,$ignore_emails);\r\n+    if(empty($wppm_default_email_notification_to_current_user)){\r\n+      $email_addresses = array_diff($email_addresses,array($current_user->user_email));\r\n+    }\r\n+    $email_addresses = apply_filters('wppm_en_project_assign_users_email_addresses',$email_addresses,$val,$task_id);\r\n+    $email_addresses = array_values($email_addresses);\r\n+    $to =  isset($email_addresses[0])? $email_addresses[0] : '';\r\n+    if($to){\r\n+      unset($email_addresses[0]);\r\n+    } else {\r\n+      continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\r\n+    }\r\n+    $bcc = implode(',',$email_addresses);\r\n+    $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\r\n+    $email_addresses = explode(',',$bcc);\r\n+    foreach ($email_addresses as $email_address) {\r\n+      $headers .= \"BCC: {$email_address}\\r\\n\";\r\n+    }\r\n+    $headers .= \"Content-Type: text\u002Fhtml; charset=utf-8\\r\\n\";\r\n+    wp_mail($to, $subject, $body, $headers);\r\n+    do_action('wppm_after_task_change_users_mail',$task_id,$val);\r\n+  }\r\n+endforeach;\r\n+\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_submit_proj_comment.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_submit_proj_comment.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_submit_proj_comment.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_submit_proj_comment.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,88 +1,88 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $wppmfunction, $current_user,$wpdb;\n-$from_name     = get_option('wppm_en_from_name');\n-$from_email    = get_option('wppm_en_from_email');\n-$ignore_emails = get_option('wppm_en_ignore_emails');\n-$proj_id = (absint(sanitize_text_field($proj_id)));\n-$proj_data = $wppmfunction->get_project($proj_id);\n-$proj_users = $proj_data['users'];\n-$proj_users = explode(',',$proj_users);\n-$flag= false;\n-if ( !$from_name || !$from_email ) {\n-  return;\n-}\n-$wppm_email_notificatins = get_option('wppm_email_notification');\n-$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\n-foreach ($wppm_email_notificatins as $key=>$val) :\n-  if($val['type']=='new_proj_discussion'){\n-    $subject  = $wppmfunction->replace_macro(stripslashes($val['subject']), $proj_id);\n-    $body  = $wppmfunction->replace_macro(stripslashes($val['body']),$proj_id);\n-    $recipients = $val['recipients'];\n-    $email_addresses = array();\n-    if(!empty($recipients)){\n-      foreach ($recipients as $recipient) {\n-          if(is_numeric($recipient)){\n-            if($recipient == 1 && !empty($proj_users)) {\n-                foreach($proj_users as $user){\n-                  if(!empty($user)){\n-                    $user = absint($user);\n-                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$proj_id,$user));\n-                    $userdata = get_userdata($user);\n-                    if((!empty($project_user_data)) && $project_user_data->role_id == 1){\n-                      $email_addresses[] = $userdata->user_email;\n-                    }\n-                  }\n-                }\n-            }\n-            elseif($recipient == 2 && !empty($proj_users)){\n-                foreach($proj_users as $user){\n-                  if(!empty($user)){\n-                    $user = absint($user);\n-                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$proj_id,$user));\n-                    $userdata = get_userdata($user);\n-                    if((!empty($project_user_data)) && $project_user_data->role_id == 2){\n-                      $email_addresses[] = $userdata->user_email;\n-                    }\n-                  }\n-                } \n-            }\n-          } else {\n-            switch ($recipient) {\n-                case 'previously_assigned_user':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_previously_assigned_users($proj_id));\n-                break;\n-                case 'project_creator':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($proj_id));\n-                break;\n-            }\n-          }\n-      }\n-    }   \n-    $email_addresses = array_unique($email_addresses);\n-    $email_addresses = array_diff($email_addresses,$ignore_emails);\n-    if(empty($wppm_default_email_notification_to_current_user)){\n-      $email_addresses = array_diff($email_addresses,array($current_user->user_email));\n-    }\n-    $email_addresses = apply_filters('wppm_en_proj_assign_users_email_addresses',$email_addresses,$val,$proj_id);\n-    $email_addresses = array_values($email_addresses);\n-    $to =  isset($email_addresses[0])? $email_addresses[0] : '';\n-    if($to){\n-      unset($email_addresses[0]);\n-    } else {\n-      continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\n-    }\n-    $bcc = implode(',',$email_addresses);\n-    $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\n-    $email_addresses = explode(',',$bcc);\n-    foreach ($email_addresses as $email_address) {\n-      $headers .= \"BCC: {$email_address}\\r\\n\";\n-    }\n-    $headers .= \"Content-Type: text\u002Fhtml; charset=UTF-8 \\r\\n\";\n-    wp_mail($to, $subject, $body, $headers);\n-    do_action('wppm_after_submit_proj_comment_mail',$proj_id,$val);\n-  }\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $wppmfunction, $current_user,$wpdb;\r\n+$from_name     = get_option('wppm_en_from_name');\r\n+$from_email    = get_option('wppm_en_from_email');\r\n+$ignore_emails = get_option('wppm_en_ignore_emails');\r\n+$proj_id = (absint(sanitize_text_field($proj_id)));\r\n+$proj_data = $wppmfunction->get_project($proj_id);\r\n+$proj_users = $proj_data['users'];\r\n+$proj_users = explode(',',$proj_users);\r\n+$flag= false;\r\n+if ( !$from_name || !$from_email ) {\r\n+  return;\r\n+}\r\n+$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\r\n+foreach ($wppm_email_notificatins as $key=>$val) :\r\n+  if($val['type']=='new_proj_discussion'){\r\n+    $subject  = $wppmfunction->replace_macro(stripslashes($val['subject']), $proj_id);\r\n+    $body  = $wppmfunction->replace_macro(stripslashes($val['body']),$proj_id);\r\n+    $recipients = $val['recipients'];\r\n+    $email_addresses = array();\r\n+    if(!empty($recipients)){\r\n+      foreach ($recipients as $recipient) {\r\n+          if(is_numeric($recipient)){\r\n+            if($recipient == 1 && !empty($proj_users)) {\r\n+                foreach($proj_users as $user){\r\n+                  if(!empty($user)){\r\n+                    $user = absint($user);\r\n+                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$proj_id,$user));\r\n+                    $userdata = get_userdata($user);\r\n+                    if((!empty($project_user_data)) && $project_user_data->role_id == 1){\r\n+                      $email_addresses[] = $userdata->user_email;\r\n+                    }\r\n+                  }\r\n+                }\r\n+            }\r\n+            elseif($recipient == 2 && !empty($proj_users)){\r\n+                foreach($proj_users as $user){\r\n+                  if(!empty($user)){\r\n+                    $user = absint($user);\r\n+                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$proj_id,$user));\r\n+                    $userdata = get_userdata($user);\r\n+                    if((!empty($project_user_data)) && $project_user_data->role_id == 2){\r\n+                      $email_addresses[] = $userdata->user_email;\r\n+                    }\r\n+                  }\r\n+                } \r\n+            }\r\n+          } else {\r\n+            switch ($recipient) {\r\n+                case 'previously_assigned_user':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_previously_assigned_users($proj_id));\r\n+                break;\r\n+                case 'project_creator':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($proj_id));\r\n+                break;\r\n+            }\r\n+          }\r\n+      }\r\n+    }   \r\n+    $email_addresses = array_unique($email_addresses);\r\n+    $email_addresses = array_diff($email_addresses,$ignore_emails);\r\n+    if(empty($wppm_default_email_notification_to_current_user)){\r\n+      $email_addresses = array_diff($email_addresses,array($current_user->user_email));\r\n+    }\r\n+    $email_addresses = apply_filters('wppm_en_proj_assign_users_email_addresses',$email_addresses,$val,$proj_id);\r\n+    $email_addresses = array_values($email_addresses);\r\n+    $to =  isset($email_addresses[0])? $email_addresses[0] : '';\r\n+    if($to){\r\n+      unset($email_addresses[0]);\r\n+    } else {\r\n+      continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\r\n+    }\r\n+    $bcc = implode(',',$email_addresses);\r\n+    $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\r\n+    $email_addresses = explode(',',$bcc);\r\n+    foreach ($email_addresses as $email_address) {\r\n+      $headers .= \"BCC: {$email_address}\\r\\n\";\r\n+    }\r\n+    $headers .= \"Content-Type: text\u002Fhtml; charset=UTF-8 \\r\\n\";\r\n+    wp_mail($to, $subject, $body, $headers);\r\n+    do_action('wppm_after_submit_proj_comment_mail',$proj_id,$val);\r\n+  }\r\n endforeach;\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_submit_task_comment.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_submit_task_comment.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_submit_task_comment.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_submit_task_comment.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,108 +1,108 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $wppmfunction, $current_user,$wpdb;\n-$from_name     = get_option('wppm_en_from_name');\n-$from_email    = get_option('wppm_en_from_email');\n-$ignore_emails = get_option('wppm_en_ignore_emails');\n-$task_id = absint(sanitize_text_field($task_id));\n-$task_data = $wppmfunction->get_task($task_id);\n-$project_id = absint($task_data['project']);\n-$project_users = $wpdb->get_results($wpdb->prepare(\"SELECT user_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND role_id = 1\",$project_id));\n-$p_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$project_id));\n-if(!empty($p_users)) {\n-  $p_users_array = explode(',',$p_users);\n-} else {\n-  $p_users_array = array();\n-}\n-$task_users = $task_data['users'];\n-$task_users = explode(',',$task_users);\n-$flag= false;\n-if ( !$from_name || !$from_email ) {\n-  return;\n-}\n-$wppm_email_notificatins = get_option('wppm_email_notification');\n-$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\n-foreach ($wppm_email_notificatins as $key=>$val) :\n-  if($val['type']=='new_discussion'){\n-    $subject  = $wppmfunction->replace_task_macro(stripslashes($val['subject']), $task_id);\n-    $body  = $wppmfunction->replace_task_macro(stripslashes($val['body']),$task_id);\n-    $recipients = $val['recipients'];\n-    $email_addresses = array();\n-    if(!empty($recipients)){\n-      foreach ($recipients as $recipient) {\n-          if(is_numeric($recipient)){\n-            if($recipient == 1 && !empty($project_users)){\n-              foreach($project_users as $proj_user){\n-                $proj_user = (array) $proj_user;\n-                if(in_array($proj_user['user_id'],$p_users_array)){\n-                  $proj_userdata = get_userdata($proj_user['user_id']);\n-                  $email_addresses[] = $proj_userdata->user_email;\n-                }\n-              }\n-            }\n-            if($recipient == 1 && !empty($task_users)) {\n-                foreach($task_users as $user){\n-                  if(!empty($user)){\n-                    $user = absint($user);\n-                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                    $userdata = get_userdata($user);\n-                    if((!empty($project_user_data)) && $project_user_data->role_id == 1){\n-                      $email_addresses[] = $userdata->user_email;\n-                    }\n-                  }\n-                }\n-            }\n-            elseif($recipient == 2 && !empty($task_users)){\n-                foreach($task_users as $user){\n-                  if(!empty($user)){\n-                    $user = absint($user);\n-                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                    $userdata = get_userdata($user);\n-                    if((!empty($project_user_data)) && $project_user_data->role_id == 2){\n-                      $email_addresses[] = $userdata->user_email;\n-                    }\n-                  }\n-                } \n-            }\n-          } else {\n-            switch ($recipient) {\n-                case 'previously_assigned_user':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_previously_assigned_task_users($task_id));\n-                break;\n-                case 'project_creator':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\n-                break;\n-                case 'task_creator':\n-                $email_addresses = array_merge($email_addresses,$wppmfunction->get_task_creator_email($task_id));\n-                break;\n-            }\n-          }\n-      }\n-    }   \n-    $email_addresses = array_unique($email_addresses);\n-    $email_addresses = array_diff($email_addresses,$ignore_emails);\n-    if(empty($wppm_default_email_notification_to_current_user)){\n-      $email_addresses = array_diff($email_addresses,array($current_user->user_email));\n-    }\n-    $email_addresses = apply_filters('wppm_en_task_assign_users_email_addresses',$email_addresses,$val,$task_id);\n-    $email_addresses = array_values($email_addresses);\n-    $to =  isset($email_addresses[0])? $email_addresses[0] : '';\n-    if($to){\n-      unset($email_addresses[0]);\n-    } else {\n-      continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\n-    }\n-    $bcc = implode(',',$email_addresses);\n-    $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\n-    $email_addresses = explode(',',$bcc);\n-    foreach ($email_addresses as $email_address) {\n-      $headers .= \"BCC: {$email_address}\\r\\n\";\n-    }\n-    $headers .= \"Content-Type: text\u002Fhtml; charset=UTF-8 \\r\\n\";\n-    wp_mail($to, $subject, $body, $headers);\n-    do_action('wppm_after_submit_task_comment_mail',$task_id,$val);\n-  }\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $wppmfunction, $current_user,$wpdb;\r\n+$from_name     = get_option('wppm_en_from_name');\r\n+$from_email    = get_option('wppm_en_from_email');\r\n+$ignore_emails = get_option('wppm_en_ignore_emails');\r\n+$task_id = absint(sanitize_text_field($task_id));\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$project_id = absint($task_data['project']);\r\n+$project_users = $wpdb->get_results($wpdb->prepare(\"SELECT user_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND role_id = 1\",$project_id));\r\n+$p_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$project_id));\r\n+if(!empty($p_users)) {\r\n+  $p_users_array = explode(',',$p_users);\r\n+} else {\r\n+  $p_users_array = array();\r\n+}\r\n+$task_users = $task_data['users'];\r\n+$task_users = explode(',',$task_users);\r\n+$flag= false;\r\n+if ( !$from_name || !$from_email ) {\r\n+  return;\r\n+}\r\n+$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\r\n+foreach ($wppm_email_notificatins as $key=>$val) :\r\n+  if($val['type']=='new_discussion'){\r\n+    $subject  = $wppmfunction->replace_task_macro(stripslashes($val['subject']), $task_id);\r\n+    $body  = $wppmfunction->replace_task_macro(stripslashes($val['body']),$task_id);\r\n+    $recipients = $val['recipients'];\r\n+    $email_addresses = array();\r\n+    if(!empty($recipients)){\r\n+      foreach ($recipients as $recipient) {\r\n+          if(is_numeric($recipient)){\r\n+            if($recipient == 1 && !empty($project_users)){\r\n+              foreach($project_users as $proj_user){\r\n+                $proj_user = (array) $proj_user;\r\n+                if(in_array($proj_user['user_id'],$p_users_array)){\r\n+                  $proj_userdata = get_userdata($proj_user['user_id']);\r\n+                  $email_addresses[] = $proj_userdata->user_email;\r\n+                }\r\n+              }\r\n+            }\r\n+            if($recipient == 1 && !empty($task_users)) {\r\n+                foreach($task_users as $user){\r\n+                  if(!empty($user)){\r\n+                    $user = absint($user);\r\n+                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                    $userdata = get_userdata($user);\r\n+                    if((!empty($project_user_data)) && $project_user_data->role_id == 1){\r\n+                      $email_addresses[] = $userdata->user_email;\r\n+                    }\r\n+                  }\r\n+                }\r\n+            }\r\n+            elseif($recipient == 2 && !empty($task_users)){\r\n+                foreach($task_users as $user){\r\n+                  if(!empty($user)){\r\n+                    $user = absint($user);\r\n+                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                    $userdata = get_userdata($user);\r\n+                    if((!empty($project_user_data)) && $project_user_data->role_id == 2){\r\n+                      $email_addresses[] = $userdata->user_email;\r\n+                    }\r\n+                  }\r\n+                } \r\n+            }\r\n+          } else {\r\n+            switch ($recipient) {\r\n+                case 'previously_assigned_user':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_previously_assigned_task_users($task_id));\r\n+                break;\r\n+                case 'project_creator':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\r\n+                break;\r\n+                case 'task_creator':\r\n+                $email_addresses = array_merge($email_addresses,$wppmfunction->get_task_creator_email($task_id));\r\n+                break;\r\n+            }\r\n+          }\r\n+      }\r\n+    }   \r\n+    $email_addresses = array_unique($email_addresses);\r\n+    $email_addresses = array_diff($email_addresses,$ignore_emails);\r\n+    if(empty($wppm_default_email_notification_to_current_user)){\r\n+      $email_addresses = array_diff($email_addresses,array($current_user->user_email));\r\n+    }\r\n+    $email_addresses = apply_filters('wppm_en_task_assign_users_email_addresses',$email_addresses,$val,$task_id);\r\n+    $email_addresses = array_values($email_addresses);\r\n+    $to =  isset($email_addresses[0])? $email_addresses[0] : '';\r\n+    if($to){\r\n+      unset($email_addresses[0]);\r\n+    } else {\r\n+      continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\r\n+    }\r\n+    $bcc = implode(',',$email_addresses);\r\n+    $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\r\n+    $email_addresses = explode(',',$bcc);\r\n+    foreach ($email_addresses as $email_address) {\r\n+      $headers .= \"BCC: {$email_address}\\r\\n\";\r\n+    }\r\n+    $headers .= \"Content-Type: text\u002Fhtml; charset=UTF-8 \\r\\n\";\r\n+    wp_mail($to, $subject, $body, $headers);\r\n+    do_action('wppm_after_submit_task_comment_mail',$task_id,$val);\r\n+  }\r\n endforeach;\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_task_created.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_task_created.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_task_created.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_task_created.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,116 +1,116 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $wppmfunction, $current_user,$wpdb;\n-$from_name     = get_option('wppm_en_from_name');\n-$from_email    = get_option('wppm_en_from_email');\n-$ignore_emails = get_option('wppm_en_ignore_emails');\n-$task_id = absint(sanitize_text_field($task_id));\n-$task_data = $wppmfunction->get_task($task_id);\n-$project_id = absint($task_data['project']);\n-$project_users = $wpdb->get_results($wpdb->prepare(\"SELECT user_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND role_id = 1\",$project_id));\n-$p_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$project_id));\n-$p_users_array = array();\n-if(isset($p_users)){\n-  $p_users_array = explode(',',$p_users);\n-}\n-$task_users = $task_data['users'];\n-$task_users = explode(',',$task_users);\n-$flag= false;\n-if ( !$from_name || !$from_email ) {\n-  return;\n-}\n-$wppm_email_notificatins = get_option('wppm_email_notification');\n-$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\n-foreach ($wppm_email_notificatins as $key=>$val) :\n-  if($val['type']=='new_task'){\n-    $subject  = $wppmfunction->replace_task_macro(stripslashes($val['subject']), $task_id);\n-    $body  = $wppmfunction->replace_task_macro(stripslashes($val['body']),$task_id);\n-    $recipients = $val['recipients'];\n-    $email_addresses = array();\n-    if(!empty($recipients)){\n-      foreach ($recipients as $recipient) {\n-          if(is_numeric($recipient)){\n-            if($recipient == 1 && !empty($project_users)){\n-              foreach($project_users as $proj_user){\n-                $proj_user = (array) $proj_user;\n-                if(in_array($proj_user['user_id'],$p_users_array)){\n-                  $proj_userdata = get_userdata($proj_user['user_id']);\n-                  $email_addresses[] = $proj_userdata->user_email;\n-                }\n-              }\n-            }\n-            if($recipient == 1 && !empty($task_users)) {\n-                foreach($task_users as $user){\n-                  if(!empty($user)){\n-                    $user = absint($user);\n-                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                    $userdata = get_userdata($user);\n-                    if((!empty($project_user_data)) && $project_user_data->role_id == 1){\n-                      $email_addresses[] = $userdata->user_email;\n-                    }\n-                  }\n-                }\n-            }\n-            elseif($recipient == 2 && !empty($task_users)){\n-                foreach($task_users as $user){\n-                  if(!empty($user)){\n-                    $user = absint($user);\n-                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\n-                    $userdata = get_userdata($user);\n-                    if((!empty($project_user_data)) && $project_user_data->role_id == 2){\n-                      $email_addresses[] = $userdata->user_email;\n-                    }\n-                  }\n-                } \n-            }\n-          }else{\n-            switch ($recipient) {\n-              case 'project_creator':\n-              \u002F\u002F$email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\n-              if ( ! empty($wppmfunction->get_project_creator_email($project_id)) ) {\n-                  $email_addresses = array_merge(\n-                      (array) $email_addresses,\n-                      (array) $wppmfunction->get_project_creator_email($project_id)\n-                  );\n-              }\n-              break;\n-              case 'task_creator':\n-              \u002F\u002F$email_addresses = array_merge($email_addresses,$wppmfunction->get_task_creator_email($task_id));\n-              if ( ! empty($wppmfunction->get_task_creator_email($task_id)) ) {\n-                  $email_addresses = array_merge(\n-                      (array) $email_addresses,\n-                      (array) $wppmfunction->get_task_creator_email($task_id)\n-                  );\n-              }\n-              break;\n-            }\n-          }\n-      }\n-    }   \n-    $email_addresses = array_unique($email_addresses);\n-    $email_addresses = array_diff($email_addresses,$ignore_emails);\n-    if(empty($wppm_default_email_notification_to_current_user)){\n-      $email_addresses = array_diff($email_addresses,array($current_user->user_email));\n-    }\n-    $email_addresses = apply_filters('wppm_en_task_users_email_addresses',$email_addresses,$val,$task_id);\n-    $email_addresses = array_values($email_addresses);\n-    $to =  isset($email_addresses[0])? $email_addresses[0] : '';\n-    if($to){\n-      unset($email_addresses[0]);\n-    } else {\n-      continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\n-    }\n-    $bcc = implode(',',$email_addresses);\n-    $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\n-    $email_addresses = explode(',',$bcc);\n-    foreach ($email_addresses as $email_address) {\n-      $headers .= \"BCC: {$email_address}\\r\\n\";\n-    }\n-    $headers .= \"Content-Type: text\u002Fhtml; charset=UTF-8 \\r\\n\";\n-    wp_mail($to, $subject, $body, $headers);\n-    do_action('wppm_after_submit_task_created_mail',$task_id,$val);\n-  }\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $wppmfunction, $current_user,$wpdb;\r\n+$from_name     = get_option('wppm_en_from_name');\r\n+$from_email    = get_option('wppm_en_from_email');\r\n+$ignore_emails = get_option('wppm_en_ignore_emails');\r\n+$task_id = absint(sanitize_text_field($task_id));\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$project_id = absint($task_data['project']);\r\n+$project_users = $wpdb->get_results($wpdb->prepare(\"SELECT user_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND role_id = 1\",$project_id));\r\n+$p_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$project_id));\r\n+$p_users_array = array();\r\n+if(isset($p_users)){\r\n+  $p_users_array = explode(',',$p_users);\r\n+}\r\n+$task_users = $task_data['users'];\r\n+$task_users = explode(',',$task_users);\r\n+$flag= false;\r\n+if ( !$from_name || !$from_email ) {\r\n+  return;\r\n+}\r\n+$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\r\n+foreach ($wppm_email_notificatins as $key=>$val) :\r\n+  if($val['type']=='new_task'){\r\n+    $subject  = $wppmfunction->replace_task_macro(stripslashes($val['subject']), $task_id);\r\n+    $body  = $wppmfunction->replace_task_macro(stripslashes($val['body']),$task_id);\r\n+    $recipients = $val['recipients'];\r\n+    $email_addresses = array();\r\n+    if(!empty($recipients)){\r\n+      foreach ($recipients as $recipient) {\r\n+          if(is_numeric($recipient)){\r\n+            if($recipient == 1 && !empty($project_users)){\r\n+              foreach($project_users as $proj_user){\r\n+                $proj_user = (array) $proj_user;\r\n+                if(in_array($proj_user['user_id'],$p_users_array)){\r\n+                  $proj_userdata = get_userdata($proj_user['user_id']);\r\n+                  $email_addresses[] = $proj_userdata->user_email;\r\n+                }\r\n+              }\r\n+            }\r\n+            if($recipient == 1 && !empty($task_users)) {\r\n+                foreach($task_users as $user){\r\n+                  if(!empty($user)){\r\n+                    $user = absint($user);\r\n+                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                    $userdata = get_userdata($user);\r\n+                    if((!empty($project_user_data)) && $project_user_data->role_id == 1){\r\n+                      $email_addresses[] = $userdata->user_email;\r\n+                    }\r\n+                  }\r\n+                }\r\n+            }\r\n+            elseif($recipient == 2 && !empty($task_users)){\r\n+                foreach($task_users as $user){\r\n+                  if(!empty($user)){\r\n+                    $user = absint($user);\r\n+                    $project_user_data = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$user));\r\n+                    $userdata = get_userdata($user);\r\n+                    if((!empty($project_user_data)) && $project_user_data->role_id == 2){\r\n+                      $email_addresses[] = $userdata->user_email;\r\n+                    }\r\n+                  }\r\n+                } \r\n+            }\r\n+          }else{\r\n+            switch ($recipient) {\r\n+              case 'project_creator':\r\n+              \u002F\u002F$email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));\r\n+              if ( ! empty($wppmfunction->get_project_creator_email($project_id)) ) {\r\n+                  $email_addresses = array_merge(\r\n+                      (array) $email_addresses,\r\n+                      (array) $wppmfunction->get_project_creator_email($project_id)\r\n+                  );\r\n+              }\r\n+              break;\r\n+              case 'task_creator':\r\n+              \u002F\u002F$email_addresses = array_merge($email_addresses,$wppmfunction->get_task_creator_email($task_id));\r\n+              if ( ! empty($wppmfunction->get_task_creator_email($task_id)) ) {\r\n+                  $email_addresses = array_merge(\r\n+                      (array) $email_addresses,\r\n+                      (array) $wppmfunction->get_task_creator_email($task_id)\r\n+                  );\r\n+              }\r\n+              break;\r\n+            }\r\n+          }\r\n+      }\r\n+    }   \r\n+    $email_addresses = array_unique($email_addresses);\r\n+    $email_addresses = array_diff($email_addresses,$ignore_emails);\r\n+    if(empty($wppm_default_email_notification_to_current_user)){\r\n+      $email_addresses = array_diff($email_addresses,array($current_user->user_email));\r\n+    }\r\n+    $email_addresses = apply_filters('wppm_en_task_users_email_addresses',$email_addresses,$val,$task_id);\r\n+    $email_addresses = array_values($email_addresses);\r\n+    $to =  isset($email_addresses[0])? $email_addresses[0] : '';\r\n+    if($to){\r\n+      unset($email_addresses[0]);\r\n+    } else {\r\n+      continue; \u002F\u002F no email address found to send. So go to next foreach iteration.\r\n+    }\r\n+    $bcc = implode(',',$email_addresses);\r\n+    $headers  = \"From: {$from_name} \u003C{$from_email}>\\r\\n\";\r\n+    $email_addresses = explode(',',$bcc);\r\n+    foreach ($email_addresses as $email_address) {\r\n+      $headers .= \"BCC: {$email_address}\\r\\n\";\r\n+    }\r\n+    $headers .= \"Content-Type: text\u002Fhtml; charset=UTF-8 \\r\\n\";\r\n+    wp_mail($to, $subject, $body, $headers);\r\n+    do_action('wppm_after_submit_task_created_mail',$task_id,$val);\r\n+  }\r\n endforeach;\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,133 +1,133 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$id = isset($_POST) && isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : 0;\n-if(!$id) die();\n-$user_role = get_option('wppm_user_role');\n-$wppm_email_notificatins = get_option('wppm_email_notification');\n-$notification_types = $wppmfunction->get_email_notification_types();\n-$directionality = $wppmfunction->check_rtl();\n-if(!empty($wppm_email_notificatins)){\n-  foreach($wppm_email_notificatins as $key=>$email){\n-    if($id==$key){\n-      $type = $email['type'];\n-      $subject = $email['subject'];\n-      $body = $email['body'];\n-      $recipients = $email['recipients'];\n-    }\n-  }\n-}\n-?>\n-\u003Ch4 style=\"margin-bottom:20px;\">\u003C?php echo esc_html_e('Edit email notification','taskbuilder');?>\u003C\u002Fh4>\n-\u003Cform id=\"wppm_edit_email_notification_settings\" method=\"post\" action=\"javascript:wppm_set_edit_email_notification();\">\n-  \u003Cdiv class=\"form-group\">\n-    \u003Clabel for=\"wppm_en_type\">\u003C?php echo esc_html_e('Type','taskbuilder');?>\u003C\u002Flabel>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Select event to send this email.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cselect class=\"form-control\" name=\"wppm_en_type\" id=\"wppm_en_type\">\n-      \u003C?php foreach ($notification_types as $key => $value) :?>\n-        \u003Coption \u003C?php echo esc_attr($key)==esc_attr($type) ?'selected=\"selected\"':''?> value=\"\u003C?php echo esc_attr($key)?>\">\u003C?php echo (esc_html($value))?>\u003C\u002Foption>\n-      \u003C?php endforeach;?>\n-    \u003C\u002Fselect>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv class=\"form-group\">\n-    \u003Clabel for=\"wppm_en_subject\">\u003C?php echo esc_html_e('Email Subject','taskbuilder');?>\u003C\u002Flabel>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Subject for email to send.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"text\" class=\"form-control\" name=\"wppm_en_subject\" id=\"wppm_en_subject\" value=\"\u003C?php echo esc_attr( wp_unslash( $subject ) ); ?>\" \u002F>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv class=\"form-group\">\n-    \u003Clabel for=\"wppm_en_body\">\u003C?php echo esc_html_e('Email Body','taskbuilder');?>\u003C\u002Flabel>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Body for email to send. Use macros for project and task specific details. Macros will get replaced by its value while sending an email.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cdiv class=\"text-right\">\n-      \u003Cbutton id=\"visual\" class=\"btn btn-primary btn-xs\" type=\"button\" onclick=\"wppm_get_tinymce('wppm_en_body','email_body');\">\u003C?php echo esc_html_e('Visual', 'taskbuilder');?>\u003C\u002Fbutton>\n-      \u003Cbutton id=\"text\" class=\"btn btn-default btn-xs\" type=\"button\" onclick=\"wppm_get_textarea()\">\u003C?php echo esc_html_e('Text', 'taskbuilder');?>\u003C\u002Fbutton>\n-    \u003C\u002Fdiv>\n-\t\t\u003Ctextarea type=\"text\" class=\"form-control\" name=\"wppm_en_body\" id=\"wppm_en_body\">\u003C?php echo (esc_textarea(wp_unslash($body)))?>\u003C\u002Ftextarea>\n-    \u003Cdiv class=\"row attachment_link\">\n-        \u003Cspan onclick=\"wppm_get_templates(); \">\u003C?php echo esc_html_e('Insert Macros','taskbuilder') ?>\u003C\u002Fspan>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv class=\"form-group\">\n-    \u003Clabel for=\"\">\u003C?php echo esc_html_e('Recipients','taskbuilder');?>\u003C\u002Flabel>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Select roles who will receive email notifications.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cdiv class=\"row\">\n-      \u003C?php foreach ($user_role as $key => $role ) : ?>\n-        \u003Cdiv class=\"col-sm-4\" style=\"margin-bottom:10px; display:flex;\">\n-          \u003Cdiv style=\"width:25px;\">\u003Cinput type=\"checkbox\" \u003C?php echo esc_attr(in_array($key,$recipients))?'checked=\"checked\"':''?> name=\"wppm_en_recipients[]\" value=\"\u003C?php echo esc_attr($key) ?>\" \u002F>\u003C\u002Fdiv>\n-          \u003Cdiv style=\"padding-top:3px;\">\u003C?php echo esc_html($role['label']) ?>\u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-      \u003C?php endforeach;?>\n-      \u003C?php if($type=='new_project' || $type=='new_task'){ \n-            $style='display:none';\n-        } else{\n-            $style='display:flex';\n-        }?>\n-      \u003Cdiv class=\"col-sm-4 prev_assigned\" style=\"margin-bottom:10px;\u003C?php echo esc_attr($style) ?>\">\n-\t\t\t\t\u003Cdiv style=\"width:25px;\">\u003Cinput type=\"checkbox\" \u003C?php echo esc_attr(in_array('previously_assigned_user',$recipients))?'checked=\"checked\"':''?> name=\"wppm_en_recipients[]\" value=\"previously_assigned_user\" \u002F>\u003C\u002Fdiv>\n-\t\t\t\t\u003Cdiv style=\"padding-top:3px;\">\u003C?php echo esc_html_e('Previously Assigned Users','taskbuilder')?>\u003C\u002Fdiv>\n-\t\t\t\u003C\u002Fdiv>\n-\t\t\u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\">\n-      \u003Cdiv class=\"col-sm-4 proj_creator\" style=\"margin-bottom:10px;display:flex;\">\n-      \u003Cdiv style=\"width:25px;\">\u003Cinput type=\"checkbox\" \u003C?php echo esc_attr(in_array('project_creator',$recipients))?'checked=\"checked\"':''?> name=\"wppm_en_recipients[]\" value=\"project_creator\" \u002F>\u003C\u002Fdiv>\n-      \u003Cdiv style=\"padding-top:3px;\">\u003C?php echo esc_html_e('Project Creator','taskbuilder')?>\u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003C?php \n-    if($type=='new_task' || $type=='change_task_status' || $type=='change_task_assign_users'|| $type=='new_discussion'){ \n-      $tc_style='margin-bottom:10px;display:flex';\n-    } else{\n-      $tc_style='display:none';\n-    }?>\n-      \u003Cdiv class=\"col-sm-4 task_creator\" style=\"\u003C?php echo esc_attr($tc_style)?>\">\n-        \u003Cdiv style=\"width:25px;\">\u003Cinput type=\"checkbox\" \u003C?php echo esc_attr(in_array('task_creator',$recipients))?'checked=\"checked\"':''?> name=\"wppm_en_recipients[]\" value=\"task_creator\" \u002F>\u003C\u002Fdiv>\n-        \u003Cdiv style=\"padding-top:3px;\">\u003C?php echo esc_html_e('Task Creator','taskbuilder')?>\u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003C?php do_action('wppm_en_after_edit_recipients',$recipients);?>\n-  \u003C\u002Fdiv>\n-  \u003C?php do_action('wppm_get_edit_email_notification',$id);?>\n-  \n-  \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-  \u003Cimg class=\"wppm_submit_wait\" style=\"display:none;\" src=\"\u003C?php echo esc_url((WPPM_PLUGIN_URL)).'asset\u002Fimages\u002Fajax-loader@2x.gif';?>\">\n-  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_edit_email_notification\" \u002F>\n-  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_email_notification' ) ); ?>\">\n-\t\u003Cinput type=\"hidden\" name=\"id\" value=\"\u003C?php echo (esc_attr($id)) ?>\" \u002F>\n-\u003C\u002Fform>\n-\n-\u003Cscript>\n-  tinymce.remove();\n-  tinymce.init({ \n-    selector:'#wppm_en_body',\n-    body_id: 'email_body',\n-    menubar: false,\n-    statusbar: false,\n-    height : '200',\n-    plugins: [\n-        'lists link image directionality'\n-    ],\n-    image_advtab: true,\n-    toolbar: 'bold italic underline blockquote | alignleft aligncenter alignright | bullist numlist | rtl | link image',\n-    branding: false,\n-    autoresize_bottom_margin: 20,\n-    browser_spellcheck : true,\n-    relative_urls : false,\n-    remove_script_host : false,\n-    convert_urls : true,\n-    setup: function (editor) {\n-    }\n-  });\n-\u003C\u002Fscript>\n-\u003Cscript>\n-  jQuery('#wppm_en_type').on('change', function(){  \n-    if(jQuery('#wppm_en_type').val() == 'new_ticket'){\n-      jQuery('.prev_assigned').css({\"display\" : \"none\"});\n-    } else{\n-      jQuery('.prev_assigned').css({\"display\" : \"flex\"});\n-    }\n-  });\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$id = isset($_POST) && isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : 0;\r\n+if(!$id) die();\r\n+$user_role = get_option('wppm_user_role');\r\n+$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+$notification_types = $wppmfunction->get_email_notification_types();\r\n+$directionality = $wppmfunction->check_rtl();\r\n+if(!empty($wppm_email_notificatins)){\r\n+  foreach($wppm_email_notificatins as $key=>$email){\r\n+    if($id==$key){\r\n+      $type = $email['type'];\r\n+      $subject = $email['subject'];\r\n+      $body = $email['body'];\r\n+      $recipients = $email['recipients'];\r\n+    }\r\n+  }\r\n+}\r\n+?>\r\n+\u003Ch4 style=\"margin-bottom:20px;\">\u003C?php echo esc_html_e('Edit email notification','taskbuilder');?>\u003C\u002Fh4>\r\n+\u003Cform id=\"wppm_edit_email_notification_settings\" method=\"post\" action=\"javascript:wppm_set_edit_email_notification();\">\r\n+  \u003Cdiv class=\"form-group\">\r\n+    \u003Clabel for=\"wppm_en_type\">\u003C?php echo esc_html_e('Type','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Select event to send this email.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_en_type\" id=\"wppm_en_type\">\r\n+      \u003C?php foreach ($notification_types as $key => $value) :?>\r\n+        \u003Coption \u003C?php echo esc_attr($key)==esc_attr($type) ?'selected=\"selected\"':''?> value=\"\u003C?php echo esc_attr($key)?>\">\u003C?php echo (esc_html($value))?>\u003C\u002Foption>\r\n+      \u003C?php endforeach;?>\r\n+    \u003C\u002Fselect>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"form-group\">\r\n+    \u003Clabel for=\"wppm_en_subject\">\u003C?php echo esc_html_e('Email Subject','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Subject for email to send.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"text\" class=\"form-control\" name=\"wppm_en_subject\" id=\"wppm_en_subject\" value=\"\u003C?php echo esc_attr( wp_unslash( $subject ) ); ?>\" \u002F>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"form-group\">\r\n+    \u003Clabel for=\"wppm_en_body\">\u003C?php echo esc_html_e('Email Body','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Body for email to send. Use macros for project and task specific details. Macros will get replaced by its value while sending an email.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cdiv class=\"text-right\">\r\n+      \u003Cbutton id=\"visual\" class=\"btn btn-primary btn-xs\" type=\"button\" onclick=\"wppm_get_tinymce('wppm_en_body','email_body');\">\u003C?php echo esc_html_e('Visual', 'taskbuilder');?>\u003C\u002Fbutton>\r\n+      \u003Cbutton id=\"text\" class=\"btn btn-default btn-xs\" type=\"button\" onclick=\"wppm_get_textarea()\">\u003C?php echo esc_html_e('Text', 'taskbuilder');?>\u003C\u002Fbutton>\r\n+    \u003C\u002Fdiv>\r\n+\t\t\u003Ctextarea type=\"text\" class=\"form-control\" name=\"wppm_en_body\" id=\"wppm_en_body\">\u003C?php echo (esc_textarea(wp_unslash($body)))?>\u003C\u002Ftextarea>\r\n+    \u003Cdiv class=\"row attachment_link\">\r\n+        \u003Cspan onclick=\"wppm_get_templates(); \">\u003C?php echo esc_html_e('Insert Macros','taskbuilder') ?>\u003C\u002Fspan>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"form-group\">\r\n+    \u003Clabel for=\"\">\u003C?php echo esc_html_e('Recipients','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Select roles who will receive email notifications.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cdiv class=\"row\">\r\n+      \u003C?php foreach ($user_role as $key => $role ) : ?>\r\n+        \u003Cdiv class=\"col-sm-4\" style=\"margin-bottom:10px; display:flex;\">\r\n+          \u003Cdiv style=\"width:25px;\">\u003Cinput type=\"checkbox\" \u003C?php echo esc_attr(in_array($key,$recipients))?'checked=\"checked\"':''?> name=\"wppm_en_recipients[]\" value=\"\u003C?php echo esc_attr($key) ?>\" \u002F>\u003C\u002Fdiv>\r\n+          \u003Cdiv style=\"padding-top:3px;\">\u003C?php echo esc_html($role['label']) ?>\u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C?php endforeach;?>\r\n+      \u003C?php if($type=='new_project' || $type=='new_task'){ \r\n+            $style='display:none';\r\n+        } else{\r\n+            $style='display:flex';\r\n+        }?>\r\n+      \u003Cdiv class=\"col-sm-4 prev_assigned\" style=\"margin-bottom:10px;\u003C?php echo esc_attr($style) ?>\">\r\n+\t\t\t\t\u003Cdiv style=\"width:25px;\">\u003Cinput type=\"checkbox\" \u003C?php echo esc_attr(in_array('previously_assigned_user',$recipients))?'checked=\"checked\"':''?> name=\"wppm_en_recipients[]\" value=\"previously_assigned_user\" \u002F>\u003C\u002Fdiv>\r\n+\t\t\t\t\u003Cdiv style=\"padding-top:3px;\">\u003C?php echo esc_html_e('Previously Assigned Users','taskbuilder')?>\u003C\u002Fdiv>\r\n+\t\t\t\u003C\u002Fdiv>\r\n+\t\t\u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\">\r\n+      \u003Cdiv class=\"col-sm-4 proj_creator\" style=\"margin-bottom:10px;display:flex;\">\r\n+      \u003Cdiv style=\"width:25px;\">\u003Cinput type=\"checkbox\" \u003C?php echo esc_attr(in_array('project_creator',$recipients))?'checked=\"checked\"':''?> name=\"wppm_en_recipients[]\" value=\"project_creator\" \u002F>\u003C\u002Fdiv>\r\n+      \u003Cdiv style=\"padding-top:3px;\">\u003C?php echo esc_html_e('Project Creator','taskbuilder')?>\u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003C?php \r\n+    if($type=='new_task' || $type=='change_task_status' || $type=='change_task_assign_users'|| $type=='new_discussion'){ \r\n+      $tc_style='margin-bottom:10px;display:flex';\r\n+    } else{\r\n+      $tc_style='display:none';\r\n+    }?>\r\n+      \u003Cdiv class=\"col-sm-4 task_creator\" style=\"\u003C?php echo esc_attr($tc_style)?>\">\r\n+        \u003Cdiv style=\"width:25px;\">\u003Cinput type=\"checkbox\" \u003C?php echo esc_attr(in_array('task_creator',$recipients))?'checked=\"checked\"':''?> name=\"wppm_en_recipients[]\" value=\"task_creator\" \u002F>\u003C\u002Fdiv>\r\n+        \u003Cdiv style=\"padding-top:3px;\">\u003C?php echo esc_html_e('Task Creator','taskbuilder')?>\u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003C?php do_action('wppm_en_after_edit_recipients',$recipients);?>\r\n+  \u003C\u002Fdiv>\r\n+  \u003C?php do_action('wppm_get_edit_email_notification',$id);?>\r\n+  \r\n+  \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+  \u003Cimg class=\"wppm_submit_wait\" style=\"display:none;\" src=\"\u003C?php echo esc_url((WPPM_PLUGIN_URL)).'asset\u002Fimages\u002Fajax-loader@2x.gif';?>\">\r\n+  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_edit_email_notification\" \u002F>\r\n+  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_email_notification' ) ); ?>\">\r\n+\t\u003Cinput type=\"hidden\" name=\"id\" value=\"\u003C?php echo (esc_attr($id)) ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\r\n+\u003Cscript>\r\n+  tinymce.remove();\r\n+  tinymce.init({ \r\n+    selector:'#wppm_en_body',\r\n+    body_id: 'email_body',\r\n+    menubar: false,\r\n+    statusbar: false,\r\n+    height : '200',\r\n+    plugins: [\r\n+        'lists link image directionality'\r\n+    ],\r\n+    image_advtab: true,\r\n+    toolbar: 'bold italic underline blockquote | alignleft aligncenter alignright | bullist numlist | rtl | link image',\r\n+    branding: false,\r\n+    autoresize_bottom_margin: 20,\r\n+    browser_spellcheck : true,\r\n+    relative_urls : false,\r\n+    remove_script_host : false,\r\n+    convert_urls : true,\r\n+    setup: function (editor) {\r\n+    }\r\n+  });\r\n+\u003C\u002Fscript>\r\n+\u003Cscript>\r\n+  jQuery('#wppm_en_type').on('change', function(){  \r\n+    if(jQuery('#wppm_en_type').val() == 'new_ticket'){\r\n+      jQuery('.prev_assigned').css({\"display\" : \"none\"});\r\n+    } else{\r\n+      jQuery('.prev_assigned').css({\"display\" : \"flex\"});\r\n+    }\r\n+  });\r\n \u003C\u002Fscript>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,51 +1,51 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-if (!(($current_user->ID && $current_user->has_cap('wppm_admin')) || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\n-?>\n-\u003Cform id=\"wppm_en_frm_general_settings\" method=\"post\" action=\"javascript:wppm_set_en_general_settings();\">\n-  \u003Cdiv class=\"form-group\">\n-    \u003Clabel for=\"wppm_en_from_name\">\u003C?php echo esc_html_e('From Name','taskbuilder');?>\u003C\u002Flabel>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Emails to send by this name.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"text\" class=\"form-control\" name=\"wppm_en_from_name\" id=\"wppm_en_from_name\" value=\"\u003C?php echo esc_attr(get_option('wppm_en_from_name',''));?>\" \u002F>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv class=\"form-group\">\n-    \u003Clabel for=\"wppm_en_from_email\">\u003C?php echo esc_html_e('From Email','taskbuilder');?>\u003C\u002Flabel>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Emails to send from this email.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"text\" class=\"form-control\" name=\"wppm_en_from_email\" id=\"wppm_en_from_email\" value=\"\u003C?php echo esc_attr(get_option('wppm_en_from_email',''));?>\" \u002F>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv class=\"form-group\">\n-    \u003Clabel for=\"wppm_en_ignore_emails\">\u003C?php echo esc_html_e('Block Emails','taskbuilder');?>\u003C\u002Flabel>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Emails will not be sent to these email addresses. New email should begin on new line.','taskbuilder');?>\u003C\u002Fp>\n-    \u003C?php\n-    $ignore_emails = get_option('wppm_en_ignore_emails',array());\n-    $ignore_emails = $wppmfunction->sanitize_array($ignore_emails);\n-    ?>\n-    \u003Ctextarea class=\"form-control\" style=\"height:100px !important;\" name=\"wppm_en_ignore_emails\" id=\"wppm_en_ignore_emails\">\u003C?php echo esc_textarea( implode( \"\\n\", $ignore_emails ) ); ?>\u003C\u002Ftextarea>\n-  \u003C\u002Fdiv>\n-  \u003Chr>\n-  \u003Cspan>\n-    \u003Clabel>\u003C?php echo esc_html_e('Enable current user email notifications','taskbuilder');?>\u003C\u002Flabel>\n-  \u003C\u002Fspan>\u003Cbr>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable setting to send email notifications to current user (who is making some action like create task, change status, change assign user, new comment.etc).','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cselect class=\"form-control\" name=\"wppm_default_email_notification_to_current_user\" id=\"wppm_default_email_notification_to_current_user\">\n-      \u003Coption value=\"1\" \u003C?php selected( $wppm_default_email_notification_to_current_user, '1' ); ?>>\n-        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-      \u003Coption value=\"0\" \u003C?php selected( $wppm_default_email_notification_to_current_user, '0' ); ?>>\n-        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-\u003C\u002Fselect>\n-  \u003Chr>\n-  \u003C?php do_action('wppm_get_en_gerneral_settings');?>\n-  \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-  \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"loading_icon\">\u003C\u002Fspan>  \n-  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_en_general_settings\" \u002F>\n-  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_en_general_settings' ) ); ?>\">\n-\u003C\u002Fform>\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if (!(($current_user->ID && $current_user->has_cap('wppm_admin')) || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');\r\n+?>\r\n+\u003Cform id=\"wppm_en_frm_general_settings\" method=\"post\" action=\"javascript:wppm_set_en_general_settings();\">\r\n+  \u003Cdiv class=\"form-group\">\r\n+    \u003Clabel for=\"wppm_en_from_name\">\u003C?php echo esc_html_e('From Name','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Emails to send by this name.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"text\" class=\"form-control\" name=\"wppm_en_from_name\" id=\"wppm_en_from_name\" value=\"\u003C?php echo esc_attr(get_option('wppm_en_from_name',''));?>\" \u002F>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"form-group\">\r\n+    \u003Clabel for=\"wppm_en_from_email\">\u003C?php echo esc_html_e('From Email','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Emails to send from this email.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"text\" class=\"form-control\" name=\"wppm_en_from_email\" id=\"wppm_en_from_email\" value=\"\u003C?php echo esc_attr(get_option('wppm_en_from_email',''));?>\" \u002F>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"form-group\">\r\n+    \u003Clabel for=\"wppm_en_ignore_emails\">\u003C?php echo esc_html_e('Block Emails','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Emails will not be sent to these email addresses. New email should begin on new line.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003C?php\r\n+    $ignore_emails = get_option('wppm_en_ignore_emails',array());\r\n+    $ignore_emails = $wppmfunction->sanitize_array($ignore_emails);\r\n+    ?>\r\n+    \u003Ctextarea class=\"form-control\" style=\"height:100px !important;\" name=\"wppm_en_ignore_emails\" id=\"wppm_en_ignore_emails\">\u003C?php echo esc_textarea( implode( \"\\n\", $ignore_emails ) ); ?>\u003C\u002Ftextarea>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Chr>\r\n+  \u003Cspan>\r\n+    \u003Clabel>\u003C?php echo esc_html_e('Enable current user email notifications','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003C\u002Fspan>\u003Cbr>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable setting to send email notifications to current user (who is making some action like create task, change status, change assign user, new comment.etc).','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cselect class=\"form-control\" name=\"wppm_default_email_notification_to_current_user\" id=\"wppm_default_email_notification_to_current_user\">\r\n+      \u003Coption value=\"1\" \u003C?php selected( $wppm_default_email_notification_to_current_user, '1' ); ?>>\r\n+        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+      \u003Coption value=\"0\" \u003C?php selected( $wppm_default_email_notification_to_current_user, '0' ); ?>>\r\n+        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+\u003C\u002Fselect>\r\n+  \u003Chr>\r\n+  \u003C?php do_action('wppm_get_en_gerneral_settings');?>\r\n+  \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+  \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"loading_icon\">\u003C\u002Fspan>  \r\n+  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_en_general_settings\" \u002F>\r\n+  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_en_general_settings' ) ); ?>\">\r\n+\u003C\u002Fform>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_task_notifications.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_task_notifications.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_task_notifications.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_task_notifications.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,35 +1,35 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wppmfunction, $wpdb;\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$wppm_email_notificatins = get_option('wppm_email_notification');\n-$notification_types = $wppmfunction->get_email_notification_types();\n-?>\n-\u003Cspan class=\"wppm-title\">\n-\t\u003C?php echo esc_html_e('Email Notifications','taskbuilder');?>\n-\u003C\u002Fspan>\n-\u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\n-\u003Ctable class=\"table table-striped table-hover wppm_email_notification_table\">\n-  \u003Ctr>\n-    \u003Cth>\u003C?php echo esc_html_e('Notification Type','taskbuilder')?>\u003C\u002Fth>\n-    \u003Cth>\u003C?php echo esc_html_e('Actions','taskbuilder')?>\u003C\u002Fth>\n-  \u003C\u002Ftr>\n-  \u003C?php foreach ( $wppm_email_notificatins as $key=>$email_template ) :\n-    $type  = $email_template['type'];\n-    $type  = isset($notification_types[$type]) ? $notification_types[$type] : '';\n-    ?>\n-    \u003Ctr>\n-      \u003Ctd>\u003C?php echo (esc_attr($type))?>\u003C\u002Ftd>\n-      \u003Ctd>\n-        \u003Cdiv class=\"wppm_flex\">\n-\t\t\t\t\t\u003Cdiv onclick=\"wppm_get_edit_email_notification(\u003C?php echo esc_js($key)?>);\" style=\"cursor:pointer;\">\u003Cspan>\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Ftd>\n-    \u003C\u002Ftr>\n-\t\u003C?php endforeach;?>\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wppmfunction, $wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+$notification_types = $wppmfunction->get_email_notification_types();\r\n+?>\r\n+\u003Cspan class=\"wppm-title\">\r\n+\t\u003C?php echo esc_html_e('Email Notifications','taskbuilder');?>\r\n+\u003C\u002Fspan>\r\n+\u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\r\n+\u003Ctable class=\"table table-striped table-hover wppm_email_notification_table\">\r\n+  \u003Ctr>\r\n+    \u003Cth>\u003C?php echo esc_html_e('Notification Type','taskbuilder')?>\u003C\u002Fth>\r\n+    \u003Cth>\u003C?php echo esc_html_e('Actions','taskbuilder')?>\u003C\u002Fth>\r\n+  \u003C\u002Ftr>\r\n+  \u003C?php foreach ( $wppm_email_notificatins as $key=>$email_template ) :\r\n+    $type  = $email_template['type'];\r\n+    $type  = isset($notification_types[$type]) ? $notification_types[$type] : '';\r\n+    ?>\r\n+    \u003Ctr>\r\n+      \u003Ctd>\u003C?php echo (esc_attr($type))?>\u003C\u002Ftd>\r\n+      \u003Ctd>\r\n+        \u003Cdiv class=\"wppm_flex\">\r\n+\t\t\t\t\t\u003Cdiv onclick=\"wppm_get_edit_email_notification(\u003C?php echo esc_js($key)?>);\" style=\"cursor:pointer;\">\u003Cspan>\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Ftd>\r\n+    \u003C\u002Ftr>\r\n+\t\u003C?php endforeach;?>\r\n \u003C\u002Ftable>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,122 +1,122 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user;\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-ob_start();\n-?>\n-\u003Cdiv class=\"table-responsive\">\n-\t\u003Ctable id=\"wppm_tbl_templates\"   class=\"table table-striped table-bordered\"  cellspacing=\"5\" cellpadding=\"5\">\n-        \u003Cthead>\n-            \u003Ctr>\n-                \u003Cth>\u003C?php echo esc_html_e('Tag','taskbuilder')?>\u003C\u002Fth>\n-                \u003Cth>\u003C?php echo esc_html_e('Field Name','taskbuilder')?>\u003C\u002Fth>\n-            \u003C\u002Ftr>\n-        \u003C\u002Fthead>\n-        \u003Ctbody>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_project_id_td\" class=\"wppm_tag_project_id_td\" onclick=\"wppm_insert_editor_text('{project_id}')\">{\u003C?php echo esc_attr('project_id') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Project Id','taskbuilder'); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_project_name_td\" class=\"wppm_tag_project_name_td\" onclick=\"wppm_insert_editor_text('{project_name}')\">{\u003C?php echo esc_attr('project_name') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Project Name','taskbuilder'); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_project_description_td\" class=\"wppm_tag_project_description_td\" onclick=\"wppm_insert_editor_text('{project_description}')\">{\u003C?php echo esc_attr('project_description') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Project Description','taskbuilder'); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_project_status_td\" class=\"wppm_tag_project_status_td\" onclick=\"wppm_insert_editor_text('{project_status}')\">{\u003C?php echo esc_attr('project_status') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Project Status','taskbuilder') ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_project_category_td\" class=\"wppm_tag_project_category_td\" onclick=\"wppm_insert_editor_text('{project_category}')\">{\u003C?php echo esc_attr('project_category') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Project Category','taskbuilder') ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_project_start_date\" class=\"wppm_tag_project_start_date\" onclick=\"wppm_insert_editor_text('{project_start_date}')\">{\u003C?php echo esc_attr('project_start_date') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Project Start Date','taskbuilder') ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_project_end_date\" class=\"wppm_tag_project_end_date\" onclick=\"wppm_insert_editor_text('{project_end_date}')\">{\u003C?php echo esc_attr('project_end_date') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Project End Date','taskbuilder') ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_project_assign_user\" class=\"wppm_tag_project_assign_user\" onclick=\"wppm_insert_editor_text('{project_assigned_users}')\">{\u003C?php echo esc_attr('project_assigned_users') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Project Assigned Users','taskbuilder') ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_project_url\" class=\"wppm_tag_project_url\" onclick=\"wppm_insert_editor_text('{project_url}')\">{\u003C?php echo esc_attr('project_url') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Project Url','taskbuilder') ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_task_id\" class=\"wppm_tag_task_id\" onclick=\"wppm_insert_editor_text('{task_id}')\">{\u003C?php echo esc_attr('task_id') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Task Id','taskbuilder'); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_task_name\" class=\"wppm_tag_task_name\" onclick=\"wppm_insert_editor_text('{task_name}')\">{\u003C?php echo esc_attr('task_name') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Task Name','taskbuilder'); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_task_creator_name\" class=\"wppm_tag_task_creator_name\" onclick=\"wppm_insert_editor_text('{task_creator_name}')\">{\u003C?php echo esc_attr('task_creator_name') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Task Creator Name','taskbuilder'); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_task_description\" class=\"wppm_tag_task_description\" onclick=\"wppm_insert_editor_text('{task_description}')\">{\u003C?php echo esc_attr('task_description') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Task Description','taskbuilder'); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_task_status\" class=\"wppm_tag_task_status\" onclick=\"wppm_insert_editor_text('{task_status}')\">{\u003C?php echo esc_attr('task_status') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Task Status','taskbuilder') ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_task_priority\" class=\"wppm_tag_task_priority\" onclick=\"wppm_insert_editor_text('{task_priority}')\">{\u003C?php echo esc_attr('task_priority') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Task Priority','taskbuilder') ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_task_start_date\" class=\"wppm_tag_task_start_date\" onclick=\"wppm_insert_editor_text('{task_start_date}')\">{\u003C?php echo esc_attr('task_start_date') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Task Start Date','taskbuilder') ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_task_end_date\" class=\"wppm_tag_task_end_date\" onclick=\"wppm_insert_editor_text('{task_end_date}')\">{\u003C?php echo esc_attr('task_end_date') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Task End Date','taskbuilder') ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_assigned_user\" class=\"wppm_tag_assigned_user\" onclick=\"wppm_insert_editor_text('{task_assigned_users}')\">{\u003C?php echo esc_attr('task_assigned_users') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Task Assigned Users','taskbuilder') ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd id=\"wppm_tag_task_url\" class=\"wppm_tag_task_url\" onclick=\"wppm_insert_editor_text('{task_url}')\">{\u003C?php echo esc_attr('task_url') ?>}\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php echo esc_html_e('Task Url','taskbuilder') ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003C?php \n-            do_action('wppm_after_macro_templates'); ?>\n-        \u003C\u002Ftbody>\n-    \u003C\u002Ftable>\n-\u003C\u002Fdiv>\n-\u003Cscript>\n-    function wppm_insert_editor_text(element){\n-        wppm_modal_close();\n-        tinymce.activeEditor.execCommand('mceInsertContent', false, element);\n-    }\n-\u003C\u002Fscript>\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\"  onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php \n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n-echo wp_json_encode($output);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user;\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"table-responsive\">\r\n+\t\u003Ctable id=\"wppm_tbl_templates\"   class=\"table table-striped table-bordered\"  cellspacing=\"5\" cellpadding=\"5\">\r\n+        \u003Cthead>\r\n+            \u003Ctr>\r\n+                \u003Cth>\u003C?php echo esc_html_e('Tag','taskbuilder')?>\u003C\u002Fth>\r\n+                \u003Cth>\u003C?php echo esc_html_e('Field Name','taskbuilder')?>\u003C\u002Fth>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Fthead>\r\n+        \u003Ctbody>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_project_id_td\" class=\"wppm_tag_project_id_td\" onclick=\"wppm_insert_editor_text('{project_id}')\">{\u003C?php echo esc_attr('project_id') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Project Id','taskbuilder'); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_project_name_td\" class=\"wppm_tag_project_name_td\" onclick=\"wppm_insert_editor_text('{project_name}')\">{\u003C?php echo esc_attr('project_name') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Project Name','taskbuilder'); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_project_description_td\" class=\"wppm_tag_project_description_td\" onclick=\"wppm_insert_editor_text('{project_description}')\">{\u003C?php echo esc_attr('project_description') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Project Description','taskbuilder'); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_project_status_td\" class=\"wppm_tag_project_status_td\" onclick=\"wppm_insert_editor_text('{project_status}')\">{\u003C?php echo esc_attr('project_status') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Project Status','taskbuilder') ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_project_category_td\" class=\"wppm_tag_project_category_td\" onclick=\"wppm_insert_editor_text('{project_category}')\">{\u003C?php echo esc_attr('project_category') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Project Category','taskbuilder') ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_project_start_date\" class=\"wppm_tag_project_start_date\" onclick=\"wppm_insert_editor_text('{project_start_date}')\">{\u003C?php echo esc_attr('project_start_date') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Project Start Date','taskbuilder') ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_project_end_date\" class=\"wppm_tag_project_end_date\" onclick=\"wppm_insert_editor_text('{project_end_date}')\">{\u003C?php echo esc_attr('project_end_date') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Project End Date','taskbuilder') ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_project_assign_user\" class=\"wppm_tag_project_assign_user\" onclick=\"wppm_insert_editor_text('{project_assigned_users}')\">{\u003C?php echo esc_attr('project_assigned_users') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Project Assigned Users','taskbuilder') ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_project_url\" class=\"wppm_tag_project_url\" onclick=\"wppm_insert_editor_text('{project_url}')\">{\u003C?php echo esc_attr('project_url') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Project Url','taskbuilder') ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_task_id\" class=\"wppm_tag_task_id\" onclick=\"wppm_insert_editor_text('{task_id}')\">{\u003C?php echo esc_attr('task_id') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Task Id','taskbuilder'); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_task_name\" class=\"wppm_tag_task_name\" onclick=\"wppm_insert_editor_text('{task_name}')\">{\u003C?php echo esc_attr('task_name') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Task Name','taskbuilder'); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_task_creator_name\" class=\"wppm_tag_task_creator_name\" onclick=\"wppm_insert_editor_text('{task_creator_name}')\">{\u003C?php echo esc_attr('task_creator_name') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Task Creator Name','taskbuilder'); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_task_description\" class=\"wppm_tag_task_description\" onclick=\"wppm_insert_editor_text('{task_description}')\">{\u003C?php echo esc_attr('task_description') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Task Description','taskbuilder'); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_task_status\" class=\"wppm_tag_task_status\" onclick=\"wppm_insert_editor_text('{task_status}')\">{\u003C?php echo esc_attr('task_status') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Task Status','taskbuilder') ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_task_priority\" class=\"wppm_tag_task_priority\" onclick=\"wppm_insert_editor_text('{task_priority}')\">{\u003C?php echo esc_attr('task_priority') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Task Priority','taskbuilder') ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_task_start_date\" class=\"wppm_tag_task_start_date\" onclick=\"wppm_insert_editor_text('{task_start_date}')\">{\u003C?php echo esc_attr('task_start_date') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Task Start Date','taskbuilder') ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_task_end_date\" class=\"wppm_tag_task_end_date\" onclick=\"wppm_insert_editor_text('{task_end_date}')\">{\u003C?php echo esc_attr('task_end_date') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Task End Date','taskbuilder') ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_assigned_user\" class=\"wppm_tag_assigned_user\" onclick=\"wppm_insert_editor_text('{task_assigned_users}')\">{\u003C?php echo esc_attr('task_assigned_users') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Task Assigned Users','taskbuilder') ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd id=\"wppm_tag_task_url\" class=\"wppm_tag_task_url\" onclick=\"wppm_insert_editor_text('{task_url}')\">{\u003C?php echo esc_attr('task_url') ?>}\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php echo esc_html_e('Task Url','taskbuilder') ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003C?php \r\n+            do_action('wppm_after_macro_templates'); ?>\r\n+        \u003C\u002Ftbody>\r\n+    \u003C\u002Ftable>\r\n+\u003C\u002Fdiv>\r\n+\u003Cscript>\r\n+    function wppm_insert_editor_text(element){\r\n+        wppm_modal_close();\r\n+        tinymce.activeEditor.execCommand('mceInsertContent', false, element);\r\n+    }\r\n+\u003C\u002Fscript>\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\"  onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php \r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n+echo wp_json_encode($output);\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_edit_email_notification.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_edit_email_notification.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_edit_email_notification.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_edit_email_notification.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,46 +1,46 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user, $wppmfunction;\n-if ( check_ajax_referer( 'wppm_set_edit_email_notification', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-if ( ! current_user_can('wppm_admin') && ! current_user_can('manage_options') ) {\n-    wp_send_json_error( 'Permission denied', 403 );\n-}\n-$wppm_email_notificatins = get_option('wppm_email_notification');\n-$term_id = isset($_POST['id'])\n-    ? absint( wp_unslash( $_POST['id'] ) )\n-    : 0;\n-$term_id = isset($_POST) && isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : 0;\n-if(!$term_id) die();\n-$type = isset($_POST) && isset($_POST['wppm_en_type']) ? sanitize_text_field(wp_unslash($_POST['wppm_en_type'])) : '';\n-$subject = isset($_POST) && isset($_POST['wppm_en_subject']) ? sanitize_text_field(wp_unslash($_POST['wppm_en_subject'])) : '';\n-$allowed_tags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(),'target'=> array(), 'rel'=>array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\n-$body = '';\n-\n-if ( !empty( $_POST['wppm_en_body'] ) ) {\n-    $body = wp_kses_post(\n-        wp_unslash( $_POST['wppm_en_body'] )\n-    );\n-}\n-$recipients = isset($_POST) && isset($_POST['wppm_en_recipients']) ? $wppmfunction->sanitize_array($_POST['wppm_en_recipients']) : array();\n-foreach($wppm_email_notificatins as $key=>$val){\n-\tif($key==$term_id){\n-\t\t$val['type'] = $type;\n-\t\t$val['subject'] = $subject;\n-\t\t$val['body'] = $body;\n-\t\t$val['recipients'] = $recipients;\n-\t\t$wppm_email_notificatins[$key] = $val;\n-\t\tupdate_option('wppm_email_notification',$wppm_email_notificatins);\n-\t}\n-}\n-\n-do_action('wppm_set_edit_email_notification',$term_id);\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Email Notification updated successfully.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user, $wppmfunction;\r\n+if ( check_ajax_referer( 'wppm_set_edit_email_notification', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+if ( ! current_user_can('wppm_admin') && ! current_user_can('manage_options') ) {\r\n+    wp_send_json_error( 'Permission denied', 403 );\r\n+}\r\n+$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+$term_id = isset($_POST['id'])\r\n+    ? absint( wp_unslash( $_POST['id'] ) )\r\n+    : 0;\r\n+$term_id = isset($_POST) && isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : 0;\r\n+if(!$term_id) die();\r\n+$type = isset($_POST) && isset($_POST['wppm_en_type']) ? sanitize_text_field(wp_unslash($_POST['wppm_en_type'])) : '';\r\n+$subject = isset($_POST) && isset($_POST['wppm_en_subject']) ? sanitize_text_field(wp_unslash($_POST['wppm_en_subject'])) : '';\r\n+$allowed_tags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(),'target'=> array(), 'rel'=>array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\r\n+$body = '';\r\n+\r\n+if ( !empty( $_POST['wppm_en_body'] ) ) {\r\n+    $body = wp_kses_post(\r\n+        wp_unslash( $_POST['wppm_en_body'] )\r\n+    );\r\n+}\r\n+$recipients = isset($_POST) && isset($_POST['wppm_en_recipients']) ? $wppmfunction->sanitize_array($_POST['wppm_en_recipients']) : array();\r\n+foreach($wppm_email_notificatins as $key=>$val){\r\n+\tif($key==$term_id){\r\n+\t\t$val['type'] = $type;\r\n+\t\t$val['subject'] = $subject;\r\n+\t\t$val['body'] = $body;\r\n+\t\t$val['recipients'] = $recipients;\r\n+\t\t$wppm_email_notificatins[$key] = $val;\r\n+\t\tupdate_option('wppm_email_notification',$wppm_email_notificatins);\r\n+\t}\r\n+}\r\n+\r\n+do_action('wppm_set_edit_email_notification',$term_id);\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Email Notification updated successfully.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_en_general_setting.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_en_general_setting.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_en_general_setting.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_en_general_setting.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,33 +1,33 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wppmfunction;\n-if ( check_ajax_referer( 'wppm_set_en_general_settings', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-\n-\u002F\u002F From Name\n-$from_name = isset($_POST) && isset($_POST['wppm_en_from_name']) ? sanitize_text_field(wp_unslash($_POST['wppm_en_from_name'])) : '';\n-update_option('wppm_en_from_name',$from_name);\n-\n-\u002F\u002F From Email\n-$from_email = isset($_POST) && isset($_POST['wppm_en_from_email']) ? sanitize_text_field(wp_unslash($_POST['wppm_en_from_email'])) : '';\n-update_option('wppm_en_from_email',$from_email);\n-\n-\u002F\u002F Block emails\n-$ignore_emails = isset($_POST) && isset($_POST['wppm_en_ignore_emails']) ? explode(\"\\n\", (wp_unslash($_POST['wppm_en_ignore_emails']))) : array();\n-$ignore_emails = $wppmfunction->sanitize_array($ignore_emails);\n-update_option('wppm_en_ignore_emails',$ignore_emails);\n-\n-do_action('wppm_set_en_gerneral_settings');\n-\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n-wp_die();\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wppmfunction;\r\n+if ( check_ajax_referer( 'wppm_set_en_general_settings', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+\r\n+\u002F\u002F From Name\r\n+$from_name = isset($_POST) && isset($_POST['wppm_en_from_name']) ? sanitize_text_field(wp_unslash($_POST['wppm_en_from_name'])) : '';\r\n+update_option('wppm_en_from_name',$from_name);\r\n+\r\n+\u002F\u002F From Email\r\n+$from_email = isset($_POST) && isset($_POST['wppm_en_from_email']) ? sanitize_text_field(wp_unslash($_POST['wppm_en_from_email'])) : '';\r\n+update_option('wppm_en_from_email',$from_email);\r\n+\r\n+\u002F\u002F Block emails\r\n+$ignore_emails = isset($_POST) && isset($_POST['wppm_en_ignore_emails']) ? explode(\"\\n\", (wp_unslash($_POST['wppm_en_ignore_emails']))) : array();\r\n+$ignore_emails = $wppmfunction->sanitize_array($ignore_emails);\r\n+update_option('wppm_en_ignore_emails',$ignore_emails);\r\n+\r\n+do_action('wppm_set_en_gerneral_settings');\r\n+\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n+wp_die();\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Flicenses.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Flicenses.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Flicenses.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Flicenses.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,71 +1,71 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wppmfunction,$wpdb,$current_user;\n-if (!($current_user->ID || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$is_addons = apply_filters( 'wppm_is_add_on_installed', false );\n-$addons_url = 'https:\u002F\u002Ftaskbuilder.net\u002Fadd-ons\u002F';\n-if($is_addons) {\n-  $license_message = esc_html__('Enter your add-ons license keys here to receive updates for purchased add-ons. If your license key has expired, please renew your license.','taskbuilder');\n-} else {\n-  $license_message = sprintf(\n-      esc_html__('No add-ons installed. See available add-ons - %1$s.', 'taskbuilder'),\n-      '\u003Ca href=\"' . esc_url($addons_url) . '\" target=\"_blank\" rel=\"noopener noreferrer\">' \n-          . esc_url($addons_url) . \n-      '\u003C\u002Fa>'\n-  );\n-}\n-$license_message = '\u003Ch4>' . $license_message . '\u003C\u002Fh4>';\n-?>\n-\u003Cdiv class=\"wppm_bootstrap\">\n-  \n-  \u003Ch3>\n-    \u003C?php echo esc_html_e('License','taskbuilder');?>\n-  \u003C\u002Fh3>\n-  \u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\n-  \u003Cdiv class=\"row\" style=\"margin-bottom:20px;\">\u003C?php echo !empty($license_message) ? wp_kses_post($license_message) : ''; ?>\u003C\u002Fdiv>\n-  \u003Cdiv class=\"row\">\u003C?php do_action('wppm_addon_license_area')?>\u003C\u002Fdiv>\n-  \n-  \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\n-    \u003Ci class=\"fa fa-check-circle\">\u003C\u002Fi> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-  \u003C\u002Fdiv>\n-  \n-  \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\n-    \u003Ci class=\"fa fa-exclamation-triangle\">\u003C\u002Fi> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-  \u003C\u002Fdiv>\n-  \n-\u003C\u002Fdiv>\n-\n-\u003C!-- Pop-up snippet start -->\n-\u003Cdiv id=\"wppm_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\n-\u003Cdiv id=\"wppm_popup_container\" style=\"display:none;\">\n-  \u003Cdiv class=\"wppm_bootstrap\">\n-    \u003Cdiv class=\"row\">\n-      \u003Cdiv id=\"wppm_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n-        \u003Cdiv id=\"wppm_popup_title\" class=\"row\">\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fh3>\u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_popup_footer\" class=\"row\">\n-          \u003Cbutton type=\"button\" class=\"btn wppm_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-          \u003Cbutton type=\"button\" class=\"btn wppm_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003C!-- Pop-up snippet end -->\n-\n-\u003C?php\n-add_action('admin_footer', 'wppm_page_inline_script');\n-function wppm_page_inline_script(){\n-  ?>\n-  \u003Cscript>\n-    jQuery(document).ready(function(){\n-      wppm_get_general_settings();\n-    });\n-  \u003C\u002Fscript>\n-  \u003C?php\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wppmfunction,$wpdb,$current_user;\r\n+if (!($current_user->ID || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$is_addons = apply_filters( 'wppm_is_add_on_installed', false );\r\n+$addons_url = 'https:\u002F\u002Ftaskbuilder.net\u002Fadd-ons\u002F';\r\n+if($is_addons) {\r\n+  $license_message = esc_html__('Enter your add-ons license keys here to receive updates for purchased add-ons. If your license key has expired, please renew your license.','taskbuilder');\r\n+} else {\r\n+  $license_message = sprintf(\r\n+      esc_html__('No add-ons installed. See available add-ons - %1$s.', 'taskbuilder'),\r\n+      '\u003Ca href=\"' . esc_url($addons_url) . '\" target=\"_blank\" rel=\"noopener noreferrer\">' \r\n+          . esc_url($addons_url) . \r\n+      '\u003C\u002Fa>'\r\n+  );\r\n+}\r\n+$license_message = '\u003Ch4>' . $license_message . '\u003C\u002Fh4>';\r\n+?>\r\n+\u003Cdiv class=\"wppm_bootstrap\">\r\n+  \r\n+  \u003Ch3>\r\n+    \u003C?php echo esc_html_e('License','taskbuilder');?>\r\n+  \u003C\u002Fh3>\r\n+  \u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"row\" style=\"margin-bottom:20px;\">\u003C?php echo !empty($license_message) ? wp_kses_post($license_message) : ''; ?>\u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"row\">\u003C?php do_action('wppm_addon_license_area')?>\u003C\u002Fdiv>\r\n+  \r\n+  \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+    \u003Ci class=\"fa fa-check-circle\">\u003C\u002Fi> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+  \u003C\u002Fdiv>\r\n+  \r\n+  \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+    \u003Ci class=\"fa fa-exclamation-triangle\">\u003C\u002Fi> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+  \u003C\u002Fdiv>\r\n+  \r\n+\u003C\u002Fdiv>\r\n+\r\n+\u003C!-- Pop-up snippet start -->\r\n+\u003Cdiv id=\"wppm_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\r\n+\u003Cdiv id=\"wppm_popup_container\" style=\"display:none;\">\r\n+  \u003Cdiv class=\"wppm_bootstrap\">\r\n+    \u003Cdiv class=\"row\">\r\n+      \u003Cdiv id=\"wppm_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\r\n+        \u003Cdiv id=\"wppm_popup_title\" class=\"row\">\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fh3>\u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_popup_footer\" class=\"row\">\r\n+          \u003Cbutton type=\"button\" class=\"btn wppm_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+          \u003Cbutton type=\"button\" class=\"btn wppm_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003C!-- Pop-up snippet end -->\r\n+\r\n+\u003C?php\r\n+add_action('admin_footer', 'wppm_page_inline_script');\r\n+function wppm_page_inline_script(){\r\n+  ?>\r\n+  \u003Cscript>\r\n+    jQuery(document).ready(function(){\r\n+      wppm_get_general_settings();\r\n+    });\r\n+  \u003C\u002Fscript>\r\n+  \u003C?php\r\n+}\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Ffilters\u002Fwppm_project_search_filter.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Ffilters\u002Fwppm_project_search_filter.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Ffilters\u002Fwppm_project_search_filter.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Ffilters\u002Fwppm_project_search_filter.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,22 +1,22 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options')) || !($current_user->ID && $current_user->has_cap('wppm_admin'))) {exit;}\n-\n-$old_search_term = get_user_meta($current_user->ID, 'wppm_current_filter_result');\n-$search_tag = isset($_POST) && isset($_POST['project_search']) ? sanitize_text_field(wp_unslash($_POST['project_search'])) : '';\n-$search_tag = '%'.$search_tag.'%';\n-$search_tag = array('search_tag'=>$search_tag);\n-if (!empty($search_tag)) {exit;}\n-foreach( $search_tag as $key=>$val){\n-    if($key == 'search_tag'){\n-      $val = esc_sql($val);\n-      $query = $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project where project_name LIKE %s\", $val);\n-    }\n-}\n-$new_search_term = array('search_tag'=>$query);\n-update_user_meta($current_user->ID, 'wppm_current_filter_result', $new_search_term);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options')) || !($current_user->ID && $current_user->has_cap('wppm_admin'))) {exit;}\r\n+\r\n+$old_search_term = get_user_meta($current_user->ID, 'wppm_current_filter_result');\r\n+$search_tag = isset($_POST) && isset($_POST['project_search']) ? sanitize_text_field(wp_unslash($_POST['project_search'])) : '';\r\n+$search_tag = '%'.$search_tag.'%';\r\n+$search_tag = array('search_tag'=>$search_tag);\r\n+if (!empty($search_tag)) {exit;}\r\n+foreach( $search_tag as $key=>$val){\r\n+    if($key == 'search_tag'){\r\n+      $val = esc_sql($val);\r\n+      $query = $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project where project_name LIKE %s\", $val);\r\n+    }\r\n+}\r\n+$new_search_term = array('search_tag'=>$query);\r\n+update_user_meta($current_user->ID, 'wppm_current_filter_result', $new_search_term);\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fget_users.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fget_users.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fget_users.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fget_users.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,142 +1,142 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$wppm_users_role = get_option('wppm_user_role');\n-$proj_id  = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$project = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project where id = %d\", $proj_id));\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('assign_project_users',$proj_id) || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-if(!empty($project->users)){\n-\t$users = explode(\",\",$project->users);\n-}\n-$settings = get_option(\"wppm-ap-modal\");\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_project_users\">\n-\t\u003Cdiv id=\"wppm_get_users\">\n-\t\t\u003Cinput type=\"text\" id=\"wppm_user_name\" class=\"wppm_user_name form-control regi_user_autocomplete ui-autocomplete-input\" name=\"user_name\" autocomplete=\"off\" placeholder=\"Search User\">\n-\t\t\u003Cdiv class=\"wppm_filter_display_container\" id=\"wppm_proj_users_display_container\">\n-\t\t\t\u003C?php if(!empty($users)){\n-\t\t\t\tforeach($users as $user){ ?>\n-\t\t\t\t\t\u003Cdiv id=\"wppm_user_display_container_\u003C?php echo esc_attr($user)?>\" class=\"row wppm_user_display_container\">\n-\t\t\t\t\t\t\u003C?php\n-\t\t\t\t\t\t$userdata = get_userdata( $user );\n-\t\t\t\t\t\t$user = absint($user);\n-\t\t\t\t\t\t$project_user = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $proj_id, $user));\n-\t\t\t\t\t\t?>\n-\t\t\t\t\t\t\u003Cdiv class=\"flex-container col-sm-4\">\n-\t\t\t\t\t\t\t\u003Cspan class=\"wppm_filter_display_text\">\n-\t\t\t\t\t\t\t\t\u003C?php  echo esc_html($userdata->display_name); ?>\n-\t\t\t\t\t\t\t\t\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"\u003C?php echo esc_attr($user) ?>\">\n-\t\t\t\t\t\t\t\u003C\u002Fspan>\n-\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\u003Cdiv class=\"col-sm-4 wppm_user_role\">\n-\t\t\t\t\t\t\t\u003Cselect size=\"sm\" class=\"form-control\" id=\"wppm_select_user_role_\u003C?php echo esc_attr( $user ); ?>\" name=\"wppm_select_user_role_\u003C?php echo esc_attr( $user ); ?>\">\n-\t\t\t\t\t\t\t\u003C?php if ( ! empty( $wppm_users_role ) ) : ?>\n-\t\t\t\t\t\t\t\t\u003C?php foreach ( $wppm_users_role as $key => $role ) : ?>\u003C?php\n-\t\t\t\t\t\t\t\t\t$selected = ( ! empty( $project_user ) && $key == $project_user->role_id )\n-\t\t\t\t\t\t\t\t\t\t? 'selected=\"selected\"'\n-\t\t\t\t\t\t\t\t\t\t: '';\n-\t\t\t\t\t\t\t\t\t?>\n-\t\t\t\t\t\t\t\t\t\u003Coption \u003C?php echo esc_attr( $selected ); ?> value=\"\u003C?php echo esc_attr( $key ); ?>\">\n-\t\t\t\t\t\t\t\t\t\t\u003C?php echo esc_html( $role['label'] ); ?>\n-\t\t\t\t\t\t\t\t\t\u003C\u002Foption>\n-\t\t\t\t\t\t\t\t\u003C?php endforeach; ?>\n-\t\t\t\t\t\t\t\u003C?php endif; ?>\n-\t\t\t\t\t\t\t\u003C\u002Fselect>\n-\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\u003Cdiv class=\"col-sm-4 wppm_delete_user_icon\">\n-\t\t\t\t\t\t\t\u003Cspan onclick=\"wppm_remove_filter(\u003C?php echo esc_attr($user)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\n-\t\t\t\t\t\t\u003C\u002Fdiv>\u003C?php\n-\t\t\t\t\t\t?>\n-\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\u003C?php }\n-\t\t\t} else{\n-\t\t\t\t?>\u003Cspan class=\"wppm_project_users_not_assign_label\">\u003C?php echo esc_html_e('None','taskbuilder');?>\u003C\u002Fspan>\u003C?php\n-\t\t\t}\n-\t\t\t?> \n-\t\t\u003C\u002Fdiv>\n-\t\t\u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_project_users\" \u002F>\n-\t\t\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_project_users' ) ); ?>\">\n-\t\t\u003Cinput type=\"hidden\" id=\"wppm_proj_id\" name=\"proj_id\" value=\"\u003C?php echo esc_attr($proj_id) ?>\" \u002F>\n-\t\u003C\u002Fdiv>\n-\u003C\u002Fform>\n-\u003Cstyle>\n-    li {\n-        color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\n-    }\n-\u003C\u002Fstyle>\n-\u003Cscript>\n-\tjQuery(document).ready(function(){\n-\t\tjQuery(\"input[name='user_name']\").keypress(function(e) {\n-\t\t\t\u002F\u002FEnter key\n-\t\t\tif (e.which == 13) {\n-\t\t\t\treturn false;\n-\t\t\t}\n-\t\t});\n-\t\t\n-\t\tjQuery( \".wppm_user_name\" ).autocomplete({\n-\t\t\tminLength: 1,\n-\t\t\tappendTo: jQuery('.wppm_user_name').parent(),\n-\t\t\tsource: function( request, response ) {\n-\t\t\t\tvar term = request.term;\n-\t\t\t\trequest = {\n-\t\t\t\t\taction: 'wppm_filter_autocomplete',\n-\t\t\t\t\tterm : term,\n-\t\t\t\t\tfield : 'users_name',\n-\t\t\t\t}\n-\t\t\t\tjQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\n-\t\t\t\t\tresponse(data);\n-\t\t\t\t});\n-\t\t\t},\n-\t\t\tselect: function (event, ui) {\n-\t\t\t\tvar html_str = '\u003Cdiv id=\"wppm_user_display_container_'+ui.item.user_id+'\" class=\"row wppm_user_display_container\">'\n-\t\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"flex-container col-sm-4\">'\n-\t\t\t\t\t\t\t\t\t\t+'\u003Cspan class=\"wppm_filter_display_text\">'\n-\t\t\t\t\t\t\t\t\t\t\t+ui.item.label\n-\t\t\t\t\t\t\t\t\t\t\t+'\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"'+ui.item.user_id+'\">'\n-\t\t\t\t\t\t\t\t\t\t+'\u003C\u002Fspan>'\n-\t\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\n-\t\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-4 wppm_user_role\">'\n-\t\t\t\t\t\t\t\t\t\t\t+'\u003Cselect size=\"sm\" class=\"form-control\" id=\"wppm_select_user_role_'+ui.item.user_id+'\" name=\"wppm_select_user_role_'+ui.item.user_id+'\">'+\n-\t\t\t\t\t\t\t\t\t\t\t\u003C?php \n-\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($wppm_users_role)){\n-\t\t\t\t\t\t\t\t\t\t\t\t\tforeach($wppm_users_role as $key=>$role){\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($role)){\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforeach($role as $k=>$val){\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t?>'\u003Coption value=\"\u003C?php echo esc_attr($key) ?>\">\u003C?php echo esc_html($role['label']) ?>\u003C\u002Foption>'+\u003C?php\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t?>\n-\t\t\t\t\t\t\t\t\t\t\t'\u003C\u002Fselect>'\n-\t\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\n-\t\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-4 wppm_delete_user_icon\">'\n-\t\t\t\t\t\t\t\t\t\t+'\u003Cspan onclick=\"wppm_remove_filter('+ui.item.user_id+');\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>'\n-\t\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\t\n-\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>';\n-\t\t\t\tjQuery('.wppm_project_users_not_assign_label').hide();\n-\t\t\t\tjQuery('#wppm_get_users #wppm_proj_users_display_container').append(html_str);\n-\t\t\t\tjQuery(this).val(''); return false;\n-\t\t\t}\n-\t\t}).focus(function() {\n-\t\t\tjQuery(this).autocomplete(\"search\", \"\");\n-\t\t});\n-\t});\n-\u003C\u002Fscript>\n-\u003C?php\n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_project_users();\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-$output = array(\n-    'body'      => $body,\n-    'footer'    => $footer\n-);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$wppm_users_role = get_option('wppm_user_role');\r\n+$proj_id  = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$project = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project where id = %d\", $proj_id));\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('assign_project_users',$proj_id) || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+if(!empty($project->users)){\r\n+\t$users = explode(\",\",$project->users);\r\n+}\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_project_users\">\r\n+\t\u003Cdiv id=\"wppm_get_users\">\r\n+\t\t\u003Cinput type=\"text\" id=\"wppm_user_name\" class=\"wppm_user_name form-control regi_user_autocomplete ui-autocomplete-input\" name=\"user_name\" autocomplete=\"off\" placeholder=\"Search User\">\r\n+\t\t\u003Cdiv class=\"wppm_filter_display_container\" id=\"wppm_proj_users_display_container\">\r\n+\t\t\t\u003C?php if(!empty($users)){\r\n+\t\t\t\tforeach($users as $user){ ?>\r\n+\t\t\t\t\t\u003Cdiv id=\"wppm_user_display_container_\u003C?php echo esc_attr($user)?>\" class=\"row wppm_user_display_container\">\r\n+\t\t\t\t\t\t\u003C?php\r\n+\t\t\t\t\t\t$userdata = get_userdata( $user );\r\n+\t\t\t\t\t\t$user = absint($user);\r\n+\t\t\t\t\t\t$project_user = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $proj_id, $user));\r\n+\t\t\t\t\t\t?>\r\n+\t\t\t\t\t\t\u003Cdiv class=\"flex-container col-sm-4\">\r\n+\t\t\t\t\t\t\t\u003Cspan class=\"wppm_filter_display_text\">\r\n+\t\t\t\t\t\t\t\t\u003C?php  echo esc_html($userdata->display_name); ?>\r\n+\t\t\t\t\t\t\t\t\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"\u003C?php echo esc_attr($user) ?>\">\r\n+\t\t\t\t\t\t\t\u003C\u002Fspan>\r\n+\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\u003Cdiv class=\"col-sm-4 wppm_user_role\">\r\n+\t\t\t\t\t\t\t\u003Cselect size=\"sm\" class=\"form-control\" id=\"wppm_select_user_role_\u003C?php echo esc_attr( $user ); ?>\" name=\"wppm_select_user_role_\u003C?php echo esc_attr( $user ); ?>\">\r\n+\t\t\t\t\t\t\t\u003C?php if ( ! empty( $wppm_users_role ) ) : ?>\r\n+\t\t\t\t\t\t\t\t\u003C?php foreach ( $wppm_users_role as $key => $role ) : ?>\u003C?php\r\n+\t\t\t\t\t\t\t\t\t$selected = ( ! empty( $project_user ) && $key == $project_user->role_id )\r\n+\t\t\t\t\t\t\t\t\t\t? 'selected=\"selected\"'\r\n+\t\t\t\t\t\t\t\t\t\t: '';\r\n+\t\t\t\t\t\t\t\t\t?>\r\n+\t\t\t\t\t\t\t\t\t\u003Coption \u003C?php echo esc_attr( $selected ); ?> value=\"\u003C?php echo esc_attr( $key ); ?>\">\r\n+\t\t\t\t\t\t\t\t\t\t\u003C?php echo esc_html( $role['label'] ); ?>\r\n+\t\t\t\t\t\t\t\t\t\u003C\u002Foption>\r\n+\t\t\t\t\t\t\t\t\u003C?php endforeach; ?>\r\n+\t\t\t\t\t\t\t\u003C?php endif; ?>\r\n+\t\t\t\t\t\t\t\u003C\u002Fselect>\r\n+\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\u003Cdiv class=\"col-sm-4 wppm_delete_user_icon\">\r\n+\t\t\t\t\t\t\t\u003Cspan onclick=\"wppm_remove_filter(\u003C?php echo esc_attr($user)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\r\n+\t\t\t\t\t\t\u003C\u002Fdiv>\u003C?php\r\n+\t\t\t\t\t\t?>\r\n+\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\u003C?php }\r\n+\t\t\t} else{\r\n+\t\t\t\t?>\u003Cspan class=\"wppm_project_users_not_assign_label\">\u003C?php echo esc_html_e('None','taskbuilder');?>\u003C\u002Fspan>\u003C?php\r\n+\t\t\t}\r\n+\t\t\t?> \r\n+\t\t\u003C\u002Fdiv>\r\n+\t\t\u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_project_users\" \u002F>\r\n+\t\t\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_project_users' ) ); ?>\">\r\n+\t\t\u003Cinput type=\"hidden\" id=\"wppm_proj_id\" name=\"proj_id\" value=\"\u003C?php echo esc_attr($proj_id) ?>\" \u002F>\r\n+\t\u003C\u002Fdiv>\r\n+\u003C\u002Fform>\r\n+\u003Cstyle>\r\n+    li {\r\n+        color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\r\n+    }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript>\r\n+\tjQuery(document).ready(function(){\r\n+\t\tjQuery(\"input[name='user_name']\").keypress(function(e) {\r\n+\t\t\t\u002F\u002FEnter key\r\n+\t\t\tif (e.which == 13) {\r\n+\t\t\t\treturn false;\r\n+\t\t\t}\r\n+\t\t});\r\n+\t\t\r\n+\t\tjQuery( \".wppm_user_name\" ).autocomplete({\r\n+\t\t\tminLength: 1,\r\n+\t\t\tappendTo: jQuery('.wppm_user_name').parent(),\r\n+\t\t\tsource: function( request, response ) {\r\n+\t\t\t\tvar term = request.term;\r\n+\t\t\t\trequest = {\r\n+\t\t\t\t\taction: 'wppm_filter_autocomplete',\r\n+\t\t\t\t\tterm : term,\r\n+\t\t\t\t\tfield : 'users_name',\r\n+\t\t\t\t}\r\n+\t\t\t\tjQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\r\n+\t\t\t\t\tresponse(data);\r\n+\t\t\t\t});\r\n+\t\t\t},\r\n+\t\t\tselect: function (event, ui) {\r\n+\t\t\t\tvar html_str = '\u003Cdiv id=\"wppm_user_display_container_'+ui.item.user_id+'\" class=\"row wppm_user_display_container\">'\r\n+\t\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"flex-container col-sm-4\">'\r\n+\t\t\t\t\t\t\t\t\t\t+'\u003Cspan class=\"wppm_filter_display_text\">'\r\n+\t\t\t\t\t\t\t\t\t\t\t+ui.item.label\r\n+\t\t\t\t\t\t\t\t\t\t\t+'\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"'+ui.item.user_id+'\">'\r\n+\t\t\t\t\t\t\t\t\t\t+'\u003C\u002Fspan>'\r\n+\t\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\r\n+\t\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-4 wppm_user_role\">'\r\n+\t\t\t\t\t\t\t\t\t\t\t+'\u003Cselect size=\"sm\" class=\"form-control\" id=\"wppm_select_user_role_'+ui.item.user_id+'\" name=\"wppm_select_user_role_'+ui.item.user_id+'\">'+\r\n+\t\t\t\t\t\t\t\t\t\t\t\u003C?php \r\n+\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($wppm_users_role)){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\tforeach($wppm_users_role as $key=>$role){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($role)){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforeach($role as $k=>$val){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t?>'\u003Coption value=\"\u003C?php echo esc_attr($key) ?>\">\u003C?php echo esc_html($role['label']) ?>\u003C\u002Foption>'+\u003C?php\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t?>\r\n+\t\t\t\t\t\t\t\t\t\t\t'\u003C\u002Fselect>'\r\n+\t\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\r\n+\t\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-4 wppm_delete_user_icon\">'\r\n+\t\t\t\t\t\t\t\t\t\t+'\u003Cspan onclick=\"wppm_remove_filter('+ui.item.user_id+');\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>'\r\n+\t\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\t\r\n+\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>';\r\n+\t\t\t\tjQuery('.wppm_project_users_not_assign_label').hide();\r\n+\t\t\t\tjQuery('#wppm_get_users #wppm_proj_users_display_container').append(html_str);\r\n+\t\t\t\tjQuery(this).val(''); return false;\r\n+\t\t\t}\r\n+\t\t}).focus(function() {\r\n+\t\t\tjQuery(this).autocomplete(\"search\", \"\");\r\n+\t\t});\r\n+\t});\r\n+\u003C\u002Fscript>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_project_users();\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+$output = array(\r\n+    'body'      => $body,\r\n+    'footer'    => $footer\r\n+);\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_change_project_visibility.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_change_project_visibility.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_change_project_visibility.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_change_project_visibility.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,24 +1,24 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-} \n-global $current_user,$wpdb,$wppmfunction;\n-if ( check_ajax_referer( 'wppm_change_project_visibility', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$project_id  = isset($_POST['project_id']) ? absint(sanitize_text_field(wp_unslash($_POST['project_id']))) : '' ;\n-$project = $wppmfunction->get_project($project_id);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || ($current_user->ID && $current_user->has_cap('wppm_admin')) || ($project['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) {exit;}\n-$wppm_project_visibility = isset($_POST['project_visibility']) ? sanitize_text_field(wp_unslash($_POST['project_visibility'])):\"0\";\n-$wppm_project_visibility  = absint($wppm_project_visibility );\n-$id = $wpdb->get_var($wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = %d AND meta_key ='public_project'\", $project_id));\n-$id = absint($id);\n-if(empty($id )){\n-    $wppmfunction->add_project_meta($project_id,'public_project',$wppm_project_visibility);\n-}elseif(!empty($id)){\n-    $values = array(\n-        'meta_value'=>$wppm_project_visibility\n-    );\n-    $wpdb->update($wpdb->prefix.'wppm_project_meta', $values,array('id'=>intval($id)));\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+} \r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if ( check_ajax_referer( 'wppm_change_project_visibility', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$project_id  = isset($_POST['project_id']) ? absint(sanitize_text_field(wp_unslash($_POST['project_id']))) : '' ;\r\n+$project = $wppmfunction->get_project($project_id);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || ($current_user->ID && $current_user->has_cap('wppm_admin')) || ($project['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) {exit;}\r\n+$wppm_project_visibility = isset($_POST['project_visibility']) ? sanitize_text_field(wp_unslash($_POST['project_visibility'])):\"0\";\r\n+$wppm_project_visibility  = absint($wppm_project_visibility );\r\n+$id = $wpdb->get_var($wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = %d AND meta_key ='public_project'\", $project_id));\r\n+$id = absint($id);\r\n+if(empty($id )){\r\n+    $wppmfunction->add_project_meta($project_id,'public_project',$wppm_project_visibility);\r\n+}elseif(!empty($id)){\r\n+    $values = array(\r\n+        'meta_value'=>$wppm_project_visibility\r\n+    );\r\n+    $wpdb->update($wpdb->prefix.'wppm_project_meta', $values,array('id'=>intval($id)));\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_delete_proj_thread.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_delete_proj_thread.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_delete_proj_thread.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_delete_proj_thread.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,37 +1,37 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$proj_id  = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-$projectdata = $wppmfunction->get_project($proj_id);\n-$comment_id  = isset($_POST['comment_id']) ? intval(sanitize_text_field(wp_unslash($_POST['comment_id']))) : 0 ;\n-$project_comment = $wppmfunction->get_proj_comment($comment_id);\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_proj_comment_permission('delete_proj_thread',$proj_id,$comment_id) || ($current_user->ID && $current_user->has_cap('wppm_admin')) || ($current_user->has_cap('wppm_manager') && $projectdata['created_by']==$current_user->ID ))) {exit;}\n-ob_start();\n-?>\n-\u003Cform id=\"frm_delete_proj_thread\">\n-    \u003Cp>\u003C?php echo esc_html_e('Are you sure to delete this thread?','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_delete_proj_thread\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_delete_proj_thread' ) ); ?>\">\n-    \u003Cinput type=\"hidden\" name=\"proj_id\" value=\"\u003C?php echo (esc_attr($proj_id))?>\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"comment_id\" value=\"\u003C?php echo (esc_attr($comment_id))?>\" \u002F>  \n-\u003C\u002Fform>\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cdiv class=\"row\">\n-    \u003Cdiv class=\"col-md-12\" style=\"text-align: right;\">\n-\t\t\t\u003Cbutton type=\"button\" class=\"btn wppm_modal_close\" onclick=\"wppm_modal_close()\">\u003C?php echo esc_html_e('Cancel','taskbuilder');?>\u003C\u002Fbutton>\n-\t\t\t\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\"  onclick=\"wppm_set_delete_proj_thread(\u003C?php echo esc_attr($proj_id); ?>);\">\u003C?php echo esc_html_e('Confirm','taskbuilder');?>\u003C\u002Fbutton>\n-  \u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003C?php\n-$footer = ob_get_clean();\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-echo wp_json_encode($output);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$proj_id  = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+$projectdata = $wppmfunction->get_project($proj_id);\r\n+$comment_id  = isset($_POST['comment_id']) ? intval(sanitize_text_field(wp_unslash($_POST['comment_id']))) : 0 ;\r\n+$project_comment = $wppmfunction->get_proj_comment($comment_id);\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_proj_comment_permission('delete_proj_thread',$proj_id,$comment_id) || ($current_user->ID && $current_user->has_cap('wppm_admin')) || ($current_user->has_cap('wppm_manager') && $projectdata['created_by']==$current_user->ID ))) {exit;}\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_delete_proj_thread\">\r\n+    \u003Cp>\u003C?php echo esc_html_e('Are you sure to delete this thread?','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_delete_proj_thread\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_delete_proj_thread' ) ); ?>\">\r\n+    \u003Cinput type=\"hidden\" name=\"proj_id\" value=\"\u003C?php echo (esc_attr($proj_id))?>\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"comment_id\" value=\"\u003C?php echo (esc_attr($comment_id))?>\" \u002F>  \r\n+\u003C\u002Fform>\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"row\">\r\n+    \u003Cdiv class=\"col-md-12\" style=\"text-align: right;\">\r\n+\t\t\t\u003Cbutton type=\"button\" class=\"btn wppm_modal_close\" onclick=\"wppm_modal_close()\">\u003C?php echo esc_html_e('Cancel','taskbuilder');?>\u003C\u002Fbutton>\r\n+\t\t\t\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\"  onclick=\"wppm_set_delete_proj_thread(\u003C?php echo esc_attr($proj_id); ?>);\">\u003C?php echo esc_html_e('Confirm','taskbuilder');?>\u003C\u002Fbutton>\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+echo wp_json_encode($output);\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_drag_and_drop_card.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_drag_and_drop_card.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_drag_and_drop_card.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_drag_and_drop_card.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,39 +1,39 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$current_user, $wppmfunction;\n-if ( check_ajax_referer( 'wppm_drag_and_drop_card', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$wppm_card = isset($_POST) && isset($_POST['el']) ? sanitize_text_field(wp_unslash($_POST['el'])) : '';\n-if (!$wppm_card) {exit;}\n-$target_task_status = isset($_POST) && isset($_POST['target']) ? sanitize_text_field(wp_unslash($_POST['target'])) : '';\n-if (!$wppm_card) {exit;}\n-$wppm_card_id= substr($wppm_card, 20);\n-if($wppmfunction->has_permission('change_task_status',$wppm_card_id)){\n-\t$wppm_target_task_status = substr($target_task_status,25);\n-\t$task_data = $wppmfunction->get_task($wppm_card_id);\n-\t$task_id = $wppm_card_id;\n-\t$old_status_id = $task_data['status'];\n-\t$status_id = esc_sql($wppm_target_task_status);\n-\t$wppmfunction->change_status( $task_id, $status_id);\n-\t$change_task_value = array('prev_status'=>\"$old_status_id\",'new_status'=>\"$status_id\");\n-\t$change_task_obj = serialize($change_task_value);\n-\t$log_values = array('task_id'=>\"$task_id\",'body'=>$change_task_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>\"$current_user->ID\" );\n-\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\n-\t$log_id = esc_sql($wpdb->insert_id);\n-\t$task_log_values = array('task_id'=>\"$task_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_task_status');\n-\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\n-\techo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Success.', 'taskbuilder' ),\n-\t) );\n-\twp_die();\n-}else{\n-\techo wp_json_encode( array(\n-\t\t'sucess_status' => 0,\n-\t\t'messege'        => esc_html__( 'You do not have permission to change this task status.', 'taskbuilder' ),\n-\t) );\n-\twp_die();\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$current_user, $wppmfunction;\r\n+if ( check_ajax_referer( 'wppm_drag_and_drop_card', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$wppm_card = isset($_POST) && isset($_POST['el']) ? sanitize_text_field(wp_unslash($_POST['el'])) : '';\r\n+if (!$wppm_card) {exit;}\r\n+$target_task_status = isset($_POST) && isset($_POST['target']) ? sanitize_text_field(wp_unslash($_POST['target'])) : '';\r\n+if (!$wppm_card) {exit;}\r\n+$wppm_card_id= substr($wppm_card, 20);\r\n+if($wppmfunction->has_permission('change_task_status',$wppm_card_id)){\r\n+\t$wppm_target_task_status = substr($target_task_status,25);\r\n+\t$task_data = $wppmfunction->get_task($wppm_card_id);\r\n+\t$task_id = $wppm_card_id;\r\n+\t$old_status_id = $task_data['status'];\r\n+\t$status_id = esc_sql($wppm_target_task_status);\r\n+\t$wppmfunction->change_status( $task_id, $status_id);\r\n+\t$change_task_value = array('prev_status'=>\"$old_status_id\",'new_status'=>\"$status_id\");\r\n+\t$change_task_obj = serialize($change_task_value);\r\n+\t$log_values = array('task_id'=>\"$task_id\",'body'=>$change_task_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>\"$current_user->ID\" );\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\r\n+\t$log_id = esc_sql($wpdb->insert_id);\r\n+\t$task_log_values = array('task_id'=>\"$task_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_task_status');\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\r\n+\techo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Success.', 'taskbuilder' ),\r\n+\t) );\r\n+\twp_die();\r\n+}else{\r\n+\techo wp_json_encode( array(\r\n+\t\t'sucess_status' => 0,\r\n+\t\t'messege'        => esc_html__( 'You do not have permission to change this task status.', 'taskbuilder' ),\r\n+\t) );\r\n+\twp_die();\r\n+}\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_creator.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_creator.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_creator.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_creator.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,70 +1,70 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$project_id  = isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : '' ;\n-$project_data = $wppmfunction->get_project($project_id);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_raised_by',$project_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {exit;}\n-$project_creator = get_userdata($project_data['created_by']);\n-$settings = get_option(\"wppm-ap-modal\");\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_project_creator\" method=\"post\">\n-\t\u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-    \t    \u003Clabel class=\"wppm_ct_field_label\" for=\"user_name\">\u003C?php echo esc_html_e('Project Creator Name','taskbuilder') ?> \u003C\u002Flabel>\n-\t\t\t\u003Cinput type=\"text\" id=\"project_creator_name\" class=\"form-control wppm_regi_user_autocomplete ui-autocomplete-input\" name=\"wppm_project_creator_name\" autocomplete=\"off\" value=\"\u003C?php echo ((esc_attr($project_creator->display_name)))?>\">\n-   \t    \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_change_project_raised_by\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_project_raised_by' ) ); ?>\">\n-    \u003Cinput type=\"hidden\" name=\"wppm_user_id\" id=\"wppm_user_id\" value=\"\u003C?php echo esc_attr($project_creator->ID) ?>\">\n-    \u003Cinput type=\"hidden\" name=\"project_id\" value=\"\u003C?php echo (esc_attr($project_id)) ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003Cstyle>\n-    li {\n-        color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;wppm_edit_project_details\n-    }\n-\u003C\u002Fstyle>\n-\u003Cscript type=\"text\u002Fjavascript\">\n-\tjQuery(document).ready(function(){\n-  \tjQuery( \".wppm_regi_user_autocomplete\" ).autocomplete({\n-        minLength: 1,\n-        appendTo: jQuery('.wppm_regi_user_autocomplete').parent(),\n-        source: function( request, response ) {\n-            var term = request.term;\n-            request = {\n-                action : 'wppm_filter_autocomplete',\n-                term : term,\n-                field : 'project_creator_name'\n-            }\n-            jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\n-                response(data);\n-            });\t\n-\t\t\t},\n-        minLength: 2,\n-            select: function (event, ui) {\n-                jQuery('#wppm_project_creator_name').val(ui.item.value);\n-                jQuery('#wppm_user_id').val(ui.item.user_id);\n-            }\n-\t\t});\n-\t\n-\t});\n-\u003C\u002Fscript>\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_change_project_raised_by(\u003C?php echo esc_attr($project_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php \n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$project_id  = isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : '' ;\r\n+$project_data = $wppmfunction->get_project($project_id);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_raised_by',$project_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {exit;}\r\n+$project_creator = get_userdata($project_data['created_by']);\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_project_creator\" method=\"post\">\r\n+\t\u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+    \t    \u003Clabel class=\"wppm_ct_field_label\" for=\"user_name\">\u003C?php echo esc_html_e('Project Creator Name','taskbuilder') ?> \u003C\u002Flabel>\r\n+\t\t\t\u003Cinput type=\"text\" id=\"project_creator_name\" class=\"form-control wppm_regi_user_autocomplete ui-autocomplete-input\" name=\"wppm_project_creator_name\" autocomplete=\"off\" value=\"\u003C?php echo ((esc_attr($project_creator->display_name)))?>\">\r\n+   \t    \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_change_project_raised_by\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_project_raised_by' ) ); ?>\">\r\n+    \u003Cinput type=\"hidden\" name=\"wppm_user_id\" id=\"wppm_user_id\" value=\"\u003C?php echo esc_attr($project_creator->ID) ?>\">\r\n+    \u003Cinput type=\"hidden\" name=\"project_id\" value=\"\u003C?php echo (esc_attr($project_id)) ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003Cstyle>\r\n+    li {\r\n+        color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;wppm_edit_project_details\r\n+    }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript type=\"text\u002Fjavascript\">\r\n+\tjQuery(document).ready(function(){\r\n+  \tjQuery( \".wppm_regi_user_autocomplete\" ).autocomplete({\r\n+        minLength: 1,\r\n+        appendTo: jQuery('.wppm_regi_user_autocomplete').parent(),\r\n+        source: function( request, response ) {\r\n+            var term = request.term;\r\n+            request = {\r\n+                action : 'wppm_filter_autocomplete',\r\n+                term : term,\r\n+                field : 'project_creator_name'\r\n+            }\r\n+            jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\r\n+                response(data);\r\n+            });\t\r\n+\t\t\t},\r\n+        minLength: 2,\r\n+            select: function (event, ui) {\r\n+                jQuery('#wppm_project_creator_name').val(ui.item.value);\r\n+                jQuery('#wppm_user_id').val(ui.item.user_id);\r\n+            }\r\n+\t\t});\r\n+\t\r\n+\t});\r\n+\u003C\u002Fscript>\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_change_project_raised_by(\u003C?php echo esc_attr($project_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php \r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,148 +1,148 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $wpdb,$wppmfunction,$current_user;\n-$id  = isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : '' ;\n-$id = absint($id);\n-$project = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project where id = %d\", $id) );\n-$project_data = $wppmfunction->get_project($id);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_details',$id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {exit;}\n-$category_id = sanitize_text_field($project_data['cat_id']);\n-$categories = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories\");\n-$wppm_project_time = get_option('wppm_project_time');\n-$settings = get_option(\"wppm-ap-modal\");\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_edit_project_deatils\" method=\"post\">\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-    \t    \u003Clabel class=\"wppm_edit_project_label\" for=\"wppm_edit_project_label\">\u003C?php echo esc_html_e('Project','taskbuilder') ?> \u003C\u002Flabel>\n-\t    \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-    \t    \u003Cinput type=\"text\" class=\"wppm_edit_project_label form-control\" name=\"wppm_edit_project_label\" id=\"wppm_edit_project_label\" value=\"\u003C?php echo esc_attr($project_data['project_name']) ?>\">\n-\t    \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-    \t    \u003Clabel class=\"wppm_edit_project_start_date\" for=\"wppm_edit_project_start_date\">\u003C?php echo esc_html_e('Start Date','taskbuilder') ?> \u003C\u002Flabel>\n-\t    \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-        \u003Cdiv class=\"col-sm-12\">\n-            \u003Cinput name=\"wppm_edit_project_start_date\" class=\"form-control\" id=\"wppm_edit_project_start_date\" type=\"text\" value=\"\u003C?php echo esc_attr($project_data['start_date']) ?>\" size=\"40\" aria-required=\"true\">\u003Cbr>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-    \t    \u003Clabel class=\"wppm_edit_project_end_date\" for=\"wppm_edit_project_end_date\">\u003C?php echo esc_html_e('End Date','taskbuilder') ?> \u003C\u002Flabel>\n-\t    \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-        \u003Cdiv class=\"col-sm-12\">\n-            \u003Cinput name=\"wppm_edit_project_end_date\" class=\"form-control\" id=\"wppm_edit_project_end_date\" type=\"text\" value=\"\u003C?php echo esc_attr($project_data['end_date']) ?>\" size=\"40\" aria-required=\"true\">\u003Cbr>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-            \u003Clabel class=\"wppm_edit_project_category_label\" for=\"wppm_edit_project_category_label\" id=\"wppm_edit_project_category_label\">\u003C?php esc_html_e('Project Category','taskbuilder');?>\u003C\u002Flabel>\n-\t    \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-        \u003Cdiv class=\"col-sm-12\">              \n-            \u003Cselect class=\"form-control\" name=\"wppm_edit_project_category\" id=\"wppm_edit_project_category\">\n-                \u003Coption>\u003C\u002Foption>\n-                \u003C?php\n-                if(!empty($categories)){\n-                    foreach ( $categories as $category ) :\n-                        $selected = $category_id == $category->id ? 'selected=\"selected\"' : '';\n-                        echo '\u003Coption '.esc_attr($selected).' value=\"'.esc_attr($category->id).'\">'.esc_html($category->name).'\u003C\u002Foption>';\n-                    endforeach;\n-                }\n-                ?>\n-            \u003C\u002Fselect>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-        \u003Cdiv class=\"col-sm-12\">\n-            \u003Clabel class=\"wppm_edit_project_description_label\" id=\"wppm_edit_project_description_label\">\n-                \u003C?php esc_html_e('Description','taskbuilder');?>\n-            \u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-        \u003Cdiv class=\"col-sm-12\">\n-            \u003Ctextarea id=\"wppm_edit_project_description\" class=\"form-control\" name=\"wppm_edit_project_description\">\n-                \u003C?php echo !empty($project_data['description']) ? wp_kses_post(wpautop($project_data['description'])) : ''; ?>\n-            \u003C\u002Ftextarea>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_change_project_details\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_project_details' ) ); ?>\">\n-    \u003Cinput type=\"hidden\" name=\"project_id\" value=\"\u003C?php echo (esc_attr($id)) ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003Cscript>\n-jQuery( document ).ready( function( jQuery ) {\n-\n-    jQuery(\"#wppm_edit_project_start_date\").flatpickr({\n-        enableTime: \u003C?php echo ($wppm_project_time == 1) ? 'true' : 'false' ?>,\n-        dateFormat: \"Y-m-d \u003C?php echo ($wppm_project_time == 1) ? 'H:i': '' ?>\",\n-        defaultDate: \"today\"\n-    });\n-    jQuery(\"#wppm_edit_project_end_date\").flatpickr({\n-        enableTime: \u003C?php echo ($wppm_project_time==1) ? 'true' : 'false' ?>,\n-        dateFormat: \"Y-m-d \u003C?php echo ($wppm_project_time==1) ? 'H:i': '' ?>\",\n-        defaultDate: \"today\"\n-        \u002F\u002FminDate: startdate\n-    });\n-    tinymce.remove();\n-    tinymce.init({ \n-        selector:'#wppm_edit_project_description',\n-        body_id: 'wppm_edit_project_description',\n-        directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\n-        menubar: false,\n-        statusbar: false,\n-        height : '200',\n-        width  : '100%', \n-        plugins: [\n-            'lists link image directionality paste'\n-        ],\n-        image_advtab: true,\n-        toolbar: 'bold italic underline blockquote | alignleft aligncenter alignright | bullist numlist | rtl | link image',\n-        branding: false,\n-        autoresize_bottom_margin: 20,\n-        browser_spellcheck : true,\n-        relative_urls : false,\n-        remove_script_host : false,\n-        convert_urls : true,\n-        paste_as_text: true,\n-        content_style: \n-        `body {\n-              color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\n-          }`,\n-        setup: function (editor) {\n-        }\n-    });\n-});\n-\u003C\u002Fscript>\n-\u003C?php\n-$body = ob_get_clean();\n-\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_change_project_details(\u003C?php echo esc_attr($id)?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-echo wp_json_encode($output);\n-?>\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$id  = isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : '' ;\r\n+$id = absint($id);\r\n+$project = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project where id = %d\", $id) );\r\n+$project_data = $wppmfunction->get_project($id);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_details',$id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {exit;}\r\n+$category_id = sanitize_text_field($project_data['cat_id']);\r\n+$categories = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories\");\r\n+$wppm_project_time = get_option('wppm_project_time');\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_edit_project_deatils\" method=\"post\">\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+    \t    \u003Clabel class=\"wppm_edit_project_label\" for=\"wppm_edit_project_label\">\u003C?php echo esc_html_e('Project','taskbuilder') ?> \u003C\u002Flabel>\r\n+\t    \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+    \t    \u003Cinput type=\"text\" class=\"wppm_edit_project_label form-control\" name=\"wppm_edit_project_label\" id=\"wppm_edit_project_label\" value=\"\u003C?php echo esc_attr($project_data['project_name']) ?>\">\r\n+\t    \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+    \t    \u003Clabel class=\"wppm_edit_project_start_date\" for=\"wppm_edit_project_start_date\">\u003C?php echo esc_html_e('Start Date','taskbuilder') ?> \u003C\u002Flabel>\r\n+\t    \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+        \u003Cdiv class=\"col-sm-12\">\r\n+            \u003Cinput name=\"wppm_edit_project_start_date\" class=\"form-control\" id=\"wppm_edit_project_start_date\" type=\"text\" value=\"\u003C?php echo esc_attr($project_data['start_date']) ?>\" size=\"40\" aria-required=\"true\">\u003Cbr>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+    \t    \u003Clabel class=\"wppm_edit_project_end_date\" for=\"wppm_edit_project_end_date\">\u003C?php echo esc_html_e('End Date','taskbuilder') ?> \u003C\u002Flabel>\r\n+\t    \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+        \u003Cdiv class=\"col-sm-12\">\r\n+            \u003Cinput name=\"wppm_edit_project_end_date\" class=\"form-control\" id=\"wppm_edit_project_end_date\" type=\"text\" value=\"\u003C?php echo esc_attr($project_data['end_date']) ?>\" size=\"40\" aria-required=\"true\">\u003Cbr>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+            \u003Clabel class=\"wppm_edit_project_category_label\" for=\"wppm_edit_project_category_label\" id=\"wppm_edit_project_category_label\">\u003C?php esc_html_e('Project Category','taskbuilder');?>\u003C\u002Flabel>\r\n+\t    \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+        \u003Cdiv class=\"col-sm-12\">              \r\n+            \u003Cselect class=\"form-control\" name=\"wppm_edit_project_category\" id=\"wppm_edit_project_category\">\r\n+                \u003Coption>\u003C\u002Foption>\r\n+                \u003C?php\r\n+                if(!empty($categories)){\r\n+                    foreach ( $categories as $category ) :\r\n+                        $selected = $category_id == $category->id ? 'selected=\"selected\"' : '';\r\n+                        echo '\u003Coption '.esc_attr($selected).' value=\"'.esc_attr($category->id).'\">'.esc_html($category->name).'\u003C\u002Foption>';\r\n+                    endforeach;\r\n+                }\r\n+                ?>\r\n+            \u003C\u002Fselect>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+        \u003Cdiv class=\"col-sm-12\">\r\n+            \u003Clabel class=\"wppm_edit_project_description_label\" id=\"wppm_edit_project_description_label\">\r\n+                \u003C?php esc_html_e('Description','taskbuilder');?>\r\n+            \u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+        \u003Cdiv class=\"col-sm-12\">\r\n+            \u003Ctextarea id=\"wppm_edit_project_description\" class=\"form-control\" name=\"wppm_edit_project_description\">\r\n+                \u003C?php echo !empty($project_data['description']) ? wp_kses_post(wpautop($project_data['description'])) : ''; ?>\r\n+            \u003C\u002Ftextarea>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_change_project_details\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_project_details' ) ); ?>\">\r\n+    \u003Cinput type=\"hidden\" name=\"project_id\" value=\"\u003C?php echo (esc_attr($id)) ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003Cscript>\r\n+jQuery( document ).ready( function( jQuery ) {\r\n+\r\n+    jQuery(\"#wppm_edit_project_start_date\").flatpickr({\r\n+        enableTime: \u003C?php echo ($wppm_project_time == 1) ? 'true' : 'false' ?>,\r\n+        dateFormat: \"Y-m-d \u003C?php echo ($wppm_project_time == 1) ? 'H:i': '' ?>\",\r\n+        defaultDate: \"today\"\r\n+    });\r\n+    jQuery(\"#wppm_edit_project_end_date\").flatpickr({\r\n+        enableTime: \u003C?php echo ($wppm_project_time==1) ? 'true' : 'false' ?>,\r\n+        dateFormat: \"Y-m-d \u003C?php echo ($wppm_project_time==1) ? 'H:i': '' ?>\",\r\n+        defaultDate: \"today\"\r\n+        \u002F\u002FminDate: startdate\r\n+    });\r\n+    tinymce.remove();\r\n+    tinymce.init({ \r\n+        selector:'#wppm_edit_project_description',\r\n+        body_id: 'wppm_edit_project_description',\r\n+        directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\r\n+        menubar: false,\r\n+        statusbar: false,\r\n+        height : '200',\r\n+        width  : '100%', \r\n+        plugins: [\r\n+            'lists link image directionality paste'\r\n+        ],\r\n+        image_advtab: true,\r\n+        toolbar: 'bold italic underline blockquote | alignleft aligncenter alignright | bullist numlist | rtl | link image',\r\n+        branding: false,\r\n+        autoresize_bottom_margin: 20,\r\n+        browser_spellcheck : true,\r\n+        relative_urls : false,\r\n+        remove_script_host : false,\r\n+        convert_urls : true,\r\n+        paste_as_text: true,\r\n+        content_style: \r\n+        `body {\r\n+              color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\r\n+          }`,\r\n+        setup: function (editor) {\r\n+        }\r\n+    });\r\n+});\r\n+\u003C\u002Fscript>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_change_project_details(\u003C?php echo esc_attr($id)?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+echo wp_json_encode($output);\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,50 +1,50 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$project_id  = isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : '' ;\n-$project_data = $wppmfunction->get_project($project_id);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_status',$project_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {exit;}\n-$statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses\");\n-$status_id   \t= $project_data['status'];\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_project_change_status\" method=\"post\">\n-\t\u003Cdiv class=\"form-group\">\n-\t\t\u003Clabel for=\"wppm_project_status\" class=\"wppm_project_status\">\u003C?php echo esc_html_e('Project Status','taskbuilder');?>\u003C\u002Flabel>\n-\t\t\u003Cselect class=\"form-control\" name=\"wppm_project_status\">\n-\t\t\t\u003C?php\n-\t\t\tif(!empty($statuses)){\n-\t\t\t\tforeach ( $statuses as $status ) :\n-\t\t\t\t\t$selected = $status_id == $status->id ? 'selected=\"selected\"' : '';\n-\t\t\t\t\techo '\u003Coption '.esc_attr($selected).' value=\"'.esc_attr($status->id).'\">'.esc_html($status->name).'\u003C\u002Foption>';\n-\t\t\t\tendforeach;\n-\t\t\t}\n-\t\t\t?>\n-\t\t\u003C\u002Fselect>\n-\t\u003C\u002Fdiv>\n-\t\u003C?php do_action('wppm_after_edit_change_project_status',$project_id);?>\n-  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_change_project_status\" \u002F>\n-  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_project_status' ) ); ?>\">\n-  \u003Cinput type=\"hidden\" id=\"wppm_project_id\" name=\"project_id\" value=\"\u003C?php echo (esc_attr($project_id)); ?>\" \u002F>\n-\t\n-\n-\u003C\u002Fform>\n-\u003C?php\n-$body = ob_get_clean();\n-\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_change_project_status(\u003C?php echo esc_js($project_id)?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n-echo wp_json_encode($output);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$project_id  = isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : '' ;\r\n+$project_data = $wppmfunction->get_project($project_id);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_status',$project_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {exit;}\r\n+$statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses\");\r\n+$status_id   \t= $project_data['status'];\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_project_change_status\" method=\"post\">\r\n+\t\u003Cdiv class=\"form-group\">\r\n+\t\t\u003Clabel for=\"wppm_project_status\" class=\"wppm_project_status\">\u003C?php echo esc_html_e('Project Status','taskbuilder');?>\u003C\u002Flabel>\r\n+\t\t\u003Cselect class=\"form-control\" name=\"wppm_project_status\">\r\n+\t\t\t\u003C?php\r\n+\t\t\tif(!empty($statuses)){\r\n+\t\t\t\tforeach ( $statuses as $status ) :\r\n+\t\t\t\t\t$selected = $status_id == $status->id ? 'selected=\"selected\"' : '';\r\n+\t\t\t\t\techo '\u003Coption '.esc_attr($selected).' value=\"'.esc_attr($status->id).'\">'.esc_html($status->name).'\u003C\u002Foption>';\r\n+\t\t\t\tendforeach;\r\n+\t\t\t}\r\n+\t\t\t?>\r\n+\t\t\u003C\u002Fselect>\r\n+\t\u003C\u002Fdiv>\r\n+\t\u003C?php do_action('wppm_after_edit_change_project_status',$project_id);?>\r\n+  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_change_project_status\" \u002F>\r\n+  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_project_status' ) ); ?>\">\r\n+  \u003Cinput type=\"hidden\" id=\"wppm_project_id\" name=\"project_id\" value=\"\u003C?php echo (esc_attr($project_id)); ?>\" \u002F>\r\n+\t\r\n+\r\n+\u003C\u002Fform>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_change_project_status(\u003C?php echo esc_js($project_id)?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n+echo wp_json_encode($output);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_thread.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_thread.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_thread.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_thread.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,89 +1,89 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $wpdb,$wppmfunction,$current_user;\n-$comment_id = isset($_POST['comment_id']) ? absint(sanitize_text_field(wp_unslash($_POST['comment_id']))) : '' ;\n-$proj_id  = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-$project_data = $wppmfunction->get_project($proj_id);\n-$project_comment = $wppmfunction->get_proj_comment($comment_id);\n-$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\n-$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\n-$settings = get_option(\"wppm-ap-modal\");\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_proj_comment_permission('edit_proj_comment',$proj_id,$comment_id) || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-ob_start();\n-?>\n-\u003Cform id=\"frm_edit_proj_thread\" method=\"post\">\n-\t\u003Cdiv>\n-        \u003Ctextarea id=\"wppm_edit_proj_thread_editor\">\n-        \u003C?php echo !empty($project_comment['body']) ? wp_kses_post(wpautop($project_comment['body'])) : ''; ?>\n-        \u003C\u002Ftextarea>\n-\t\u003C\u002Fdiv>\n-  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_edit_proj_thread\" \u002F>\n-  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_proj_thread' ) ); ?>\">\n-  \u003Cinput type=\"hidden\" id=\"wppm_proj_id\" name=\"proj_id\" value=\"\u003C?php echo (esc_attr($proj_id)) ?>\" \u002F>\n-  \u003Cinput type=\"hidden\" id=\"wppm_proj_comment_id\" name=\"proj_comment_id\" value=\"\u003C?php echo (esc_attr($comment_id)) ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003Cscript>\n-jQuery( document ).ready( function( jQuery ) { \u003C?php\n-      if((!empty($wppm_rich_text_editor)) && ($wppm_rich_text_editor == 1)){ \n-        $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :\"\";\n-        $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :\"\";   \n-        $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :\"\";   \n-        $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :\"\";   \n-        $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)?  ' alignleft aligncenter alignright ' :\"\";   \n-        $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :\"\"; \n-        $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :\"\";     \n-        $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :\"\";     \n-        $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :\"\"; \n-        $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :\"\";     \n-        $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :\"\"; \n-        $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :\"\"; \n-        $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :\"\"; \n-        $toolbar = trim(\"$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough\");?>\n-        tinymce.remove();\n-        tinymce.init({ \n-          selector:'#wppm_edit_proj_thread_editor',\n-          body_id: 'wppm_edit_proj_thread_editor',\n-          directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\n-          menubar: false,\n-          statusbar: false,\n-          height : '200',\n-          width  : '100%', \n-          plugins: [\n-              'lists link image directionality'\n-          ],\n-          image_advtab: true,\n-          toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>',        \n-          branding: false,\n-          autoresize_bottom_margin: 20,\n-          browser_spellcheck : true,\n-          relative_urls : false,\n-          remove_script_host : false,\n-          convert_urls : true,\n-          content_style: \n-          `body {\n-                color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\n-            }`,\n-          setup: function (editor) {\n-          }\n-         });\n-         \u003C?php } ?>\n-      }); \n-\u003C?php\n-$body = ob_get_clean();\n-\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_edit_proj_thread(\u003C?php echo esc_attr($proj_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$comment_id = isset($_POST['comment_id']) ? absint(sanitize_text_field(wp_unslash($_POST['comment_id']))) : '' ;\r\n+$proj_id  = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+$project_data = $wppmfunction->get_project($proj_id);\r\n+$project_comment = $wppmfunction->get_proj_comment($comment_id);\r\n+$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\r\n+$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_proj_comment_permission('edit_proj_comment',$proj_id,$comment_id) || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_edit_proj_thread\" method=\"post\">\r\n+\t\u003Cdiv>\r\n+        \u003Ctextarea id=\"wppm_edit_proj_thread_editor\">\r\n+        \u003C?php echo !empty($project_comment['body']) ? wp_kses_post(wpautop($project_comment['body'])) : ''; ?>\r\n+        \u003C\u002Ftextarea>\r\n+\t\u003C\u002Fdiv>\r\n+  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_edit_proj_thread\" \u002F>\r\n+  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_proj_thread' ) ); ?>\">\r\n+  \u003Cinput type=\"hidden\" id=\"wppm_proj_id\" name=\"proj_id\" value=\"\u003C?php echo (esc_attr($proj_id)) ?>\" \u002F>\r\n+  \u003Cinput type=\"hidden\" id=\"wppm_proj_comment_id\" name=\"proj_comment_id\" value=\"\u003C?php echo (esc_attr($comment_id)) ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003Cscript>\r\n+jQuery( document ).ready( function( jQuery ) { \u003C?php\r\n+      if((!empty($wppm_rich_text_editor)) && ($wppm_rich_text_editor == 1)){ \r\n+        $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :\"\";\r\n+        $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :\"\";   \r\n+        $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :\"\";   \r\n+        $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :\"\";   \r\n+        $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)?  ' alignleft aligncenter alignright ' :\"\";   \r\n+        $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :\"\"; \r\n+        $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :\"\";     \r\n+        $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :\"\";     \r\n+        $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :\"\"; \r\n+        $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :\"\";     \r\n+        $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :\"\"; \r\n+        $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :\"\"; \r\n+        $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :\"\"; \r\n+        $toolbar = trim(\"$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough\");?>\r\n+        tinymce.remove();\r\n+        tinymce.init({ \r\n+          selector:'#wppm_edit_proj_thread_editor',\r\n+          body_id: 'wppm_edit_proj_thread_editor',\r\n+          directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\r\n+          menubar: false,\r\n+          statusbar: false,\r\n+          height : '200',\r\n+          width  : '100%', \r\n+          plugins: [\r\n+              'lists link image directionality'\r\n+          ],\r\n+          image_advtab: true,\r\n+          toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>',        \r\n+          branding: false,\r\n+          autoresize_bottom_margin: 20,\r\n+          browser_spellcheck : true,\r\n+          relative_urls : false,\r\n+          remove_script_host : false,\r\n+          convert_urls : true,\r\n+          content_style: \r\n+          `body {\r\n+                color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\r\n+            }`,\r\n+          setup: function (editor) {\r\n+          }\r\n+         });\r\n+         \u003C?php } ?>\r\n+      }); \r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_edit_proj_thread(\u003C?php echo esc_attr($proj_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks_kanban_view.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks_kanban_view.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks_kanban_view.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks_kanban_view.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,86 +1,86 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$current_user,$wppmfunction;\n-$id = isset($_POST) && isset($_POST['id']) ? intval(sanitize_text_field($_POST['id'])) : 0;\n-if (!isset($id)) {exit;}\n-$appearance_settings = get_option(\"wppm-ap-individual-project\");\n-$settings = get_option(\"wppm-ap-modal\");\n-$wppm_public_projects_permission = get_option('wppm_public_projects_permission');\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$project = $wpdb->get_row( \"SELECT * FROM {$wpdb->prefix}wppm_project where id = '\".esc_sql($id).\"'\" );\n-$orderby_sql = esc_sql(sanitize_sql_orderby(\"create_time DESC\"));\n-$project_data = $wppmfunction->get_project($id);\n-$project_users = explode(\",\",$project_data['users']);\n- if(!empty($id)){\n-    $public_proj_meta = $wpdb->get_var( \"SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta where project_id= '\".esc_sql($id).\"' AND meta_key='public_project'\");\n-}else{\n-    $public_proj_meta =\"\";\n-}\n-?>\n-\u003Cform id=\"wppm_open_project_kanban_view\" method=\"post\">\n-  \u003Cdiv class=\"row\">\n-    \u003Cdiv class=\"col-sm-12\">\n-      \u003Cspan class=\"wppm-heading-inline\">\u003C?php echo esc_html_e($project->project_name,'taskbuilder');?>\u003C\u002Fspan>\n-      \u003Cspan class=\"wppm-add-new-btn btn-primary\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" id=\"wppm_proj_overview_btn\" onclick=\"wppm_open_project(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id=\"wppm_add_new_project_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus_icon.svg'); ?>\" alt=\"plus_icon\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Overview','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_list\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" onclick=\"wppm_get_project_list()\" >\u003Cspan style=\"margin-right:5px;\">\u003Cimg id =\"wppm_project_list_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist-symbol.svg'); ?>\" alt=\"list-symbol\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Project List','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-      \u003C?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_project_permission('delete_project',$project->id))  || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))? \"display:inline\":\"display:none\"; ?>\n-      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_delete_project_btn\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;\u003C?php echo esc_attr($style) ?>\" onclick=\"wppm_delete_project(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id=\"wppm_delete_project_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdelete2.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Delete','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-      \u003C?php $visibility_style = (($current_user->ID && ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) && ($wppm_public_projects_permission==1))? \"display:inline\":\"display:none\"; ?>\n-      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_visibility\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;\u003C?php echo esc_attr($visibility_style) ?>\" onclick=\"wppm_get_project_visibility(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id =\"wppm_task_list_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwppm_visibility.svg'); ?>\" alt=\"project_visibility\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Project Visibility','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-   \u003Cdiv class=\"wppm_bootstrap\">\n-        \u003Cdiv id=\"wppm_task_container\" class=\"wppm-project-tasks-container\" style=\"margin-top:15px;\">\u003C?php include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php'; ?>\u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\n-          \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\n-          \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003C!-- Pop-up snippet start -->\n-      \u003Cdiv id=\"wppm_task_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\n-      \u003Cdiv id=\"wppm_task_popup_container\" style=\"display:none;\">\n-        \u003Cdiv class=\"wppm_bootstrap\">\n-          \u003Cdiv class=\"row\">\n-            \u003Cdiv id=\"wppm_task_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n-              \u003Cdiv id=\"wppm_task_popup_title\" class=\"row\" >\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\n-              \u003Cdiv id=\"wppm_task_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\n-              \u003Cdiv id=\"wppm_task_popup_footer\" class=\"row\">\n-                \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-                \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003Cstyle>\n-        #wppm_task_popup_title{\n-          background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\n-        }\n-        #wppm_task_popup_title h3{\n-          color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\n-        }\n-        #wppm_task_popup_body{\n-          background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\n-        }\n-        #wppm_task_popup_body label{\n-          color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\n-        }\n-        #wppm_task_popup_body input{\n-          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-        }\n-        #wppm_task_popup_body select{\n-          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-        }\n-        #wppm_task_popup_body span {\n-          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-        }\n-        #wppm_task_popup_body .select2-results__options {\n-          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-        }\n-      \u003C\u002Fstyle>\n-    \u003Cinput type = \"hidden\" name=\"wppm_proj_id\" id=\"wppm_proj_id\" value=\"\u003C?php echo esc_attr($id);?>\">\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$current_user,$wppmfunction;\r\n+$id = isset($_POST) && isset($_POST['id']) ? intval(sanitize_text_field($_POST['id'])) : 0;\r\n+if (!isset($id)) {exit;}\r\n+$appearance_settings = get_option(\"wppm-ap-individual-project\");\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+$wppm_public_projects_permission = get_option('wppm_public_projects_permission');\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$project = $wpdb->get_row( \"SELECT * FROM {$wpdb->prefix}wppm_project where id = '\".esc_sql($id).\"'\" );\r\n+$orderby_sql = esc_sql(sanitize_sql_orderby(\"create_time DESC\"));\r\n+$project_data = $wppmfunction->get_project($id);\r\n+$project_users = explode(\",\",$project_data['users']);\r\n+ if(!empty($id)){\r\n+    $public_proj_meta = $wpdb->get_var( \"SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta where project_id= '\".esc_sql($id).\"' AND meta_key='public_project'\");\r\n+}else{\r\n+    $public_proj_meta =\"\";\r\n+}\r\n+?>\r\n+\u003Cform id=\"wppm_open_project_kanban_view\" method=\"post\">\r\n+  \u003Cdiv class=\"row\">\r\n+    \u003Cdiv class=\"col-sm-12\">\r\n+      \u003Cspan class=\"wppm-heading-inline\">\u003C?php echo esc_html_e($project->project_name,'taskbuilder');?>\u003C\u002Fspan>\r\n+      \u003Cspan class=\"wppm-add-new-btn btn-primary\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" id=\"wppm_proj_overview_btn\" onclick=\"wppm_open_project(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id=\"wppm_add_new_project_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus_icon.svg'); ?>\" alt=\"plus_icon\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Overview','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_list\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" onclick=\"wppm_get_project_list()\" >\u003Cspan style=\"margin-right:5px;\">\u003Cimg id =\"wppm_project_list_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist-symbol.svg'); ?>\" alt=\"list-symbol\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Project List','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+      \u003C?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_project_permission('delete_project',$project->id))  || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))? \"display:inline\":\"display:none\"; ?>\r\n+      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_delete_project_btn\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;\u003C?php echo esc_attr($style) ?>\" onclick=\"wppm_delete_project(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id=\"wppm_delete_project_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdelete2.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Delete','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+      \u003C?php $visibility_style = (($current_user->ID && ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) && ($wppm_public_projects_permission==1))? \"display:inline\":\"display:none\"; ?>\r\n+      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_visibility\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;\u003C?php echo esc_attr($visibility_style) ?>\" onclick=\"wppm_get_project_visibility(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id =\"wppm_task_list_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwppm_visibility.svg'); ?>\" alt=\"project_visibility\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Project Visibility','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+   \u003Cdiv class=\"wppm_bootstrap\">\r\n+        \u003Cdiv id=\"wppm_task_container\" class=\"wppm-project-tasks-container\" style=\"margin-top:15px;\">\u003C?php include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php'; ?>\u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+          \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+          \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003C!-- Pop-up snippet start -->\r\n+      \u003Cdiv id=\"wppm_task_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\r\n+      \u003Cdiv id=\"wppm_task_popup_container\" style=\"display:none;\">\r\n+        \u003Cdiv class=\"wppm_bootstrap\">\r\n+          \u003Cdiv class=\"row\">\r\n+            \u003Cdiv id=\"wppm_task_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\r\n+              \u003Cdiv id=\"wppm_task_popup_title\" class=\"row\" >\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\r\n+              \u003Cdiv id=\"wppm_task_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\r\n+              \u003Cdiv id=\"wppm_task_popup_footer\" class=\"row\">\r\n+                \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+                \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cstyle>\r\n+        #wppm_task_popup_title{\r\n+          background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_title h3{\r\n+          color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body{\r\n+          background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\r\n+        }\r\n+        #wppm_task_popup_body label{\r\n+          color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body input{\r\n+          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body select{\r\n+          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body span {\r\n+          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body .select2-results__options {\r\n+          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+        }\r\n+      \u003C\u002Fstyle>\r\n+    \u003Cinput type = \"hidden\" name=\"wppm_proj_id\" id=\"wppm_proj_id\" value=\"\u003C?php echo esc_attr($id);?>\">\r\n \u003C\u002Fform>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,163 +1,163 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-$project_id = isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : 0 ;\n-$project_id = (int)($project_id);\n-$cu_id = (int)($current_user->ID);\n-$appearance_settings = get_option(\"wppm-ap-task-list\");\n-$wppm_task_time = get_option('wppm_task_time');\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if($current_user->has_cap('manage_options') || $wppm_current_user_capability=='wppm_admin'){\n-  $query = $wpdb->prepare(\n-    \"SELECT * FROM {$wpdb->prefix}wppm_task WHERE project = %d\",\n-    $project_id\n-  );\n-} else{\n-  $query = $wpdb->prepare( \"SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task\n-      LEFT JOIN {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\n-      LEFT JOIN {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id\n-      LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\n-      WHERE Task.project = %d AND (FIND_IN_SET(%d, Task.users) > 0 OR Task.created_by = %d OR ( proj_users.user_id = %d AND proj_users.role_id = 1 AND FIND_IN_SET(%d, proj.users) > 0 ) OR ( proj_meta.meta_key = 'public_project' AND proj_meta.meta_value = 1 ) OR proj.created_by = %d ) GROUP BY Task.id\",\n-      $project_id,$cu_id, $cu_id,$cu_id,$cu_id, $cu_id );\n-}\n-$query = apply_filters('wppm_get_project_tasks_query',$query,$project_id);\n-$tasks = $wpdb->get_results($query);\n-ob_start();\n-?>\n-\u003Cform id=\"wppm_get_project_tasks_frm\" name=\"wppm_get_project_tasks_frm\">\n-  \u003Cdiv class=\"table-responsive\">\n-\t\t\u003Ctable id=\"tbl_project_tasks\" class=\"table table-striped table-bordered\" cellspacing=\"0\" width=\"100%\">\n-\t\t\t\t\u003Cthead>\n-  \t\t\t\t\u003Ctr>\n-  \t\t\t\t\t\u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Task id','taskbuilder');?> \u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\" \u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>>\u003C?php echo esc_html_e('Task Name','taskbuilder');?> \u003C\u002Fth>\n-\t\t\t\t\t\t\u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Task Status','taskbuilder');?> \u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Task Priority','taskbuilder');?> \u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Assign To','taskbuilder');?> \u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Start Date','taskbuilder');?> \u003C\u002Fth>\n-  \t\t\t\t  \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('End Date','taskbuilder');?> \u003C\u002Fth>\n-          \u003C\u002Ftr>\n-        \u003C\u002Fthead>\n-        \u003Ctbody>\n-          \u003C?php\n-          if(!empty($tasks)){\n-\t\t\t\t\t\tforeach ($tasks as $task) {\n-              $status = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", (int) $task->status ) );\n-              $users = array();\n-              if($task->users != null){\n-                $users = explode(\",\",$task->users);\n-              }\n-              if(!empty($task->priority)){\n-                $priority = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_task_priorities WHERE id = %d\", (int) $task->priority));\n-              }\n-              if(!empty($task->project)){\n-                $project = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_project WHERE id = %d\",(int) $task->project));\n-              }\n-              if($wppm_task_time == 1){\n-                $task_start_date = $task->start_date;\n-                $task_end_date = $task->end_date;\n-              } elseif($wppm_task_time == 0){\n-                  $tsDate = new DateTime($task->start_date);\n-                  $teDate = new DateTime($task->end_date);\n-                  $task_start_date = $tsDate->format('Y-m-d');\n-                  $task_end_date = $teDate->format('Y-m-d');\n-              }\n-              ?>\n-              \u003Ctr onclick= \"wppm_open_project_tasks(\u003C?php echo esc_attr($task->id) ?>,\u003C?php echo esc_attr($task->project) ?>)\" >\n-                \u003Ctd>\n-                  \u003C?php echo esc_html($task->id); ?>\n-                \u003C\u002Ftd>\n-                \u003Ctd>\n-                  \u003C?php echo esc_html($task->task_name); ?>\n-                \u003C\u002Ftd>\n-                \u003Ctd>\n-                  \u003Cspan class=\"wppm_td_task_status\" style=\"background-color:\u003C?php echo (isset($status->bg_color))? esc_attr($status->bg_color):\"\";?>; color: \u003C?php echo (isset($status->color))? esc_attr($status->color):\"\"; ?>\">\u003C?php echo (isset($status->name))? esc_html($status->name):\"\" ?>\u003C\u002Fspan>\n-                \u003C\u002Ftd>\n-                \u003Ctd>\n-                  \u003Cspan class =\"wppm_td_task_priority\" style=\"background-color:\u003C?php echo (isset($priority->bg_color))? esc_attr($priority->bg_color):\"\";?>; color: \u003C?php echo (isset($priority->color))? esc_attr($priority->color):\"\"; ?>\">\u003C?php echo (isset($priority->name))? esc_html($priority->name):\"\" ?>\u003C\u002Fspan>\n-                \u003C\u002Ftd>\n-                \u003Ctd>\n-                  \u003C?php \n-                    $i=0;\n-                    if(!empty($users)){\n-                      foreach($users as $user){ \n-                        $i++;\n-                        if( $i \u003C= 4 ){\n-                          $userdata = get_userdata( $user ); \n-                          if($userdata){\n-                            ?>\n-                            \u003Ca href=\"#\" title=\"\u003C?php echo esc_attr($userdata->display_name) ?>\">\n-                              \u003C?php echo (get_avatar($userdata->ID, 25, \"mysteryman\"))?>\n-                            \u003C\u002Fa> \u003C?php\n-                          }\n-                        }\n-                      }\n-                    } else {\n-                      esc_html_e('None','taskbuilder');\n-                    }\n-                    if($i > 4){\n-                      ?>\n-                      \u003Ca href=\"#\" class=\"wppm_avatar\">\n-                        \u003Cspan id=\"wppm_avatar\" style=\"background-color:black;\" class=\"avatar\">+\u003C?php echo esc_html($i-4) ?>\u003C\u002Fspan>\n-                      \u003C\u002Fa>\n-                  \u003C?php } ?>\n-                \u003C\u002Ftd>\n-                \u003Ctd>\n-                  \u003C?php echo (isset($task_start_date))? esc_html($task_start_date):\"\"?>\n-                \u003C\u002Ftd>\n-                \u003Ctd>\n-                  \u003C?php echo (isset($task_end_date))? esc_html($task_end_date):\"\"?>\n-                \u003C\u002Ftd>\n-              \u003C\u002Ftr>\n-            \u003C?php } \n-          }\n-          ?>\n-        \u003C\u002Ftbody>\n-\t\t\u003C\u002Ftable>\n-\t\u003C\u002Fdiv>\n-\u003C\u002Fform>\n-\u003Cstyle>\n-  #tbl_project_tasks tr:nth-child(even){\n-    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-even-background-color'])?>;\n-    color:\u003C?php echo esc_attr($appearance_settings['list-item-even-text-color'])?>;\n-  }\n-  #tbl_project_tasks tr:nth-child(odd){\n-    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-odd-background-color'])?>;\n-    color:\u003C?php echo esc_attr($appearance_settings['list-item-odd-text-color'])?>;\n-  }\n-  #tbl_project_tasks tr:hover{\n-    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-hover-background-color'])?>;\n-  }\n-  #tbl_project_tasks tr:hover td{\n-    color: \u003C?php echo esc_attr($appearance_settings['list-item-hover-text-color'])?>;\n-  }\n-\u003C\u002Fstyle>\n-\u003Cscript type=\"text\u002Fjavascript\">\n-  jQuery(document).ready(function() {\n-\tvar table = jQuery('#tbl_project_tasks').DataTable({\n-\t\t\"aLengthMenu\": [[4, 8, 12, -1], [4, 8, 12, \"All\"]],\n-\t\t\"columnDefs\": [\n-\t\t{ orderable: false, targets: -1 }\n-\t\t]\n-\t});\n-\tjQuery('div.dataTables_filter input', table.table().container()).focus();\t\n-} );\n-\u003C\u002Fscript>\n-\u003C?php\n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cdiv class=\"col-md-3\" style=\"text-align: right;\">\n-\t\t\u003Cbutton type=\"button\" class=\"btn \u003C?php echo (isset($project_id))?'wppm_popup_close':'wppm_task_popup_close'?>\" onclick=\"\u003C?php echo (isset($project_id))?'wppm_modal_close();':'wppm_task_modal_close();'?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C\u002Fdiv>\u003C?php\n-\n-$footer = ob_get_clean();\n-\n-$response = array(\n-  'body'      => $body,\n-\t'footer'    => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+$project_id = isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : 0 ;\r\n+$project_id = (int)($project_id);\r\n+$cu_id = (int)($current_user->ID);\r\n+$appearance_settings = get_option(\"wppm-ap-task-list\");\r\n+$wppm_task_time = get_option('wppm_task_time');\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if($current_user->has_cap('manage_options') || $wppm_current_user_capability=='wppm_admin'){\r\n+  $query = $wpdb->prepare(\r\n+    \"SELECT * FROM {$wpdb->prefix}wppm_task WHERE project = %d\",\r\n+    $project_id\r\n+  );\r\n+} else{\r\n+  $query = $wpdb->prepare( \"SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task\r\n+      LEFT JOIN {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\r\n+      LEFT JOIN {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id\r\n+      LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\r\n+      WHERE Task.project = %d AND (FIND_IN_SET(%d, Task.users) > 0 OR Task.created_by = %d OR ( proj_users.user_id = %d AND proj_users.role_id = 1 AND FIND_IN_SET(%d, proj.users) > 0 ) OR ( proj_meta.meta_key = 'public_project' AND proj_meta.meta_value = 1 ) OR proj.created_by = %d ) GROUP BY Task.id\",\r\n+      $project_id,$cu_id, $cu_id,$cu_id,$cu_id, $cu_id );\r\n+}\r\n+$query = apply_filters('wppm_get_project_tasks_query',$query,$project_id);\r\n+$tasks = $wpdb->get_results($query);\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"wppm_get_project_tasks_frm\" name=\"wppm_get_project_tasks_frm\">\r\n+  \u003Cdiv class=\"table-responsive\">\r\n+\t\t\u003Ctable id=\"tbl_project_tasks\" class=\"table table-striped table-bordered\" cellspacing=\"0\" width=\"100%\">\r\n+\t\t\t\t\u003Cthead>\r\n+  \t\t\t\t\u003Ctr>\r\n+  \t\t\t\t\t\u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Task id','taskbuilder');?> \u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\" \u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>>\u003C?php echo esc_html_e('Task Name','taskbuilder');?> \u003C\u002Fth>\r\n+\t\t\t\t\t\t\u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Task Status','taskbuilder');?> \u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Task Priority','taskbuilder');?> \u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Assign To','taskbuilder');?> \u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Start Date','taskbuilder');?> \u003C\u002Fth>\r\n+  \t\t\t\t  \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('End Date','taskbuilder');?> \u003C\u002Fth>\r\n+          \u003C\u002Ftr>\r\n+        \u003C\u002Fthead>\r\n+        \u003Ctbody>\r\n+          \u003C?php\r\n+          if(!empty($tasks)){\r\n+\t\t\t\t\t\tforeach ($tasks as $task) {\r\n+              $status = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", (int) $task->status ) );\r\n+              $users = array();\r\n+              if($task->users != null){\r\n+                $users = explode(\",\",$task->users);\r\n+              }\r\n+              if(!empty($task->priority)){\r\n+                $priority = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_task_priorities WHERE id = %d\", (int) $task->priority));\r\n+              }\r\n+              if(!empty($task->project)){\r\n+                $project = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_project WHERE id = %d\",(int) $task->project));\r\n+              }\r\n+              if($wppm_task_time == 1){\r\n+                $task_start_date = $task->start_date;\r\n+                $task_end_date = $task->end_date;\r\n+              } elseif($wppm_task_time == 0){\r\n+                  $tsDate = new DateTime($task->start_date);\r\n+                  $teDate = new DateTime($task->end_date);\r\n+                  $task_start_date = $tsDate->format('Y-m-d');\r\n+                  $task_end_date = $teDate->format('Y-m-d');\r\n+              }\r\n+              ?>\r\n+              \u003Ctr onclick= \"wppm_open_project_tasks(\u003C?php echo esc_attr($task->id) ?>,\u003C?php echo esc_attr($task->project) ?>)\" >\r\n+                \u003Ctd>\r\n+                  \u003C?php echo esc_html($task->id); ?>\r\n+                \u003C\u002Ftd>\r\n+                \u003Ctd>\r\n+                  \u003C?php echo esc_html($task->task_name); ?>\r\n+                \u003C\u002Ftd>\r\n+                \u003Ctd>\r\n+                  \u003Cspan class=\"wppm_td_task_status\" style=\"background-color:\u003C?php echo (isset($status->bg_color))? esc_attr($status->bg_color):\"\";?>; color: \u003C?php echo (isset($status->color))? esc_attr($status->color):\"\"; ?>\">\u003C?php echo (isset($status->name))? esc_html($status->name):\"\" ?>\u003C\u002Fspan>\r\n+                \u003C\u002Ftd>\r\n+                \u003Ctd>\r\n+                  \u003Cspan class =\"wppm_td_task_priority\" style=\"background-color:\u003C?php echo (isset($priority->bg_color))? esc_attr($priority->bg_color):\"\";?>; color: \u003C?php echo (isset($priority->color))? esc_attr($priority->color):\"\"; ?>\">\u003C?php echo (isset($priority->name))? esc_html($priority->name):\"\" ?>\u003C\u002Fspan>\r\n+                \u003C\u002Ftd>\r\n+                \u003Ctd>\r\n+                  \u003C?php \r\n+                    $i=0;\r\n+                    if(!empty($users)){\r\n+                      foreach($users as $user){ \r\n+                        $i++;\r\n+                        if( $i \u003C= 4 ){\r\n+                          $userdata = get_userdata( $user ); \r\n+                          if($userdata){\r\n+                            ?>\r\n+                            \u003Ca href=\"#\" title=\"\u003C?php echo esc_attr($userdata->display_name) ?>\">\r\n+                              \u003C?php echo (get_avatar($userdata->ID, 25, \"mysteryman\"))?>\r\n+                            \u003C\u002Fa> \u003C?php\r\n+                          }\r\n+                        }\r\n+                      }\r\n+                    } else {\r\n+                      esc_html_e('None','taskbuilder');\r\n+                    }\r\n+                    if($i > 4){\r\n+                      ?>\r\n+                      \u003Ca href=\"#\" class=\"wppm_avatar\">\r\n+                        \u003Cspan id=\"wppm_avatar\" style=\"background-color:black;\" class=\"avatar\">+\u003C?php echo esc_html($i-4) ?>\u003C\u002Fspan>\r\n+                      \u003C\u002Fa>\r\n+                  \u003C?php } ?>\r\n+                \u003C\u002Ftd>\r\n+                \u003Ctd>\r\n+                  \u003C?php echo (isset($task_start_date))? esc_html($task_start_date):\"\"?>\r\n+                \u003C\u002Ftd>\r\n+                \u003Ctd>\r\n+                  \u003C?php echo (isset($task_end_date))? esc_html($task_end_date):\"\"?>\r\n+                \u003C\u002Ftd>\r\n+              \u003C\u002Ftr>\r\n+            \u003C?php } \r\n+          }\r\n+          ?>\r\n+        \u003C\u002Ftbody>\r\n+\t\t\u003C\u002Ftable>\r\n+\t\u003C\u002Fdiv>\r\n+\u003C\u002Fform>\r\n+\u003Cstyle>\r\n+  #tbl_project_tasks tr:nth-child(even){\r\n+    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-even-background-color'])?>;\r\n+    color:\u003C?php echo esc_attr($appearance_settings['list-item-even-text-color'])?>;\r\n+  }\r\n+  #tbl_project_tasks tr:nth-child(odd){\r\n+    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-odd-background-color'])?>;\r\n+    color:\u003C?php echo esc_attr($appearance_settings['list-item-odd-text-color'])?>;\r\n+  }\r\n+  #tbl_project_tasks tr:hover{\r\n+    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-hover-background-color'])?>;\r\n+  }\r\n+  #tbl_project_tasks tr:hover td{\r\n+    color: \u003C?php echo esc_attr($appearance_settings['list-item-hover-text-color'])?>;\r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript type=\"text\u002Fjavascript\">\r\n+  jQuery(document).ready(function() {\r\n+\tvar table = jQuery('#tbl_project_tasks').DataTable({\r\n+\t\t\"aLengthMenu\": [[4, 8, 12, -1], [4, 8, 12, \"All\"]],\r\n+\t\t\"columnDefs\": [\r\n+\t\t{ orderable: false, targets: -1 }\r\n+\t\t]\r\n+\t});\r\n+\tjQuery('div.dataTables_filter input', table.table().container()).focus();\t\r\n+} );\r\n+\u003C\u002Fscript>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"col-md-3\" style=\"text-align: right;\">\r\n+\t\t\u003Cbutton type=\"button\" class=\"btn \u003C?php echo (isset($project_id))?'wppm_popup_close':'wppm_task_popup_close'?>\" onclick=\"\u003C?php echo (isset($project_id))?'wppm_modal_close();':'wppm_task_modal_close();'?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C\u002Fdiv>\u003C?php\r\n+\r\n+$footer = ob_get_clean();\r\n+\r\n+$response = array(\r\n+  'body'      => $body,\r\n+\t'footer'    => $footer\r\n+);\r\n+\r\n echo wp_json_encode($response);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,47 +1,47 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-} \n-global $current_user,$wpdb,$wppmfunction;\n-$project_id  = isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : '' ;\n-$project = $wppmfunction->get_project($project_id);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$public_project=$wppmfunction->get_project_meta($project_id,'public_project',true);\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || ($current_user->ID && $current_user->has_cap('wppm_admin')) || ($project['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) {exit;}\n-ob_start();\n-?>\n-\u003Cdiv class=\"row\">\n-    \u003Cdiv class=\"col-sm-12\">\n-        \u003Cspan>\n-        \u003Clabel>\u003C?php echo esc_html_e('Change Project visibility','taskbuilder');?>\u003C\u002Flabel>\n-        \u003C\u002Fspan>\u003Cbr>\n-        \u003Cinput type=\"checkbox\" name=\"wppm_project_visibility_option\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($public_project))==0 || (esc_attr($public_project)==\"\")) ?'checked=\"checked\"':'';?> onchange=\"wppm_select_project_visibility(\u003C?php echo esc_attr($project_id) ?>)\">\n-        \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Private','taskbuilder');?>\u003C\u002Fspan>\n-        \u003Cbr>\n-        \u003Cinput type=\"checkbox\" name=\"wppm_project_visibility_option\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($public_project))==1) ?'checked=\"checked\"':'';?> onchange=\"wppm_select_project_visibility(\u003C?php echo esc_attr($project_id) ?>)\">\n-        \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Public','taskbuilder');?>\u003C\u002Fspan>\n-        \u003Cbr>\n-    \u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003Cinput type=\"hidden\" name=\"wppm_proj_visibility_ajax_nonce\" id=\"wppm_proj_visibility_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_change_project_visibility' ) ); ?>\">\n-\u003Cscript>\n-jQuery(document).ready(function(){\n-  jQuery('input:checkbox').click(function() {\n-    jQuery('input:checkbox').not(this).prop('checked', false);\n-  });\n-});\n-\u003C?php\n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\"  onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-\n-$footer = ob_get_clean();\n-\n-$response = array(\n-   'body'      => $body,\n-   'footer'    => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+} \r\n+global $current_user,$wpdb,$wppmfunction;\r\n+$project_id  = isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : '' ;\r\n+$project = $wppmfunction->get_project($project_id);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$public_project=$wppmfunction->get_project_meta($project_id,'public_project',true);\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || ($current_user->ID && $current_user->has_cap('wppm_admin')) || ($project['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) {exit;}\r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"row\">\r\n+    \u003Cdiv class=\"col-sm-12\">\r\n+        \u003Cspan>\r\n+        \u003Clabel>\u003C?php echo esc_html_e('Change Project visibility','taskbuilder');?>\u003C\u002Flabel>\r\n+        \u003C\u002Fspan>\u003Cbr>\r\n+        \u003Cinput type=\"checkbox\" name=\"wppm_project_visibility_option\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($public_project))==0 || (esc_attr($public_project)==\"\")) ?'checked=\"checked\"':'';?> onchange=\"wppm_select_project_visibility(\u003C?php echo esc_attr($project_id) ?>)\">\r\n+        \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Private','taskbuilder');?>\u003C\u002Fspan>\r\n+        \u003Cbr>\r\n+        \u003Cinput type=\"checkbox\" name=\"wppm_project_visibility_option\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($public_project))==1) ?'checked=\"checked\"':'';?> onchange=\"wppm_select_project_visibility(\u003C?php echo esc_attr($project_id) ?>)\">\r\n+        \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Public','taskbuilder');?>\u003C\u002Fspan>\r\n+        \u003Cbr>\r\n+    \u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003Cinput type=\"hidden\" name=\"wppm_proj_visibility_ajax_nonce\" id=\"wppm_proj_visibility_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_change_project_visibility' ) ); ?>\">\r\n+\u003Cscript>\r\n+jQuery(document).ready(function(){\r\n+  jQuery('input:checkbox').click(function() {\r\n+    jQuery('input:checkbox').not(this).prop('checked', false);\r\n+  });\r\n+});\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\"  onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+\r\n+$footer = ob_get_clean();\r\n+\r\n+$response = array(\r\n+   'body'      => $body,\r\n+   'footer'    => $footer\r\n+);\r\n+\r\n echo wp_json_encode($response);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_proj_thread_attachment_remove.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_proj_thread_attachment_remove.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_proj_thread_attachment_remove.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_proj_thread_attachment_remove.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,47 +1,47 @@\n-\u003C?php \n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wppmfunction, $wpdb;\n-if ( check_ajax_referer( 'wppm_remove_proj_thread_attachment', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-  }\n-$attachment     = isset($_POST['attachment']) ? absint(wp_unslash($_POST['attachment'])) : '0' ;\n-$attachment = esc_sql($attachment);\n-$comment_id = isset($_POST['comment_id']) ? absint(wp_unslash($_POST['comment_id'])) : '0' ;\n-$comment_id  = esc_sql($comment_id );\n-$proj_id = isset($_POST['proj_id']) ? absint(wp_unslash($_POST['proj_id'])) : '0' ;\n-$proj_id  = esc_sql($proj_id );\n-$proj_comment = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_comment WHERE id = %d AND proj_id = %d\",absint($comment_id), absint($proj_id)));\n-if(!(((!empty($proj_comment)) && ($proj_comment->created_by == $current_user->ID)) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$proj_id,$comment_id)))){\n-  exit;\n-}\n-$result = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\", $attachment));\n-$sql_query = $wpdb->prepare( \"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\", $result->file_path );\n-$attach_result=$wpdb->get_results($sql_query);\n-$result_count = count($attach_result);\n-if(file_exists($result->file_path) && $result_count \u003C 2)\n-{\n-\twp_delete_file($result->file_path);\n-}\n-$success = $wpdb->delete( \n-\t$wpdb->prefix . 'wppm_attachments', \n-\tarray( 'id' => $attachment ) \n-);\n-if( !$success ) return false;\n-$proj_attachment = $wpdb->get_var( $wpdb->prepare( \"SELECT attachment_ids FROM {$wpdb->prefix}wppm_project_comment WHERE id = %d\", $comment_id ));\n-$proj_attachment = explode(\",\",$proj_attachment);\n-if(!empty($proj_attachment)){\n-\tforeach($proj_attachment as $key=>$val){\n-\t\tif($val == $attachment){\n-\t\t\tunset($proj_attachment[$key]);\n-\t\t}\n-\t}\n-}\n-$pattachment = implode(',',$proj_attachment);\n-$values=array(\n-\t'attachment_ids'=>$pattachment\n-);\n-$wpdb->update($wpdb->prefix.'wppm_project_comment', $values, array('id'=>\"$comment_id\"));\n+\u003C?php \r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wppmfunction, $wpdb;\r\n+if ( check_ajax_referer( 'wppm_remove_proj_thread_attachment', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+  }\r\n+$attachment     = isset($_POST['attachment']) ? absint(wp_unslash($_POST['attachment'])) : '0' ;\r\n+$attachment = esc_sql($attachment);\r\n+$comment_id = isset($_POST['comment_id']) ? absint(wp_unslash($_POST['comment_id'])) : '0' ;\r\n+$comment_id  = esc_sql($comment_id );\r\n+$proj_id = isset($_POST['proj_id']) ? absint(wp_unslash($_POST['proj_id'])) : '0' ;\r\n+$proj_id  = esc_sql($proj_id );\r\n+$proj_comment = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_comment WHERE id = %d AND proj_id = %d\",absint($comment_id), absint($proj_id)));\r\n+if(!(((!empty($proj_comment)) && ($proj_comment->created_by == $current_user->ID)) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$proj_id,$comment_id)))){\r\n+  exit;\r\n+}\r\n+$result = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\", $attachment));\r\n+$sql_query = $wpdb->prepare( \"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\", $result->file_path );\r\n+$attach_result=$wpdb->get_results($sql_query);\r\n+$result_count = count($attach_result);\r\n+if(file_exists($result->file_path) && $result_count \u003C 2)\r\n+{\r\n+\twp_delete_file($result->file_path);\r\n+}\r\n+$success = $wpdb->delete( \r\n+\t$wpdb->prefix . 'wppm_attachments', \r\n+\tarray( 'id' => $attachment ) \r\n+);\r\n+if( !$success ) return false;\r\n+$proj_attachment = $wpdb->get_var( $wpdb->prepare( \"SELECT attachment_ids FROM {$wpdb->prefix}wppm_project_comment WHERE id = %d\", $comment_id ));\r\n+$proj_attachment = explode(\",\",$proj_attachment);\r\n+if(!empty($proj_attachment)){\r\n+\tforeach($proj_attachment as $key=>$val){\r\n+\t\tif($val == $attachment){\r\n+\t\t\tunset($proj_attachment[$key]);\r\n+\t\t}\r\n+\t}\r\n+}\r\n+$pattachment = implode(',',$proj_attachment);\r\n+$values=array(\r\n+\t'attachment_ids'=>$pattachment\r\n+);\r\n+$wpdb->update($wpdb->prefix.'wppm_project_comment', $values, array('id'=>\"$comment_id\"));\r\n $attachment = apply_filters('wppm_after_delete_proj_comment_attachment',$attachment,$comment_id,$proj_id);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_details.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_details.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_details.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_details.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,49 +1,49 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_change_project_details', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$project_id = isset($_POST['project_id']) ? absint( wp_unslash( $_POST['project_id'] ) ) : 0;\n-$project_data = $wppmfunction->get_project($project_id);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_details',$project_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {exit;}\n-$project_label = isset($_POST['wppm_edit_project_label']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_project_label'])) : \"\" ;\n-$project_start_date = isset($_POST['wppm_edit_project_start_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_project_start_date'])) : \"\" ;\n-$project_end_date = isset($_POST['wppm_edit_project_end_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_project_end_date'])) : \"\" ;\n-$project_category = isset($_POST['wppm_edit_project_category']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_edit_project_category']))) : \"\" ;\n-$project_description = '';\n-\n-if ( !empty( $_POST['wppm_edit_project_description'] ) ) {\n-    $project_description = wp_kses_post(\n-        wp_unslash( $_POST['wppm_edit_project_description'] )\n-    );\n-}\n-if($project_label && $project_label != $project_data['project_name'] ){\n-    $wppmfunction->change_project_label( $project_id, $project_label);\n-}\n-\n-if($project_start_date && $project_start_date != $project_data['start_date'] ){\n-    $wppmfunction->change_project_start_date( $project_id, $project_start_date);\n-}\n-\n-if($project_end_date && $project_end_date != $project_data['end_date'] ){\n-    $wppmfunction->change_project_end_date( $project_id, $project_end_date);\n-}\n-if( $project_category != $project_data['cat_id']){\n-\t$wppmfunction->change_category( $project_id, $project_category);\n-    $change_category_value = array('prev_cat'=>$project_data['cat_id'],'new_cat'=>$project_category);\n-\t$change_category_obj = serialize($change_category_value);\n-    $project_id = esc_sql($project_id);\n-\t$log_values = array('proj_id'=>\"$project_id\",'body'=>$change_category_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>esc_sql($current_user->ID) );\n-\t$wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);\n-    $log_id = esc_sql($wpdb->insert_id);\n-\t$proj_log_values = array('proj_id'=>\"$project_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_proj_cat');\n-\t$wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\n-}\n-\n-if( $project_description != $project_data['description']){\n-\t$wppmfunction->change_project_description( $project_id, $project_description);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_change_project_details', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$project_id = isset($_POST['project_id']) ? absint( wp_unslash( $_POST['project_id'] ) ) : 0;\r\n+$project_data = $wppmfunction->get_project($project_id);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_details',$project_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {exit;}\r\n+$project_label = isset($_POST['wppm_edit_project_label']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_project_label'])) : \"\" ;\r\n+$project_start_date = isset($_POST['wppm_edit_project_start_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_project_start_date'])) : \"\" ;\r\n+$project_end_date = isset($_POST['wppm_edit_project_end_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_project_end_date'])) : \"\" ;\r\n+$project_category = isset($_POST['wppm_edit_project_category']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_edit_project_category']))) : \"\" ;\r\n+$project_description = '';\r\n+\r\n+if ( !empty( $_POST['wppm_edit_project_description'] ) ) {\r\n+    $project_description = wp_kses_post(\r\n+        wp_unslash( $_POST['wppm_edit_project_description'] )\r\n+    );\r\n+}\r\n+if($project_label && $project_label != $project_data['project_name'] ){\r\n+    $wppmfunction->change_project_label( $project_id, $project_label);\r\n+}\r\n+\r\n+if($project_start_date && $project_start_date != $project_data['start_date'] ){\r\n+    $wppmfunction->change_project_start_date( $project_id, $project_start_date);\r\n+}\r\n+\r\n+if($project_end_date && $project_end_date != $project_data['end_date'] ){\r\n+    $wppmfunction->change_project_end_date( $project_id, $project_end_date);\r\n+}\r\n+if( $project_category != $project_data['cat_id']){\r\n+\t$wppmfunction->change_category( $project_id, $project_category);\r\n+    $change_category_value = array('prev_cat'=>$project_data['cat_id'],'new_cat'=>$project_category);\r\n+\t$change_category_obj = serialize($change_category_value);\r\n+    $project_id = esc_sql($project_id);\r\n+\t$log_values = array('proj_id'=>\"$project_id\",'body'=>$change_category_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>esc_sql($current_user->ID) );\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);\r\n+    $log_id = esc_sql($wpdb->insert_id);\r\n+\t$proj_log_values = array('proj_id'=>\"$project_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_proj_cat');\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\r\n+}\r\n+\r\n+if( $project_description != $project_data['description']){\r\n+\t$wppmfunction->change_project_description( $project_id, $project_description);\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_raised_by.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_raised_by.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_raised_by.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_raised_by.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,29 +1,29 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wppmfunction,$wpdb;\n-\n-if ( check_ajax_referer( 'wppm_set_change_project_raised_by', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$project_id = isset($_POST['project_id'])  ? intval(sanitize_text_field(wp_unslash($_POST['project_id']))) : '';\n-$project_data = $wppmfunction->get_project($project_id);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_raised_by',$project_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {exit;}\n-\n-$user_id = isset($_POST['wppm_user_id']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_user_id']))) : 0 ;\n-$old_user_id  = esc_sql($project_data['created_by']);\n-if ( $user_id != $old_user_id ){\n-\t$wppmfunction->change_project_raised_by($project_id, $user_id);\n-\t$user_id = esc_sql($user_id);\n-\t$change_creator_value = array('prev_user'=>\"$old_user_id\",'new_user'=>\"$user_id\");\n-\t$change_creator_obj = serialize($change_creator_value);\n-\t$project_id = esc_sql($project_id);\n-\t$log_values = array('proj_id'=>\"$project_id\",'body'=>$change_creator_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>esc_sql($current_user->ID) );\n-\t$wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);\n-\t$log_id = esc_sql($wpdb->insert_id);\n-\t$proj_log_values = array('proj_id'=>\"$project_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_proj_creator');\n-\t$wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wppmfunction,$wpdb;\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_change_project_raised_by', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$project_id = isset($_POST['project_id'])  ? intval(sanitize_text_field(wp_unslash($_POST['project_id']))) : '';\r\n+$project_data = $wppmfunction->get_project($project_id);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_raised_by',$project_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {exit;}\r\n+\r\n+$user_id = isset($_POST['wppm_user_id']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_user_id']))) : 0 ;\r\n+$old_user_id  = esc_sql($project_data['created_by']);\r\n+if ( $user_id != $old_user_id ){\r\n+\t$wppmfunction->change_project_raised_by($project_id, $user_id);\r\n+\t$user_id = esc_sql($user_id);\r\n+\t$change_creator_value = array('prev_user'=>\"$old_user_id\",'new_user'=>\"$user_id\");\r\n+\t$change_creator_obj = serialize($change_creator_value);\r\n+\t$project_id = esc_sql($project_id);\r\n+\t$log_values = array('proj_id'=>\"$project_id\",'body'=>$change_creator_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>esc_sql($current_user->ID) );\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);\r\n+\t$log_id = esc_sql($wpdb->insert_id);\r\n+\t$proj_log_values = array('proj_id'=>\"$project_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_proj_creator');\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\r\n+}\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,23 +1,23 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wppmfunction,$wpdb;\n-if ( check_ajax_referer( 'wppm_set_change_project_status', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$project_id    = isset($_POST['project_id'])  ? absint(sanitize_text_field(wp_unslash($_POST['project_id']))) : '';\n-$project_data = $wppmfunction->get_project($project_id);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_status',$project_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {exit;}\n-\n-$status_id   = isset($_POST['wppm_project_status']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_project_status']))) : 0 ;\n-if( !$status_id ){\n-  die();\n-}\n-$old_status_id   \t= $project_data['status'];\n-\n-if($status_id && $status_id!=$old_status_id){\n-\t$wppmfunction->change_project_status( $project_id, $status_id);\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wppmfunction,$wpdb;\r\n+if ( check_ajax_referer( 'wppm_set_change_project_status', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$project_id    = isset($_POST['project_id'])  ? absint(sanitize_text_field(wp_unslash($_POST['project_id']))) : '';\r\n+$project_data = $wppmfunction->get_project($project_id);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_status',$project_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {exit;}\r\n+\r\n+$status_id   = isset($_POST['wppm_project_status']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_project_status']))) : 0 ;\r\n+if( !$status_id ){\r\n+  die();\r\n+}\r\n+$old_status_id   \t= $project_data['status'];\r\n+\r\n+if($status_id && $status_id!=$old_status_id){\r\n+\t$wppmfunction->change_project_status( $project_id, $status_id);\r\n+}\r\n do_action('wppm_after_set_change_project_status',$project_id, $status_id, $old_status_id);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_proj_end_date.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_proj_end_date.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_proj_end_date.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_proj_end_date.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,18 +1,18 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_change_proj_end_date', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$proj_id  = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-$proj_data = $wppmfunction->get_project($proj_id);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_details',$proj_id) ||($wppm_current_user_capability =='wppm_manager' && $proj_data['created_by']==$current_user->ID ) || $wppm_current_user_capability =='wppm_admin')) {exit;}\n-$date =  isset($_POST['date']) ? (sanitize_text_field(wp_unslash($_POST['date']))) : '' ;\n-$edate = strtotime($date); \n-$end_date = wp_date('Y-m-d H:i:s', $edate); \n-if($end_date && $end_date != $proj_data['end_date'] ){\n-  $wppmfunction->change_project_end_date( $proj_id, $end_date);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_change_proj_end_date', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$proj_id  = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+$proj_data = $wppmfunction->get_project($proj_id);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_details',$proj_id) ||($wppm_current_user_capability =='wppm_manager' && $proj_data['created_by']==$current_user->ID ) || $wppm_current_user_capability =='wppm_admin')) {exit;}\r\n+$date =  isset($_POST['date']) ? (sanitize_text_field(wp_unslash($_POST['date']))) : '' ;\r\n+$edate = strtotime($date); \r\n+$end_date = wp_date('Y-m-d H:i:s', $edate); \r\n+if($end_date && $end_date != $proj_data['end_date'] ){\r\n+  $wppmfunction->change_project_end_date( $proj_id, $end_date);\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_proj_start_date.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_proj_start_date.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_proj_start_date.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_proj_start_date.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,20 +1,20 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_change_proj_start_date', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$proj_id  = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-$proj_data = $wppmfunction->get_project($proj_id);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_details',$proj_id) ||($wppm_current_user_capability =='wppm_manager' && $proj_data['created_by']==$current_user->ID ) || $wppm_current_user_capability =='wppm_admin')) {exit;}\n-$date =  isset($_POST['date']) ? (sanitize_text_field(wp_unslash($_POST['date']))) : '' ;\n-$sdate = strtotime($date); \n-$start_date = wp_date('Y-m-d H:i:s', $sdate); \n-$proj_data = $wppmfunction->get_project($proj_id);\n-if($start_date && $start_date != $proj_data['start_date'] ){\n-  $wppmfunction->change_project_start_date( $proj_id, $start_date);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_change_proj_start_date', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$proj_id  = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+$proj_data = $wppmfunction->get_project($proj_id);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_details',$proj_id) ||($wppm_current_user_capability =='wppm_manager' && $proj_data['created_by']==$current_user->ID ) || $wppm_current_user_capability =='wppm_admin')) {exit;}\r\n+$date =  isset($_POST['date']) ? (sanitize_text_field(wp_unslash($_POST['date']))) : '' ;\r\n+$sdate = strtotime($date); \r\n+$start_date = wp_date('Y-m-d H:i:s', $sdate); \r\n+$proj_data = $wppmfunction->get_project($proj_id);\r\n+if($start_date && $start_date != $proj_data['start_date'] ){\r\n+  $wppmfunction->change_project_start_date( $proj_id, $start_date);\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_delete_proj_thread.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_delete_proj_thread.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_delete_proj_thread.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_delete_proj_thread.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,54 +1,54 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wppmfunction ,$wpdb;\n-if ( check_ajax_referer( 'wppm_set_delete_proj_thread', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$proj_id  = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : 0 ;\n-$proj_id  = esc_sql($proj_id);\n-$thread_id  = isset($_POST['comment_id']) ? intval(sanitize_text_field(wp_unslash($_POST['comment_id']))) : 0 ;\n-$project_comment = $wppmfunction->get_proj_comment($thread_id);\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_proj_comment_permission('delete_proj_thread',$proj_id,$thread_id))) {exit;}\n-$thread_attachment_ids = $wpdb->get_results( $wpdb->prepare( \"SELECT attachment_ids FROM {$wpdb->prefix}wppm_project_comment WHERE id = %d\", $thread_id ));\n-if(!empty($thread_attachment_ids) ){\n-\tforeach ($thread_attachment_ids as $thread_attachment_id){\n-\t\t$attachment_ids_temp=array();\n-\t\tif($thread_attachment_id->attachment_ids){\n-\t\t\t$attachment_ids_temp =  explode(',', $thread_attachment_id->attachment_ids);\n-\t\t}\n-\t\t$attachment_ids=$attachment_ids_temp;\n-\t\tif(!empty($attachment_ids_temp)){\n-\t\t\tforeach ($attachment_ids_temp as $attachment_id){\n-\t\t\t\t$result = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\", $attachment_id));\n-\t\t\t\tif(!empty($result)){\n-\t\t\t\t\t$res_file_path = esc_sql($result->file_path);\n-\t\t\t\t\t$attach_result = $wpdb->get_results( $wpdb->prepare( \"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",$res_file_path));\n-\t\t\t\t\t$result_count = count($attach_result);\n-\t\t\t\t\tif(file_exists($result->file_path) && $result_count \u003C 2)\n-\t\t\t\t\t{\n-\t\t\t\t\t\twp_delete_file($result->file_path);\n-\t\t\t\t\t}\n-\t\t\t\t\t$attachment_id = esc_sql($attachment_id);\n-\t\t\t\t\t$wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => \"$attachment_id\"));\n-\t\t\t\t}\n-\t\t\t}\n-\t\t}\n-\t}\n-}\n-\n-$cur_user = get_userdata($current_user->ID);\n-$log_values = array('proj_id'=>\"$proj_id\",'body'=>'This comment was deleted by '.$cur_user->display_name,'attachment_ids'=>\"\");\n-$wpdb->update($wpdb->prefix.'wppm_project_comment', $log_values, array('id'=>\"$thread_id\"));\n-$comment_meta = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_project_comment_meta WHERE comment_id = %d\",$thread_id));\n-$proj_log_values = array('proj_id'=>\"$proj_id\",'comment_id'=>\"$thread_id\",'comment_type'=>'delete_proj_comment');\n-if(!empty($comment_meta)){\n-\t$wpdb->update($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values,array('id'=>esc_sql($comment_meta->id)));\n-} else{\n-\t$wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\n-}\n-do_action('wppm_after_delete_project_thread',$thread_id,$proj_id);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wppmfunction ,$wpdb;\r\n+if ( check_ajax_referer( 'wppm_set_delete_proj_thread', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$proj_id  = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : 0 ;\r\n+$proj_id  = esc_sql($proj_id);\r\n+$thread_id  = isset($_POST['comment_id']) ? intval(sanitize_text_field(wp_unslash($_POST['comment_id']))) : 0 ;\r\n+$project_comment = $wppmfunction->get_proj_comment($thread_id);\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_proj_comment_permission('delete_proj_thread',$proj_id,$thread_id))) {exit;}\r\n+$thread_attachment_ids = $wpdb->get_results( $wpdb->prepare( \"SELECT attachment_ids FROM {$wpdb->prefix}wppm_project_comment WHERE id = %d\", $thread_id ));\r\n+if(!empty($thread_attachment_ids) ){\r\n+\tforeach ($thread_attachment_ids as $thread_attachment_id){\r\n+\t\t$attachment_ids_temp=array();\r\n+\t\tif($thread_attachment_id->attachment_ids){\r\n+\t\t\t$attachment_ids_temp =  explode(',', $thread_attachment_id->attachment_ids);\r\n+\t\t}\r\n+\t\t$attachment_ids=$attachment_ids_temp;\r\n+\t\tif(!empty($attachment_ids_temp)){\r\n+\t\t\tforeach ($attachment_ids_temp as $attachment_id){\r\n+\t\t\t\t$result = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\", $attachment_id));\r\n+\t\t\t\tif(!empty($result)){\r\n+\t\t\t\t\t$res_file_path = esc_sql($result->file_path);\r\n+\t\t\t\t\t$attach_result = $wpdb->get_results( $wpdb->prepare( \"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",$res_file_path));\r\n+\t\t\t\t\t$result_count = count($attach_result);\r\n+\t\t\t\t\tif(file_exists($result->file_path) && $result_count \u003C 2)\r\n+\t\t\t\t\t{\r\n+\t\t\t\t\t\twp_delete_file($result->file_path);\r\n+\t\t\t\t\t}\r\n+\t\t\t\t\t$attachment_id = esc_sql($attachment_id);\r\n+\t\t\t\t\t$wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => \"$attachment_id\"));\r\n+\t\t\t\t}\r\n+\t\t\t}\r\n+\t\t}\r\n+\t}\r\n+}\r\n+\r\n+$cur_user = get_userdata($current_user->ID);\r\n+$log_values = array('proj_id'=>\"$proj_id\",'body'=>'This comment was deleted by '.$cur_user->display_name,'attachment_ids'=>\"\");\r\n+$wpdb->update($wpdb->prefix.'wppm_project_comment', $log_values, array('id'=>\"$thread_id\"));\r\n+$comment_meta = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_project_comment_meta WHERE comment_id = %d\",$thread_id));\r\n+$proj_log_values = array('proj_id'=>\"$proj_id\",'comment_id'=>\"$thread_id\",'comment_type'=>'delete_proj_comment');\r\n+if(!empty($comment_meta)){\r\n+\t$wpdb->update($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values,array('id'=>esc_sql($comment_meta->id)));\r\n+} else{\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\r\n+}\r\n+do_action('wppm_after_delete_project_thread',$thread_id,$proj_id);\r\n+\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_edit_proj_thread.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_edit_proj_thread.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_edit_proj_thread.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_edit_proj_thread.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,23 +1,23 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_edit_proj_thread', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$proj_id  = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-$comment_id  = isset($_POST['proj_comment_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_comment_id']))) : '' ;\n-$proj_comment = $wppmfunction->get_proj_comment($comment_id);\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_proj_comment_permission('edit_proj_comment',$proj_id,$comment_id))) {exit;}\n-$proj_comment_data = $wppmfunction->get_proj_comment($comment_id);\n-$old_comment_body = $proj_comment_data['body'];\n-$allowed_tags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'rel'=> array(), 'target'=> array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\n-$new_proj_comment = '';\n-if ( !empty( $_POST['wppm_edit_proj_thread'] ) ) {\n-    $raw = (wp_unslash($_POST['wppm_edit_proj_thread']));\n-    $new_proj_comment = wp_kses( $raw, $allowed_tags );\n-}\n-if($new_proj_comment && $old_comment_body != $new_proj_comment ){\n-    $wppmfunction->change_proj_comment($comment_id, $new_proj_comment);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_edit_proj_thread', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$proj_id  = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+$comment_id  = isset($_POST['proj_comment_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_comment_id']))) : '' ;\r\n+$proj_comment = $wppmfunction->get_proj_comment($comment_id);\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_proj_comment_permission('edit_proj_comment',$proj_id,$comment_id))) {exit;}\r\n+$proj_comment_data = $wppmfunction->get_proj_comment($comment_id);\r\n+$old_comment_body = $proj_comment_data['body'];\r\n+$allowed_tags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'rel'=> array(), 'target'=> array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\r\n+$new_proj_comment = '';\r\n+if ( !empty( $_POST['wppm_edit_proj_thread'] ) ) {\r\n+    $raw = (wp_unslash($_POST['wppm_edit_proj_thread']));\r\n+    $new_proj_comment = wp_kses( $raw, $allowed_tags );\r\n+}\r\n+if($new_proj_comment && $old_comment_body != $new_proj_comment ){\r\n+    $wppmfunction->change_proj_comment($comment_id, $new_proj_comment);\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_project_users.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_project_users.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_project_users.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_project_users.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,119 +1,119 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_project_users', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$proj_id  = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-$project_data = $wppmfunction->get_project($proj_id);\n-$cu_id =  esc_sql($current_user->ID);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('assign_project_users',$proj_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-$wppm_users_role = get_option('wppm_user_role');\n-$prev_assign_users = $project_data['users'];\n-if(!empty($prev_assign_users )){\n-  $prev_assign_users = explode(\",\",$prev_assign_users);\n-}\n-$users = (!empty($_POST['user_names']))? $wppmfunction->sanitize_array($_POST['user_names']):\"\";\n-$prev_assgn_user_meta = $wppmfunction->get_project_meta($proj_id,'prev_assigned_users');\n-$wppmfunction->delete_project_meta($proj_id,'prev_assigned_users');\n-$task_users = $wpdb->get_results( $wpdb->prepare(\"SELECT id,users FROM {$wpdb->prefix}wppm_task WHERE project = %d\",$proj_id));\n-if(!empty($prev_assign_users)) {\n-  foreach($prev_assign_users as $puser){\n-    $wppmfunction->add_project_meta($proj_id,'prev_assigned_users',$puser);\n-    if(!empty($users) && !in_array($puser,$users)){\n-      if(!empty($task_users)){\n-        foreach($task_users as $tuser){\n-          if(!empty($tuser)){\n-            $wppm_tuser = explode(',',$tuser->users);\n-            $tuser_id = esc_sql($tuser->id);\n-            if (($key = array_search($puser, $wppm_tuser)) !== false) {\n-                unset($wppm_tuser[$key]);\n-                if(!empty($wppm_tuser)){\n-                  $wppmtuser = implode(',',$wppm_tuser);\n-                  $value=array(\n-                    'users'=>  esc_sql($wppmtuser)\n-                  );\n-                } elseif(empty($wppm_tuser)){\n-                  $value=array(\n-                    'users'=> ''\n-                  );\n-                }\n-                $wpdb->update($wpdb->prefix.'wppm_task', $value, array('id'=>\"$tuser_id\"));\n-            }\n-          }\n-        }\n-      }\n-    }\n-    elseif(empty($users) && !empty($task_users)){\n-      foreach($task_users as $tuser){\n-        if(!empty($tuser)){\n-          $wppm_tuser = explode(',',$tuser->users);\n-          $tuser_id = esc_sql($tuser->id);\n-          if (($key = array_search($puser, $wppm_tuser)) !== false) {\n-              unset($wppm_tuser[$key]);\n-              if(!empty($wppm_tuser)){\n-                $wppmtuser = implode(',',$wppm_tuser);\n-                $value=array(\n-                  'users'=>  esc_sql($wppmtuser)\n-                );\n-              } elseif(empty($wppm_tuser)){\n-                $value=array(\n-                  'users'=> ''\n-                );\n-              }\n-              $wpdb->update($wpdb->prefix.'wppm_task', $value, array('id'=>\"$tuser_id\"));\n-          }\n-        }\n-      }\n-    }\n-  }\n-}\n-if(!empty($users)){\n-  $users = array_unique($users);\n-  foreach($users as $user){\n-    $user_role = sanitize_text_field(wp_unslash($_POST['wppm_select_user_role_'.$user]));\n-    $project_user = $wpdb->get_row(\n-      $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$proj_id,$user));\n-    if(!empty($project_user)){\n-      $values=array(\n-        'role_id'=> absint($user_role),\n-        'assigned_by'=> $cu_id\n-      );\n-      $proj_user_id = absint($project_user->id);\n-      $wpdb->update($wpdb->prefix.'wppm_project_users', $values, array('id'=>\"$proj_user_id\"));\n-    }else{\n-      $wpdb->insert( \n-        $wpdb->prefix . 'wppm_project_users', \n-        array(\n-          'proj_id' => absint($proj_id),\n-          'user_id' => absint($user),\n-          'role_id' =>absint($user_role),\n-          'assigned_by' =>absint($cu_id)\n-      ) );\n-    }\n-  }\n-  $pusers = implode(\",\",$users);\n-  if($project_data['users'] != $pusers){\n-    $pvalues=array(\n-      'users'=> esc_sql($pusers)\n-    );\n-    $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>\"$proj_id\"));\n-  }\n-} else{\n-    $pusers = \"\";\n-    $pvalues = array(\n-      'users'=>''\n-    );\n-    $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>$proj_id));\n-}\n-$change_assign_user_value = array('prev_assign_user'=>\"$project_data[users]\",'new_assign_user'=>\"$pusers\");\n-$change_assign_user_obj = serialize($change_assign_user_value);\n-$log_values = array('proj_id'=>esc_sql($proj_id),'body'=>$change_assign_user_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>\"$cu_id\" );\n-$wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);\n-$log_id = $wpdb->insert_id;\n-$proj_log_values = array('proj_id'=>esc_sql($proj_id),'comment_id'=>esc_sql($log_id),'comment_type'=>'change_assign_user');\n-$wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_project_users', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$proj_id  = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+$project_data = $wppmfunction->get_project($proj_id);\r\n+$cu_id =  esc_sql($current_user->ID);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('assign_project_users',$proj_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+$wppm_users_role = get_option('wppm_user_role');\r\n+$prev_assign_users = $project_data['users'];\r\n+if(!empty($prev_assign_users )){\r\n+  $prev_assign_users = explode(\",\",$prev_assign_users);\r\n+}\r\n+$users = (!empty($_POST['user_names']))? $wppmfunction->sanitize_array($_POST['user_names']):\"\";\r\n+$prev_assgn_user_meta = $wppmfunction->get_project_meta($proj_id,'prev_assigned_users');\r\n+$wppmfunction->delete_project_meta($proj_id,'prev_assigned_users');\r\n+$task_users = $wpdb->get_results( $wpdb->prepare(\"SELECT id,users FROM {$wpdb->prefix}wppm_task WHERE project = %d\",$proj_id));\r\n+if(!empty($prev_assign_users)) {\r\n+  foreach($prev_assign_users as $puser){\r\n+    $wppmfunction->add_project_meta($proj_id,'prev_assigned_users',$puser);\r\n+    if(!empty($users) && !in_array($puser,$users)){\r\n+      if(!empty($task_users)){\r\n+        foreach($task_users as $tuser){\r\n+          if(!empty($tuser)){\r\n+            $wppm_tuser = explode(',',$tuser->users);\r\n+            $tuser_id = esc_sql($tuser->id);\r\n+            if (($key = array_search($puser, $wppm_tuser)) !== false) {\r\n+                unset($wppm_tuser[$key]);\r\n+                if(!empty($wppm_tuser)){\r\n+                  $wppmtuser = implode(',',$wppm_tuser);\r\n+                  $value=array(\r\n+                    'users'=>  esc_sql($wppmtuser)\r\n+                  );\r\n+                } elseif(empty($wppm_tuser)){\r\n+                  $value=array(\r\n+                    'users'=> ''\r\n+                  );\r\n+                }\r\n+                $wpdb->update($wpdb->prefix.'wppm_task', $value, array('id'=>\"$tuser_id\"));\r\n+            }\r\n+          }\r\n+        }\r\n+      }\r\n+    }\r\n+    elseif(empty($users) && !empty($task_users)){\r\n+      foreach($task_users as $tuser){\r\n+        if(!empty($tuser)){\r\n+          $wppm_tuser = explode(',',$tuser->users);\r\n+          $tuser_id = esc_sql($tuser->id);\r\n+          if (($key = array_search($puser, $wppm_tuser)) !== false) {\r\n+              unset($wppm_tuser[$key]);\r\n+              if(!empty($wppm_tuser)){\r\n+                $wppmtuser = implode(',',$wppm_tuser);\r\n+                $value=array(\r\n+                  'users'=>  esc_sql($wppmtuser)\r\n+                );\r\n+              } elseif(empty($wppm_tuser)){\r\n+                $value=array(\r\n+                  'users'=> ''\r\n+                );\r\n+              }\r\n+              $wpdb->update($wpdb->prefix.'wppm_task', $value, array('id'=>\"$tuser_id\"));\r\n+          }\r\n+        }\r\n+      }\r\n+    }\r\n+  }\r\n+}\r\n+if(!empty($users)){\r\n+  $users = array_unique($users);\r\n+  foreach($users as $user){\r\n+    $user_role = sanitize_text_field(wp_unslash($_POST['wppm_select_user_role_'.$user]));\r\n+    $project_user = $wpdb->get_row(\r\n+      $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$proj_id,$user));\r\n+    if(!empty($project_user)){\r\n+      $values=array(\r\n+        'role_id'=> absint($user_role),\r\n+        'assigned_by'=> $cu_id\r\n+      );\r\n+      $proj_user_id = absint($project_user->id);\r\n+      $wpdb->update($wpdb->prefix.'wppm_project_users', $values, array('id'=>\"$proj_user_id\"));\r\n+    }else{\r\n+      $wpdb->insert( \r\n+        $wpdb->prefix . 'wppm_project_users', \r\n+        array(\r\n+          'proj_id' => absint($proj_id),\r\n+          'user_id' => absint($user),\r\n+          'role_id' =>absint($user_role),\r\n+          'assigned_by' =>absint($cu_id)\r\n+      ) );\r\n+    }\r\n+  }\r\n+  $pusers = implode(\",\",$users);\r\n+  if($project_data['users'] != $pusers){\r\n+    $pvalues=array(\r\n+      'users'=> esc_sql($pusers)\r\n+    );\r\n+    $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>\"$proj_id\"));\r\n+  }\r\n+} else{\r\n+    $pusers = \"\";\r\n+    $pvalues = array(\r\n+      'users'=>''\r\n+    );\r\n+    $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>$proj_id));\r\n+}\r\n+$change_assign_user_value = array('prev_assign_user'=>\"$project_data[users]\",'new_assign_user'=>\"$pusers\");\r\n+$change_assign_user_obj = serialize($change_assign_user_value);\r\n+$log_values = array('proj_id'=>esc_sql($proj_id),'body'=>$change_assign_user_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>\"$cu_id\" );\r\n+$wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);\r\n+$log_id = $wpdb->insert_id;\r\n+$proj_log_values = array('proj_id'=>esc_sql($proj_id),'comment_id'=>esc_sql($log_id),'comment_type'=>'change_assign_user');\r\n+$wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\r\n do_action('wppm_set_project_users', $proj_id);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_submit_project_comment.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_submit_project_comment.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_submit_project_comment.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_submit_project_comment.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,49 +1,49 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_submit_proj_comment', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$proj_id  = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-if(!$wppmfunction->has_project_permission('add_proj_comment',$proj_id)){ \n-  wp_send_json_error( 'Unauthorised request!', 403 );\n-}\n-$cu_id = $current_user->ID;\n-$project_data = $wppmfunction->get_project($proj_id);\n-if (empty($project_data)) {\n-    wp_send_json_error( 'Project not found', 404 );\n-}\n-$comment  = !empty($_POST['comment_body']) ? wp_kses_post($_POST['comment_body']) : '' ;\n-$allowed_tags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'rel'=> array(), 'target'=> array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\n-$comment_body = wp_kses($comment,$allowed_tags);\n-$attachments = !empty($_POST['wppm_proj_comment_attachment']) ? $wppmfunction->sanitize_array($_POST['wppm_proj_comment_attachment']) : [];\n-$attachment_ids = implode(\",\",$attachments);\n-if($comment_body==\"\" && $attachment_ids==\"\") exit;\n-if(!empty($attachments)){\n-  $project_auth_code = $wppmfunction->get_project_meta($proj_id,'project_auth_code',true);\n-  if(empty($project_auth_code)){\n-    $auth_code = $wppmfunction->getRandomString(10);\n-    $wppmfunction->add_project_meta($proj_id,'project_auth_code',$auth_code);\n-  }\n-}\n-$vals = array('is_active' => 1);\n-foreach($attachments as $attach){\n-  $attach = esc_sql($attach);\n-  $wpdb->update($wpdb->prefix.'wppm_attachments', $vals, array('id'=>\"$attach\"));\n-}\n-$args=array(\n-  'proj_id'=> $proj_id,\n-  'body'=>$comment_body,\n-  'attachment_ids'=>$attachment_ids,\n-  'create_time'=>current_time('mysql', 1),\n-  'created_by'=>$cu_id\n-);\n-$args = apply_filters( 'wppm_submit_proj_comment_args', $args );\n-$comment_id = $wppmfunction->wppm_submit_proj_comment($args);\n-$proj_log_values = array('proj_id'=>esc_sql($proj_id),'comment_id'=>esc_sql($comment_id),'comment_type'=>'comment');\n-$wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\n-\n-do_action('wppm_after_submit_proj_comment', $proj_id,$comment_id);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_submit_proj_comment', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$proj_id  = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+if(!$wppmfunction->has_project_permission('add_proj_comment',$proj_id)){ \r\n+  wp_send_json_error( 'Unauthorised request!', 403 );\r\n+}\r\n+$cu_id = $current_user->ID;\r\n+$project_data = $wppmfunction->get_project($proj_id);\r\n+if (empty($project_data)) {\r\n+    wp_send_json_error( 'Project not found', 404 );\r\n+}\r\n+$comment  = !empty($_POST['comment_body']) ? wp_kses_post($_POST['comment_body']) : '' ;\r\n+$allowed_tags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'rel'=> array(), 'target'=> array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\r\n+$comment_body = wp_kses($comment,$allowed_tags);\r\n+$attachments = !empty($_POST['wppm_proj_comment_attachment']) ? $wppmfunction->sanitize_array($_POST['wppm_proj_comment_attachment']) : [];\r\n+$attachment_ids = implode(\",\",$attachments);\r\n+if($comment_body==\"\" && $attachment_ids==\"\") exit;\r\n+if(!empty($attachments)){\r\n+  $project_auth_code = $wppmfunction->get_project_meta($proj_id,'project_auth_code',true);\r\n+  if(empty($project_auth_code)){\r\n+    $auth_code = $wppmfunction->getRandomString(10);\r\n+    $wppmfunction->add_project_meta($proj_id,'project_auth_code',$auth_code);\r\n+  }\r\n+}\r\n+$vals = array('is_active' => 1);\r\n+foreach($attachments as $attach){\r\n+  $attach = esc_sql($attach);\r\n+  $wpdb->update($wpdb->prefix.'wppm_attachments', $vals, array('id'=>\"$attach\"));\r\n+}\r\n+$args=array(\r\n+  'proj_id'=> $proj_id,\r\n+  'body'=>$comment_body,\r\n+  'attachment_ids'=>$attachment_ids,\r\n+  'create_time'=>current_time('mysql', 1),\r\n+  'created_by'=>$cu_id\r\n+);\r\n+$args = apply_filters( 'wppm_submit_proj_comment_args', $args );\r\n+$comment_id = $wppmfunction->wppm_submit_proj_comment($args);\r\n+$proj_log_values = array('proj_id'=>esc_sql($proj_id),'comment_id'=>esc_sql($comment_id),'comment_type'=>'comment');\r\n+$wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\r\n+\r\n+do_action('wppm_after_submit_proj_comment', $proj_id,$comment_id);\r\n+\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,642 +1,849 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$current_user, $wppmfunction;\n-$task_per_page = 20;\n-$total_no_of_rows = 0;\n-$totalrows_tasks = 0;\n-$appearance_settings = get_option(\"wppm-ap-grid-view\");\n-$cu_id = absint($current_user->ID);\n-$page_no = isset($_POST['page_no']) ? intval((sanitize_text_field(wp_unslash($_POST['page_no'])))) : '0';\n-$orderby_sql = (sanitize_sql_orderby( \"load_order ASC\" ));\n-$task_status = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses ORDER BY $orderby_sql\");\n-$wppm_task_time = get_option('wppm_task_time');\n-$page = isset($_POST['page']) ? sanitize_text_field(wp_unslash($_POST['page'])) : '';\n-$id = isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : 0;\n-$project_id = isset($_POST['project_id']) ? intval(sanitize_text_field(wp_unslash($_POST['project_id']))) : \"0\";\n-$wppm_date_setting = get_option('wppm_date_setting');\n-$search_tag = isset($_POST['task_search']) ? sanitize_text_field(wp_unslash($_POST['task_search'])) : '';\n-$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_filter'])) : \"all\";\n-$proj_filter = isset($_POST['wppm_proj_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_proj_filter'])) : \"0\";\n-$public_projects = isset($_POST['public_projects']) ? sanitize_text_field(wp_unslash($_POST['public_projects'])):\"0\";\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');\n-$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');\n-$wppm_deafault_time_duration_task = get_option('wppm_display_time_duration_task');\n-if(!empty($wppm_hide_task_statuses_from_frontend)){\n-  $wppm_hide_task_statuses_from_frontend = explode(\",\",$wppm_hide_task_statuses_from_frontend);\n-} else {\n-  $wppm_hide_task_statuses_from_frontend = '';\n-}\n-$filters = array(\n-\t'search' => $search_tag,\n-\t'filter'=>$filter_by,\n-\t'proj_filter'=>$proj_filter\n-);\n-$grid_view_filter = $filters ;\n-$tl_filters = isset( $_COOKIE['wppm_grid_view_filters'] ) ? sanitize_text_field( wp_unslash( $_COOKIE['wppm_grid_view_filters'] ) ) : $grid_view_filter;\n-$current_date = wp_date('Y-m-d');\n-$proj_attr = isset($_POST['wppm_project_attr']) ? sanitize_text_field(wp_unslash($_POST['wppm_project_attr'])):\"\";\n-$archived_where = \" AND is_archived = 0\";\n-if ( isset($page) && $page === 'wppm-archived-tasks' ) {\n-  $archived_where = \" AND is_archived = 1\";\n-}\n-if( isset($page) && $page === 'wppm-tasks'){\n-  $archived_where = \" AND is_archived = 0\";\n-}\n-if(!empty($proj_attr )){\n-  $proj_attr = esc_sql($proj_attr);\n-  $wppm_proj_attr = ' AND (proj.project_name = \"'.$proj_attr.'\")';\n-}else{\n-  $wppm_proj_attr = '';\n-}\n-if ( $id != 0 || $project_id != 0 ) {\n-    if($project_id != 0){\n-      $id = $project_id;\n-    }\n-    $wppm_project_filter = \" AND Task.project = \" . intval($id);\n-} else {\n-    $wppm_project_filter = \"1=1\";\n-}\n-\n-$query = (\"SELECT proj.*\n-\t\tFROM {$wpdb->prefix}wppm_project AS proj\n-\t\tLeft join {$wpdb->prefix}wppm_project_meta proj_meta ON proj.id = proj_meta.project_id\");\n-$santitize_order_by = esc_sql(sanitize_sql_orderby( \"project_name ASC\" ));\n-if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\n-\tif(!empty($proj_attr )){\n-\t\t$proj_attr = esc_sql($proj_attr);\n-\t\t$where = \" where project_name = '\".$proj_attr.\"' Group by proj.id ORDER BY '$santitize_order_by'\";\n-\t}else{\n-\t\tif(!empty($public_projects)){\n-\t\t\t$where = \" where proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1 Group by proj.id ORDER BY '$santitize_order_by'\";\n-\t\t}else{\n-\t\t\t$where = \" Group by proj.id ORDER BY '$santitize_order_by'\";\n-\t\t}\n-\t}\n-}else{\n-\tif(!empty($public_projects)){\n-\t\t$where =  \" where (proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) $wppm_proj_attr Group by proj.id ORDER BY '$santitize_order_by'\";\n-\t} else{\n-\t\t$where =  \" where ((FIND_IN_SET($current_user->ID,proj.users)) OR (proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR ( proj.created_by='$cu_id')) $wppm_proj_attr Group by proj.id ORDER BY '$santitize_order_by'\";\n-\t}\n-}\n-$where = apply_filters('wppm_project_filter_in_task_list_grid_view_where',$where);\n-$query.= $where;\n-$projects = $wpdb->get_results($query);\n-$wppm_tl_filter = \"1=1\";\n-if(!is_array($tl_filters)){\n-\t$tl_filters  = json_decode($tl_filters);\n-\t$tl_filters_arr = (array) $tl_filters;\n-} else{\n-$tl_filters_arr = $filters;\n-}\n-$search_tag = isset($_POST['task_search']) ? sanitize_text_field(wp_unslash($_POST['task_search'])) : $tl_filters_arr['search'];\n-$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_filter'])) : $tl_filters_arr['filter'];\n-$proj_filter = isset($_POST['wppm_proj_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_proj_filter'])) : $tl_filters_arr['proj_filter'];\n-$filters = array(\n-\t'search'=>$search_tag,\n-\t'filter'=>$filter_by,\n-\t'proj_filter' =>$proj_filter\n-);\n-setcookie('wppm_grid_view_filters',wp_json_encode( $filters ),time() + 3600);\n-if($filter_by=='all'){\n-  if($wppm_hide_completed_status_task == 0){\n-     $wppm_tl_filter = \"Task.status!='4'\";\n-  }\n-}\n-if($filter_by=='4'){\n-\t$wppm_tl_filter = \"Task.status='4'\";\n-}elseif($filter_by=='overdue'){\n-\t$wppm_tl_filter = \"Task.status!='4' AND (CAST(Task.end_date AS DATE)) \u003C '$current_date'\";\n-}elseif($filter_by == 'unassigned'){\n-\t$wppm_tl_filter = \"Task.users=''\";\n-}elseif($filter_by == '1'){\n-\t$wppm_tl_filter = \"Task.status='1'\";\n-}elseif($filter_by == '2'){\n-\t$wppm_tl_filter = \"Task.status='2'\";\n-}elseif($filter_by == '3'){\n-\t$wppm_tl_filter = \"Task.status='3'\";\n-}elseif($filter_by == 'mine'){\n-\t$wppm_tl_filter = \"(FIND_IN_SET('$current_user->ID',Task.users)>0)\";\n-}elseif($filter_by == 'archived'){\n-  $wppm_tl_filter = \"Task.is_archived = 1\";\n-}\n-\n-if(!empty($wppm_hide_task_statuses_from_frontend) && is_array($wppm_hide_task_statuses_from_frontend) && (isset($_POST['is_frontend']) && sanitize_text_field($_POST['is_frontend'])==1)){\n-  foreach($wppm_hide_task_statuses_from_frontend as $status){\n-    $wppm_tl_filter .= \" AND Task.status != '$status'\";\n-  }\n-}\n-\n-if($proj_filter!=0){\n-\t$wppm_task_by_proj_filter = \"Task.project = \".esc_sql($proj_filter).\"\";\n-}else{\n-\t$wppm_task_by_proj_filter =\"1=1\";\n-}\n-if(!empty($task_status)){\n-\tforeach($task_status as $status) {\n-\t\t$status_id = esc_sql($status->id);\n-\t\tif(!empty($search_tag)){\n-\t\t\t$search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';\n-\t\t\tif($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\n-\t\t\t\t$query = (\"SELECT Task.*\n-\t\t\t\t\t\t\tFROM {$wpdb->prefix}wppm_task AS Task\n-\t\t\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\n-\t\t\t\t\t\t\tLeft join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id\n-\t\t\t\t\t\t\tLeft join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id\n-\t\t\t\t\t\t\tLeft join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'\n-\t\t\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\n-\t\t\t\t\t\t\");\n-\t\t\t\t$no_of_rows = ( \"SELECT count(*) FROM ($query\");\n-\t\t\t\tif(!empty($public_projects)){\n-\t\t\t\t\t$where = \" where (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text') AND Task.status='$status_id' \";\n-\t\t\t\t}else{\n-\t\t\t\t\t$where = \" where $wppm_tl_filter AND $wppm_task_by_proj_filter AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text') AND Task.status='$status_id' \";\n-\t\t\t\t}\n-\t\t\t} else{\n-\t\t\t\t$query = (\"SELECT Task.*\n-\t\t\t\t\tFROM {$wpdb->prefix}wppm_task AS Task\n-\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\n-\t\t\t\t\tLeft join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id\n-\t\t\t\t\tLeft join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id\n-\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id\n-\t\t\t\t\tLeft join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'\n-\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\n-\t\t\t\t\t\");\n-\t\t\t\t$no_of_rows = ( \"SELECT count(*) FROM ($query\");\n-\t\t\t\tif(!empty($public_projects)){\n-\t\t\t\t\t$where = \" where (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text')) AND Task.status= '$status_id'\";\n-\t\t\t\t}else{\n-\t\t\t\t\t$where = \" where $wppm_tl_filter AND $wppm_task_by_proj_filter AND (((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$cu_id') OR (proj_users.user_id = '$cu_id' AND proj_users.role_id = 1 AND (FIND_IN_SET('$current_user->ID',proj.users)>0)) OR (Task.project = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR proj.created_by='$cu_id') AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text')) AND Task.status= '$status_id'\";\n-\t\t\t\t}\n-\t\t\t}\n-\t\t}else{\n-\t\t\tif($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\n-\t\t\t\t$query = ( \"SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task\n-\t\t\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\n-\t\t\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\n-\t\t\t\t\");\n-\t\t\t\t$no_of_rows = ( \"SELECT count(*) FROM ($query\");\n-\t\t\t\tif(!empty($public_projects)){\n-\t\t\t\t\t$where = \" where (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter AND Task.status= '$status_id'\";\n-\t\t\t\t}else{\n-\t\t\t\t\t$where = \" where $wppm_tl_filter AND $wppm_task_by_proj_filter AND Task.status= '$status_id'\";\n-\t\t\t\t}\n-\t\t\t}else{\n-\t\t\t\t$query = ( \"SELECT Task.*\n-\t\t\t\t\tFROM {$wpdb->prefix}wppm_task AS Task\n-\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\n-\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id\n-\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\n-\t\t\t\t\t\");\n-\t\t\t\t$no_of_rows = ( \"SELECT count(*) FROM ($query\");\n-\t\t\t\tif(!empty($public_projects)){\n-\t\t\t\t\t$where = \" where (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter AND Task.status= '$status_id'\";\n-\t\t\t\t} else{\n-\t\t\t\t\t$where = \" where $wppm_tl_filter AND $wppm_task_by_proj_filter AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$cu_id') OR (proj_users.user_id = '$cu_id' AND proj_users.role_id = 1 AND (FIND_IN_SET('$current_user->ID',proj.users)>0)) OR (Task.project = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR proj.created_by='$cu_id') AND Task.status= '$status_id'\";\n-\t\t\t\t}\n-\t\t\t}\n-\t\t} \n-\t\t$query = apply_filters('wppm_query_for_grid_view',$query);\n-\t\t$no_of_rows = apply_filters('wppm_number_of_rows_query_for_grid_view',$no_of_rows);\n-\t\t$where.= $wppm_proj_attr;\n-\t\tif($filter_by != 'archived'){\n-\t\t\t$where .= $archived_where;\n-\t\t}\n-\t\tif($id!=0){\n-\t\t\t$where .=$wppm_project_filter;\n-\t\t}\n-\t\t$where = apply_filters('wppm_task_list_where_for_grid_view',$where,$wppm_tl_filter,$search_tag);\n-\t\t$no_of_rows .= $where;\n-\t\t$no_of_rows .= \" Group by Task.id) AS Task\";\n-\t\t$no_of_rows = apply_filters('wppm_task_list_no_of_rows_for_grid_view',$no_of_rows);\n-\t\t$totalrows = $wpdb->get_var($no_of_rows);\n-\t\t$totalrows_tasks +=$totalrows;\n-\t\tif($total_no_of_rows > $totalrows){\n-\t\t\t$totalrows = $total_no_of_rows;\n-\t\t}else{\n-\t\t\t$total_no_of_rows = $totalrows;\n-\t\t}\n-\t\t$limit_start=$page_no*$task_per_page;\n-\t\t$limit=\"\\n LIMIT \".$limit_start.\",\".$task_per_page.\" \";\n-\t\t$current_page=$page_no+1;\n-\t\t$query = apply_filters('wppm_tasks_grid_view_query',$query,$search_tag);\n-\t\t$where .= \" Group by Task.id\";\n-\t\t$query .= $where;\n-\t\t$query = apply_filters('wppm_task_list_grid_view_query',$query);\n-\t\t$query = $query.$limit;\n-\t\t$wppm_task_fillter[] = $wpdb->get_results($query);\n-\t}\n-\t$total_pages=ceil($total_no_of_rows\u002F$task_per_page);\n-\t$prev_page_no=$current_page-1;\n-\t$prev_class=(!$prev_page_no)?'disabled':'';\n-\t$next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;\n-\t$next_class=($total_pages==$current_page)?'disabled':'';\n-\t$flag = false;\n-\tif(!empty($wppm_task_fillter)){\n-\t\tforeach($wppm_task_fillter as $key_filter=>$val_filter){\n-\t\t\tforeach($val_filter as $key=>$val){\n-\t\t\t\t$val_array = (array) $val;\n-\t\t\t\t$tusers =  $val_array['users'];\n-\t\t\t\t$tusers_arr = explode(',',$tusers);\n-\t\t\t\t$tproject_id = ($val_array['project']);\n-\t\t\t\tif(!empty($tusers) && in_array($current_user->ID,$tusers_arr)){\n-\t\t\t\t\t$project_user_role = $wpdb->get_var( $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", absint($tproject_id), absint($cu_id)));\n-\t\t\t\t\t$project_users = $wpdb->get_var( $wpdb->prepare( \"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\", absint($tproject_id)));\n-\t\t\t\t\t$project_users_arr = explode(',',(string)$project_users);\n-\t\t\t\t\tif((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)){\n-\t\t\t\t\t\t$flag = true;\n-\t\t\t\t\t\tbreak;\n-\t\t\t\t\t}\n-\t\t\t\t}\n-\t\t\t}\n-\t\t}\n-\t}\n-}\n-$todo_status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id=%d\",1));\n-$inp_status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id=%d\",2));\n-$hold_status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id=%d\",3));\n-$completed_status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id=%d\",4));\n-$todo_status_style = (!empty($todo_status_name))? \"display:inline\" :\"display:none;\";\n-$inp_status_style = (!empty($inp_status_name))? \"display:inline\" :\"display:none;\";\n-$hold_status_style = (!empty($hold_status_name))? \"display:inline\" :\"display:none;\";\n-$completed_status_style = (!empty($completed_status_name))? \"display:inline\" :\"display:none;\";\n-if ( empty( $id ) ) {\n-\t$proj_filter_style = 'display:inline;';\n-} else {\n-   $proj_filter_style = 'display:none;';\n-}\n-if( isset($page) && $page === 'wppm-tasks'){\n-\t$arch_filter_style = \"display:inline;\";\n-\t$dashboard_style  = \"display:inline;\";\n-}else{\n-  \t$arch_filter_style = \"display:none;\";\n-\t$dashboard_style  = \"display:none;\";\n-}\n-\n-if ( isset($page) && $page === 'wppm-archived-tasks' ) {\n-  $arch_filter_style = \"display:none;\";\n-} else {\n-  $arch_filter_style = \"display:flex;\";\n-}\n-?>\n-\u003Cform name=\"wppm_view_project_task\" id=\"wppm_view_project_task\">\n-\t\u003Cdiv class=\"row\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-\t\t\t\u003C?php \n-\t\t\tif(($current_user->has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',0) || $wppm_current_user_capability=='wppm_manager'|| ($flag==true)) && (isset($page) && $page != 'wppm-archived-tasks' )){\n-\t\t\t\t$style = \"display:inline;\";\n-\t\t\t}else{\n-\t\t\t\t$style = \"display:none;\";\n-\t\t\t}\n-\t\t\t$style = apply_filters('wppm_add_new_task_btn_style_grid_view',$style);\n-\t\t\t?>\n-\t\t\t\u003Cspan class=\"wppm-heading-inline\" style=\"\u003C?php echo esc_attr($proj_filter_style);?>\">\u003C?php echo (isset($page) && $page === 'wppm-archived-tasks' ) ? esc_html_e('Archived Tasks','taskbuilder'): esc_html_e('Tasks','taskbuilder');?> \u003C\u002Fspan>\n-\t\t\t\u003Cspan class=\"wppm-add-new-btn btn-primary\" onclick=\"wppm_add_new_task('',\u003C?php echo (int)$id; ?>)\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;\u003C?php echo esc_attr($style) ?>;\u003C?php echo esc_attr($proj_filter_style);?>\">\u003Cimg class=\"wppm_add_new_task_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus_icon.svg'); ?>\" alt=\"add\">\u003C?php echo esc_html_e('Add New','taskbuilder');?>\u003C\u002Fspan>\n-\t\t\t\u003C!-- Dashboard Button -->\n-\t\t\t\u003Cspan class=\"wppm-add-new-btn btn-primary\" style=\"\u003C?php echo esc_attr($dashboard_style);?>;background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;margin-right:3px;\">\u003Ca href=\"\u003C?php echo esc_url( admin_url('admin.php?page=wppm-dashboard') ); ?>\"\n-\t\t\t\tstyle=\"margin-right:10px;\">\n-\t\t\t\t\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdashboard.svg'); ?>\" alt=\"dashboard_icon\">\n-\t\t\t\t\u003C?php esc_html_e('Dashboard','taskbuilder'); ?>\n-\t\t\t\u003C\u002Fa>\u003C\u002Fspan>\t\t\n-\t\t\t\u003Cspan class=\"wppm-add-new-btn btn-primary\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;\u003C?php echo esc_attr($proj_filter_style);?>; id=\"wppm_task_list\" onclick=\"wppm_get_task_list()\" >\u003Cspan>\u003Cimg class=\"wppm_task_list_image\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist-symbol.svg'); ?>\" alt=\"list\">\u003C\u002Fspan>\u003Cspan style=\"color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;\u003C?php echo esc_attr($proj_filter_style);?>\">\u003C?php echo esc_html_e('Task List','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-\t\t\u003C\u002Fdiv>\n-\t\u003C\u002Fdiv>\n-\t\u003Cdiv style=\"display:flex;justify-content:space-between;margin-top: 20px;flex-wrap: wrap;\">\n-      \t\u003Cdiv style=\"display:flex;flex-wrap: wrap;\">\n-\t\t\t\u003Cdiv id=\"wppm_task_filter_container\">\n-\t\t\t\t\u003Cdiv class=\"wppm-filter-item\">\n-\t\t\t\t\t\u003Clabel for=\"wppm_task_filter\"> \u003C?php echo esc_html_e('Filter','taskbuilder');?>\u003C\u002Flabel>\n-\t\t\t\t\t\u003Cselect id=\"wppm_task_filter\" name=\"wppm_task_filter\" onchange=\"wppm_apply_task_filter_grid_view('\u003C?php echo esc_attr($page)?>','\u003C?php echo esc_attr($id)?>')\" class=\"form-control\">\n-\t\t\t\t\t\u003Coption value=\"all\"\u003C?php echo ($filter_by == \"all\")? 'selected':\"\"?>>\u003C?php echo esc_html_e('All','taskbuilder');?>\u003C\u002Foption>\n-\t\t\t\t\t\u003Coption value=\"1\" style=\"\u003C?php echo esc_attr($todo_status_style) ?>\" \u003C?php echo ($filter_by == \"1\")? 'selected':\"\"?>>\u003C?php echo  esc_html($todo_status_name);?>\u003C\u002Foption>\n-\t\t\t\t\t\u003Coption value=\"2\" style=\"\u003C?php echo esc_attr($inp_status_style) ?>\" \u003C?php echo ($filter_by == \"2\")? 'selected':\"\"?>>\u003C?php echo  esc_html($inp_status_name);?>\u003C\u002Foption>\n-\t\t\t\t\t\u003Coption value=\"3\" style=\"\u003C?php echo esc_attr($hold_status_style) ?>\" \u003C?php echo ($filter_by == \"3\")? 'selected':\"\"?>>\u003C?php echo  esc_html($hold_status_name);?>\u003C\u002Foption>\n-\t\t\t\t\t\u003Coption value=\"4\" style=\"\u003C?php echo esc_attr($completed_status_style) ?>\" \u003C?php echo ($filter_by == \"4\")? 'selected':\"\"?>>\u003C?php echo  esc_html($completed_status_name);?>\u003C\u002Foption>\n-\t\t\t\t\t\u003Coption value=\"mine\" \u003C?php echo ($filter_by == \"mine\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Mine','taskbuilder');?>\u003C\u002Foption>\n-\t\t\t\t\t\u003Coption value=\"unassigned\" \u003C?php echo ($filter_by == \"unassigned\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Unassigned','taskbuilder');?>\u003C\u002Foption>\n-\t\t\t\t\t\u003Coption value=\"overdue\" \u003C?php echo ($filter_by == \"overdue\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Overdue','taskbuilder');?>\u003C\u002Foption>\n-\t\t\t\t\t\u003Coption value=\"archived\" style=\"\u003C?php echo esc_attr($arch_filter_style) ?>\" \u003C?php echo ($filter_by == \"archived\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Archived','taskbuilder');?>\u003C\u002Foption>\n-\t\t\t\t\t\u003C\u002Fselect>\n-\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\u003Cdiv class=\"wppm-filter-item wppm_project_autocomplete_container\" style=\"\u003C?php echo esc_attr($proj_filter_style)?>\">\n-\t\t\t\t\t\u003Clabel for=\"wppm_task_list_proj_filter\">\n-\t\t\t\t\t\t\u003C?php echo esc_html_e('Project','taskbuilder');?>\n-\t\t\t\t\t\u003C\u002Flabel>\u003Cbr>\n-\t\t\t\t\t\u003Cselect searchable=\"search here\" onchange=\"wppm_tasks_by_select_project_grid_view('\u003C?php echo esc_attr($page)?>')\" class=\"form-control\" size=\"40\" name=\"wppm_task_list_proj_filter\" id=\"wppm_task_list_proj_filter\">\n-\t\t\t\t\t\t\u003Coption value=\"0\" \u003C?php echo ($proj_filter == 0)? 'selected':\"\"?>>\u003C?php echo esc_html_e('All','taskbuilder');?>\u003C\u002Foption>\n-\t\t\t\t\t\t\u003C?php \n-\t\t\t\t\t\t\tif(!empty($projects)){\n-\t\t\t\t\t\t\t\tforeach($projects as $proj) { \n-\t\t\t\t\t\t\t\t\t?>\n-\t\t\t\t\t\t\t\t\t\u003Coption value=\"\u003C?php echo esc_attr($proj->id)?>\" \u003C?php echo ($proj_filter == $proj->id)? 'selected':\"\"?>>\u003C?php echo esc_html($proj->project_name,'taskbuilder');?>\u003C\u002Foption>\n-\t\t\t\t\t\t\t\u003C?php } \n-\t\t\t\t\t\t\t} ?>\n-\t\t\t\t\t\u003C\u002Fselect>\n-\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\u003Cdiv class=\"wppm_display_submit\">\n-\t\t\t\t\t\u003Cdiv class=\"wppm-filter-actions\">\n-\t\t\t\t\t\t\u003Cspan class=\"wppm-link\" onclick=\"wppm_tl_reset_grid_view_filter('\u003C?php echo esc_attr($page)?>',\u003C?php echo esc_attr($id)?>)\"> \u003C?php echo esc_html_e('Reset','taskbuilder');?>\u003C\u002Fspan>\n-\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\u003C\u002Fdiv>\n-\t\t\u003C\u002Fdiv>\n-\t\t\u003Cdiv id=\"wppm_task_search\" style=\"display:flex;justify-content:flex-end;\">\n-          \u003Cimg width=\"25px\" height=\"15\" class=\"wppm_task_search_filter_img\" style=\"position: relative;top: 10px;left: 30px;\" height=\"15px\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsearch.svg'); ?>\" alt=\"search\">\n-          \u003Cinput type=\"search\" id=\"wppm_view_task_search_filter\" style=\"margin-right:10px;\" name=\"wppm_view_task_search_filter\" class=\"form-control form-control-sm\" aria-controls=\"selection-datatable\" placeholder=\"\u003C?php echo esc_attr__('Search','taskbuilder');?>\" value=\"\u003C?php echo (!empty($search_tag)) ? esc_attr($search_tag) : \"\" ?>\">\n-        \u003C\u002Fdiv>\n-\t\u003C\u002Fdiv>\n-\t\u003Cinput type=\"hidden\" name=\"wppm_proj_id\" id=\"wppm_proj_id\" value=\"\u003C?php echo esc_attr($id);?>\">\n-\t\u003Cdiv style=\"display:flex;justify-content:flex-end;margin-right:10px;\">\n-\t\t\u003Cspan id=\"wppm_list_view_btn\" style=\"margin: 0 0 -30px 0;\u003C?php echo esc_attr($proj_filter_style);?>\" onclick=\"wppm_get_task_list(0,\u003C?php echo esc_attr($id)?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flistv.svg'); ?>\" alt=\"list\">\u003Cspan style=\"margin-left:5px;\">\u003C?php echo esc_html_e('List view','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-\t\u003C\u002Fdiv>\n-\t\u003Cdiv class=\"wppm_task_container\" id=\"wppm_task_container\" style=\"display:flex;\">\n-\t\t\u003C?php \n-\t\tif(!empty($task_status)){\n-\t\t\tforeach($task_status as $status) {\n-\t\t\t\t?>\n-\t\t\t\t\u003Cdiv class=\"wppm_task_list\" id=\"wppm_task_list_\u003C?php echo esc_attr($status->id)?>\" style=\"display:flex;justify-content:space-between;flex-direction: column;flex-basis: 20%;\">\n-\t\t\t\t\t\u003Cdiv>\n-\t\t\t\t\t\t\u003Cdiv style=\"background-color:\u003C?php echo esc_attr($status->bg_color)?>;color:\u003C?php echo esc_attr($status->color);?>;padding:5px;\"> \n-\t\t\t\t\t\t\t\u003Cspan class=\"wppm_status_name\">\u003C?php echo esc_html($status->name);?>\u003C\u002Fspan>\n-\t\t\t\t\t\t\t\u003Cspan class=\"wppm_add_new_icon\" onclick=\"wppm_add_new_task('',\u003C?php echo (int)$id; ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fadd_new1.svg'); ?>\" alt=\"add\">\u003C\u002Fspan>\n-\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\u003Cdiv id=\"wppm_card_body_container_\u003C?php echo esc_attr($status->id) ?>\" style=\"height:100%;\">\n-\t\t\t\t\t\u003C?php\n-\t\t\t\t\t$total_checklist_items=0;\n-\t\t\t\t\t$total_checked_items=0;\n-\t\t\t\t\t$task_per_status = false;\n-\t\t\t\t\t$total_tasks = 0;\n-\t\t\t\t\tif(!empty($wppm_task_fillter)){\n-\t\t\t\t\t\tforeach($wppm_task_fillter as $key=>$tasks){\n-\t\t\t\t\t\t\tforeach($tasks as $task){\n-\t\t\t\t\t\t\t\t$total_tasks++;\n-\t\t\t\t\t\t\t\t$wppm_task_duration = $wppmfunction->wppm_get_duration($task->start_date,$task->end_date);\n-\t\t\t\t\t\t\t\tif((!empty($task)) && $task->status==$status->id){\n-\t\t\t\t\t\t\t\t\t$task_per_status = true;\n-\t\t\t\t\t\t\t\t\tif(isset($task->priority)){\n-\t\t\t\t\t\t\t\t\t\t$tpriority = ($task->priority);\n-\t\t\t\t\t\t\t\t\t\t$task_priority = $wpdb->get_row(\n-\t\t\t\t\t\t\t\t\t\t\t$wpdb->prepare(\n-\t\t\t\t\t\t\t\t\t\t\t\t\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities \n-\t\t\t\t\t\t\t\t\t\t\t\tWHERE id = %d\",\n-\t\t\t\t\t\t\t\t\t\t\t\tabsint($tpriority)\n-\t\t\t\t\t\t\t\t\t\t\t)\n-\t\t\t\t\t\t\t\t\t\t);\n-\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\tif($wppm_task_time == 1){\n-\t\t\t\t\t\t\t\t\t\t$task_end_date = $task->end_date;\n-\t\t\t\t\t\t\t\t\t\t$teDate = new DateTime($task->end_date);\n-\t\t\t\t\t\t\t\t\t\tif($task->end_date=='0000-00-00 00:00:00'){\n-\t\t\t\t\t\t\t\t\t\t\tif($wppm_date_setting=='Y-m-d H:i:s'){\n-\t\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '0000-00-00 00:00:00';\n-\t\t\t\t\t\t\t\t\t\t\t}elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-\t\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '00-00-0000 00:00:00';\n-\t\t\t\t\t\t\t\t\t\t\t}elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-\t\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '00-00-0000 00:00:00';\n-\t\t\t\t\t\t\t\t\t\t\t}else{\n-\t\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '0000-00-00 00:00:00';\n-\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t}else{\n-\t\t\t\t\t\t\t\t\t\t\t$task_end_date = $teDate->format($wppm_date_setting);\n-\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t}elseif($wppm_task_time == 0){\n-\t\t\t\t\t\t\t\t\t\t$teDate = new DateTime($task->end_date);\n-\t\t\t\t\t\t\t\t\t\t$task_end_date = $teDate->format('Y-m-d');\n-\t\t\t\t\t\t\t\t\t\tif($task->end_date=='0000-00-00 00:00:00'){\n-\t\t\t\t\t\t\t\t\t\t\tif($wppm_date_setting=='Y-m-d H:i:s'){\n-\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '0000-00-00';\n-\t\t\t\t\t\t\t\t\t\t\t}elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '00-00-0000';\n-\t\t\t\t\t\t\t\t\t\t\t}elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '00-00-0000';\n-\t\t\t\t\t\t\t\t\t\t\t}else{\n-\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '0000-00-00';\n-\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t}else{\n-\t\t\t\t\t\t\t\t\t\t\tif($wppm_date_setting=='Y-m-d H:i:s'){\n-\t\t\t\t\t\t\t\t\t\t\t$task_end_date = $teDate->format('Y-m-d');\n-\t\t\t\t\t\t\t\t\t\t\t}elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-\t\t\t\t\t\t\t\t\t\t\t$task_end_date = $teDate->format('d-m-Y');\n-\t\t\t\t\t\t\t\t\t\t\t}elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-\t\t\t\t\t\t\t\t\t\t\t$task_end_date = $teDate->format('m-d-Y');\n-\t\t\t\t\t\t\t\t\t\t\t}else{\n-\t\t\t\t\t\t\t\t\t\t\t$task_end_date = $teDate->format('Y-m-d');\n-\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\tif(!empty($task->id)){\n-\t\t\t\t\t\t\t\t\t\t$tid = absint( $task->id );\n-\t\t\t\t\t\t\t\t\t\t$checklists = $wpdb->get_results(\n-\t\t\t\t\t\t\t\t\t\t\t$wpdb->prepare(\n-\t\t\t\t\t\t\t\t\t\t\t\t\"SELECT * FROM {$wpdb->prefix}wppm_checklist WHERE task_id = %d\",\n-\t\t\t\t\t\t\t\t\t\t\t\t$tid\n-\t\t\t\t\t\t\t\t\t\t\t)\n-\t\t\t\t\t\t\t\t\t\t);\n-\t\t\t\t\t\t\t\t\t\t$total = $wpdb->get_var(\n-\t\t\t\t\t\t\t\t\t\t\t$wpdb->prepare(\n-\t\t\t\t\t\t\t\t\t\t\t\t\"SELECT COUNT(Items.id)\n-\t\t\t\t\t\t\t\t\t\t\t\tFROM {$wpdb->prefix}wppm_checklist_items AS Items\n-\t\t\t\t\t\t\t\t\t\t\t\tLEFT JOIN {$wpdb->prefix}wppm_checklist AS checklist\n-\t\t\t\t\t\t\t\t\t\t\t\t\tON Items.checklist_id = checklist.id\n-\t\t\t\t\t\t\t\t\t\t\t\tWHERE checklist.task_id = %d\",\n-\t\t\t\t\t\t\t\t\t\t\t\t$tid\n-\t\t\t\t\t\t\t\t\t\t\t)\n-\t\t\t\t\t\t\t\t\t\t);\n-\t\t\t\t\t\t\t\t\t\t$total_checked_items = (int) $wpdb->get_var(\n-\t\t\t\t\t\t\t\t\t\t\t$wpdb->prepare(\n-\t\t\t\t\t\t\t\t\t\t\t\t\"SELECT COUNT(Items.id)\n-\t\t\t\t\t\t\t\t\t\t\t\tFROM {$wpdb->prefix}wppm_checklist_items AS Items\n-\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN {$wpdb->prefix}wppm_checklist AS checklist\n-\t\t\t\t\t\t\t\t\t\t\t\t\tON Items.checklist_id = checklist.id\n-\t\t\t\t\t\t\t\t\t\t\t\tWHERE checklist.task_id = %d\n-\t\t\t\t\t\t\t\t\t\t\t\tAND Items.checked = 1\",\n-\t\t\t\t\t\t\t\t\t\t\t\tabsint($tid)\n-\t\t\t\t\t\t\t\t\t\t\t)\n-\t\t\t\t\t\t\t\t\t\t);\n-\t\t\t\t\t\t\t\t\t\t$project_data = $wppmfunction->get_project($task->project);\n-\t\t\t\t\t\t\t\t\t\t?>\n-\t\t\t\t\t\t\t\t\t\t\u003Cdiv class=\"wppm_card_body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['grid-background-color'])?>!important;color:\u003C?php echo esc_attr($appearance_settings['grid-header-text-color'])?>!important;\" onclick=\"wppm_open_task(\u003C?php echo esc_attr($task->id)?>,\u003C?php echo esc_attr($id);?>)\" id=\"wppm_draggable_card_\u003C?php echo esc_attr($task->id)?>\">\n-\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cspan class=\"wppm_td_task_priority\" style=\"background-color:\u003C?php echo (!empty($task_priority->bg_color))? esc_attr($task_priority->bg_color):\"\";?>;color:\u003C?php echo (!empty($task_priority->color))? esc_attr($task_priority->color):\"\";?>\">\u003C?php echo (!empty($task_priority->name))? esc_html($task_priority->name):\"\" ?>\u003C\u002Fspan>\n-\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv class=\"wppm_card_task_action\">\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cspan class=\"wppm_checklist_total_checked_item\">\u003C?php echo esc_html($total_checked_items.'\u002F'.$total)?>\u003C\u002Fspan>\u003Cspan class=\"wppm_total_checked_item\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fchecked.svg'); ?>\" alt=\"checked\">\u003C\u002Fspan>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cspan class=\"wppm_show_dropdown_menu\" onclick=\"wppm_show_dropdown_menu(\u003C?php echo esc_attr($task->id);?>)\" data-popover=\"wppm-dropdown-menu-\u003C?php echo esc_attr($task->id);?>\" id=\"wppm_task_action_\u003C?php echo esc_attr($task->id);?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fvertical_dot.svg'); ?>\" alt=\"vertical_dot\">\u003C\u002Fspan>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv class=\"gpopover\" id=\"wppm-dropdown-menu-\u003C?php echo esc_attr($task->id);?>\">\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Ca class=\"dropdown-item\" href=\"#\">\u003C?php echo esc_html_e('Edit','taskbuilder');?>\u003C\u002Fa>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Ca class=\"dropdown-item\" href=\"#\">\u003C?php echo esc_html_e('Delete','taskbuilder');?>\u003C\u002Fa>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cspan class=\"wppm_task_name_grid_view\" style=\"margin-left: 5px;\">\u003C?php echo esc_html($task->task_name);?>\u003C\u002Fspan> \n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cspan class=\"wppm_proj_name_grid_view\">(\u003C?php echo isset($project_data['project_name']) ? esc_html($project_data['project_name']):\"\";?>)\u003C\u002Fspan> \n-\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php if($wppm_deafault_time_duration_task==0) { ?>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv class=\"wppm_task_due_date_grid_view\" style=\"margin-left: 5px;\">\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php $style = ($task->status!=4 && $task->end_date \u003C $current_date) ? \"color:#FF0000\":\"color:#2C3E50\"; ?>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Csmall style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo (isset($task_end_date))? esc_html($task_end_date):\"\" ?>\u003C\u002Fsmall>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php }elseif( $wppm_deafault_time_duration_task==1){ ?>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv class=\"wppm_task_due_date_grid_view\" style=\"margin-left: 5px;\">\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php $style = ($task->status!=4 && $task->end_date \u003C $current_date) ? \"color:#FF0000\":\"color:#2C3E50\"; ?>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Csmall style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo (isset($wppm_task_duration))? esc_html($wppm_task_duration):\"\" ?>\u003C\u002Fsmall>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php } ?> \n-\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv class=\"wppm_card_task_users\" style=\"text-align:right;\">\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php\n-\t\t\t\t\t\t\t\t\t\t\t\t\t$task_users = explode(',',$task->users);\n-\t\t\t\t\t\t\t\t\t\t\t\t\t$i=0;\n-\t\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($project_data['users'])){\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t$proj_users = explode(',',$project_data['users']);\n-\t\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($task_users)){\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\tforeach($task_users as $user){\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif( (!empty($proj_users)) && (in_array($user,$proj_users))){ \n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$i++;\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif( $i \u003C= 4 ){\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($user)){\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$userdata = get_userdata( $user );\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t?>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Ca href=\"#\"  title=\"\u003C?php echo esc_attr($userdata->display_name)?>\">\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php echo get_avatar($user, 25, \"mysteryman\");?>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fa>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php } \n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t\t\tif($i > 4){\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t?>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Ca href=\"#\" class=\"wppm_avatar\">\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cspan id=\"wppm_avatar\" style=\"background-color:black;\" class=\"avatar\">+\u003C?php echo esc_html($i-4) ?>\u003C\u002Fspan>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fa>\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php } ?>\n-\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\t\t\t\t\u003C?php\n-\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t} \n-\t\t\t\t\t}\n-\t\t\t\t\tif($task_per_status==false){\n-\t\t\t\t\t\t?>\n-\t\t\t\t\t\t\u003Cdiv>\n-\t\t\t\t\t\t\t\u003Cdiv style=\"margin-left:5px;font-family: 'OpenSans-Semibold', 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 14px;\">\n-\t\t\t\t\t\t\t\t\u003C?php echo esc_html_e('Empty','taskbuilder'); ?>\n-\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\u003C?php\n-\t\t\t\t\t}\n-\t\t\t\t\t?>\n-\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\u003C?php } \n-\t\t}\n-\t\t?>\n-\t\t\u003Cinput type=\"hidden\" action=\"wppm_drag_and_drop_card\">\n-\t\t\u003Cinput type=\"hidden\" name=\"wppm_drag_and_drop_card_ajax_nonce\" id=\"wppm_drag_and_drop_card_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_drag_and_drop_card' ) ); ?>\">\n-\t\u003C\u002Fdiv>\n-\t\u003Cdiv class=\"row wppm_task_pagination_container\">\n-\t\t\u003Cdiv class=\"col-sm-4\">\n-\t\t\t\u003C?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;\u003C?php echo esc_html($total_tasks); ?>&nbsp;\u003C?php echo esc_html_e( 'of','taskbuilder') ?>&nbsp;\u003C?php echo esc_html($totalrows_tasks) ?>&nbsp;\u003C?php echo esc_html_e('Tasks','taskbuilder')?>\n-\t\t\u003C\u002Fdiv>\n-\t\t\u003Cdiv class=\"wppm_task_pagination col-sm-4\" style=\"\u003C?php echo (esc_attr($total_pages)==0)? \"display:none;\":\"display:flex;\"?>\">\n-\t\t\t\u003Cspan class=\"wppm-pagination-txt\">\n-\t\t\t\t\u003Cspan>\u003C?php echo esc_html($current_page)?>&nbsp;\u003C?php echo esc_html_e('of','taskbuilder');?>&nbsp;\u003C?php echo esc_html($total_pages); ?>&nbsp;\u003C?php echo esc_html_e('Page','taskbuilder'); ?>\u003C\u002Fspan>\n-\t\t\t\u003C\u002Fspan>\n-\t\t\t\u003Cspan \u003C?php echo esc_attr($prev_class) ?> \n-\t\t\tstyle=\"\u003C?php echo (isset($prev_class) && esc_attr($prev_class) == 'disabled') ? 'display:none;':'display:block;'?>cursor:pointer;\">\n-\t\t\t\u003Ca class=\"wppm_pagination_prev\" onclick=\"return wppm_load_prev_task_page_card_view(\u003C?php echo esc_attr($prev_page_no) ?>,\u003C?php echo esc_attr($page_no)?>);\">\u003C?php echo esc_html_e('PREV','taskbuilder');?>\u003C\u002Fa>\n-\t\t\t\u003C\u002Fspan>\n-\t\t\t\u003Cspan \u003C?php echo esc_attr($next_class) ?>\n-\t\t\tstyle=\"\u003C?php echo (isset($next_class) && esc_attr($next_class) == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;\">\n-\t\t\t\u003Ca class=\"wppm_pagination_next\" onclick=\"return wppm_load_next_task_page_card_view(\u003C?php echo esc_attr($next_page_no) ?>,\u003C?php echo esc_attr($page_no) ?>);\">\u003C?php echo esc_html_e('NEXT','taskbuilder');?>\u003C\u002Fa>\n-\t\t\t\u003C\u002Fspan>\n-\t\t\u003C\u002Fdiv>\n-\t\u003C\u002Fdiv>\n-\u003C\u002Fform>\n-\u003Cstyle>\n-\t.select2-selection--single {\n-\t\theight: 30px!important;\n-\t}\n-\t.select2-dropdown:hover {\n-    \tcolor: #23527c!important;;\n-\t}\n-\t.select2-results__options{\n-\t\tfont:15px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\n-\t\tmargin: 0!important;\n-\t\tline-height: inherit!important;\n-\t}\n-\t.select2-selection__rendered{\n-\t\tfont:15px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\n-\t\tmargin-top: 5px!important;\n-\t}\n-\t.select2-selection__rendered:hover{\n-\t\tcolor: #2271b1 !important;\n-\t}\n-\t.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{\n-\t\tbackground-color: #e85f08!important;\n-\t\tcolor: white !important;\n-\t}\n-\t.select2-container {\n-\t\tmax-width: 150px !important;\n-\t\tmin-width: 150px !important;\n-\t}\n-\t#wppm_task_filter{\n-\t\tmin-height: 30px !important;\n-    \tmax-height: 35px !important;\n-\t}\n-\t#wppm_view_project_task .wppm-add-new-btn:hover{\n-\t\tbackground-color: \u003C?php echo esc_attr($appearance_settings['menu-button-hover-color'])?>!important;\n-\t}\n-\u003C\u002Fstyle>\n-\u003Cscript type=\"text\u002Fjavascript\">\n-\tjQuery( document ).ready( function( jQuery ) {\n-\t\tdragula([\n-\t\t\t\u003C?php foreach($task_status as $status) { ?>\n-\t\t\t\tdocument.getElementById(\"wppm_card_body_container_\u003C?php echo esc_attr($status->id) ?>\"),\n-\t\t\t\u003C?php } ?>\n-\t\t], {removeOnSpill: false})\n-\t\t.on('drop', function (el,target,source) { \n-\t\t\twppm_drag_drop_card(el,target,source);\n-\t\t});\n-\t\n-\t\tjQuery(\"input[name='wppm_view_task_search_filter']\").keypress(function(e) {\n-\t\t\t\u002F\u002FEnter key\n-\t\t\tif (e.which == 13) {\n-\t\t\t\te.preventDefault();\n-\t\t\t\twppm_display_grid_view('\u003C?php echo esc_js($page) ?>','\u003C?php echo esc_js($id) ?>');\n-\t\t\t}\n-\t\t});\n-  \t}) \n-\tfunction wppm_show_dropdown_menu(task_id){\n-\t\tjQuery(\"#wppm_task_action_\"+task_id).gpopover({width: 50});\n-\t}\n-\n-\tfunction wppm_drag_drop_card(el,target,source){\n-\t\tvar data = {\n-\t\t\taction: 'wppm_drag_and_drop_card',\n-\t\t\tel:el.id,\n-\t\t\ttarget: target.id,\n-\t\t\tsource:source.id,\n-\t\t\t_ajax_nonce:jQuery(\"#wppm_drag_and_drop_card_ajax_nonce\").val()\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response) {\n-\t\t\twppm_display_grid_view('\u003C?php echo esc_js($page) ?>','\u003C?php echo esc_js($id) ?>');\n-\t\t});\n-\t}\n-\tjQuery('#wppm_task_list_proj_filter').select2({ dropdownAutoWidth: true, width: 'auto' });\n-  \tjQuery('#wppm_task_list_proj_filter').val(\u003C?php echo esc_attr($proj_filter) ?>);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$current_user, $wppmfunction;\r\n+$task_per_page = 20;\r\n+$total_no_of_rows = 0;\r\n+$totalrows_tasks = 0;\r\n+$appearance_settings = get_option(\"wppm-ap-grid-view\");\r\n+$cu_id = absint($current_user->ID);\r\n+$page_no = isset($_POST['page_no']) ? intval((sanitize_text_field(wp_unslash($_POST['page_no'])))) : '0';\r\n+$orderby_sql = (sanitize_sql_orderby( \"load_order ASC\" ));\r\n+$task_status = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses ORDER BY $orderby_sql\");\r\n+$wppm_task_time = get_option('wppm_task_time');\r\n+$page = isset($_POST['page']) ? sanitize_text_field(wp_unslash($_POST['page'])) : '';\r\n+$id = isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : 0;\r\n+$project_id = isset($_POST['project_id']) ? intval(sanitize_text_field(wp_unslash($_POST['project_id']))) : \"0\";\r\n+$wppm_date_setting = get_option('wppm_date_setting');\r\n+$search_tag = isset($_POST['task_search']) ? sanitize_text_field(wp_unslash($_POST['task_search'])) : '';\r\n+$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_filter'])) : \"all\";\r\n+$proj_filter = isset($_POST['wppm_proj_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_proj_filter'])) : \"0\";\r\n+$public_projects = isset($_POST['public_projects']) ? sanitize_text_field(wp_unslash($_POST['public_projects'])):\"0\";\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');\r\n+$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');\r\n+$wppm_deafault_time_duration_task = get_option('wppm_display_time_duration_task');\r\n+if(!empty($wppm_hide_task_statuses_from_frontend)){\r\n+  $wppm_hide_task_statuses_from_frontend = explode(\",\",$wppm_hide_task_statuses_from_frontend);\r\n+} else {\r\n+  $wppm_hide_task_statuses_from_frontend = '';\r\n+}\r\n+$filters = array(\r\n+\t'search' => $search_tag,\r\n+\t'filter'=>$filter_by,\r\n+\t'proj_filter'=>$proj_filter\r\n+);\r\n+$grid_view_filter = $filters ;\r\n+$tl_filters = isset( $_COOKIE['wppm_grid_view_filters'] ) ? sanitize_text_field( wp_unslash( $_COOKIE['wppm_grid_view_filters'] ) ) : $grid_view_filter;\r\n+$current_date = wp_date('Y-m-d');\r\n+$proj_attr = isset($_POST['wppm_project_attr']) ? sanitize_text_field(wp_unslash($_POST['wppm_project_attr'])):\"\";\r\n+$archived_where = \" AND is_archived = 0\";\r\n+if ( isset($page) && $page === 'wppm-archived-tasks' ) {\r\n+  $archived_where = \" AND is_archived = 1\";\r\n+}\r\n+if( isset($page) && $page === 'wppm-tasks'){\r\n+  $archived_where = \" AND is_archived = 0\";\r\n+}\r\n+if (!empty($proj_attr)) {\r\n+    $wppm_proj_attr = $wpdb->prepare(\r\n+        ' AND proj.project_name = %s',\r\n+        $proj_attr\r\n+    );\r\n+} else {\r\n+    $wppm_proj_attr = '';\r\n+}\r\n+if ($id != 0 || $project_id != 0) {\r\n+    $final_project_id = ($project_id != 0) ? intval($project_id) : intval($id);\r\n+    $wppm_project_filter = $wpdb->prepare(\r\n+        ' AND Task.project = %d',\r\n+        $final_project_id\r\n+    );\r\n+} else {\r\n+\r\n+    $wppm_project_filter = '';\r\n+}\r\n+\r\n+$query = (\"SELECT proj.*\r\n+\t\tFROM {$wpdb->prefix}wppm_project AS proj\r\n+\t\tLeft join {$wpdb->prefix}wppm_project_meta proj_meta ON proj.id = proj_meta.project_id\");\r\n+$santitize_order_by = esc_sql(sanitize_sql_orderby( \"project_name ASC\" ));\r\n+if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\r\n+\tif(!empty($proj_attr )){\r\n+\t\t$proj_attr = esc_sql($proj_attr);\r\n+\t\t$where = $wpdb->prepare( \r\n+\t\t\t\t\t\" WHERE proj.project_name = %s \r\n+\t\t\t\t\tGROUP BY proj.id \r\n+\t\t\t\t\tORDER BY {$santitize_order_by}\",\r\n+\t\t\t\t\t$proj_attr\r\n+\t\t\t\t);\r\n+\t}else{\r\n+\t\tif(!empty($public_projects)){\r\n+\t\t\t$where = $wpdb->prepare(\r\n+\t\t\t\t\t\t\" WHERE proj.id = proj_meta.project_id\r\n+\t\t\t\t\t\tAND proj_meta.meta_key = %s\r\n+\t\t\t\t\t\tAND proj_meta.meta_value = %d\r\n+\t\t\t\t\t\tGROUP BY proj.id\r\n+\t\t\t\t\t\tORDER BY {$santitize_order_by}\",\r\n+\t\t\t\t\t\t'public_project',\r\n+\t\t\t\t\t\t1\r\n+\t\t\t\t\t);\t\r\n+\t\t}else{\r\n+\t\t\t$where = \" Group by proj.id ORDER BY '$santitize_order_by'\";\r\n+\t\t}\r\n+\t}\r\n+}else{\r\n+\tif(!empty($public_projects)){\r\n+\t\t\t$where = $wpdb->prepare(\r\n+\t\t\t\t\" WHERE (\r\n+\t\t\t\t\tproj.id = proj_meta.project_id\r\n+\t\t\t\t\tAND proj_meta.meta_key = %s\r\n+\t\t\t\t\tAND proj_meta.meta_value = %d\r\n+\t\t\t\t)\r\n+\t\t\t\t{$wppm_proj_attr}\r\n+\t\t\t\tGROUP BY proj.id\r\n+\t\t\t\tORDER BY {$santitize_order_by}\",\r\n+\t\t\t\t'public_project',\r\n+\t\t\t\t1\r\n+\t\t\t);\t\r\n+\t} else{\r\n+\t\t$where = $wpdb->prepare(\r\n+\t\t\t\t\" WHERE (\r\n+\t\t\t\t\tFIND_IN_SET(%d, proj.users)\r\n+\t\t\t\t\tOR (\r\n+\t\t\t\t\t\tproj.id = proj_meta.project_id\r\n+\t\t\t\t\t\tAND proj_meta.meta_key = %s\r\n+\t\t\t\t\t\tAND proj_meta.meta_value = %d\r\n+\t\t\t\t\t)\r\n+\t\t\t\t\tOR (\r\n+\t\t\t\t\t\tproj.created_by = %d\r\n+\t\t\t\t\t)\r\n+\t\t\t\t)\r\n+\t\t\t\t{$wppm_proj_attr}\r\n+\t\t\t\tGROUP BY proj.id\r\n+\t\t\t\tORDER BY {$santitize_order_by}\",\r\n+\t\t\t\t$current_user->ID,\r\n+\t\t\t\t'public_project',\r\n+\t\t\t\t1,\r\n+\t\t\t\t$cu_id\r\n+\t\t\t);\r\n+\t}\r\n+}\r\n+$where = apply_filters('wppm_project_filter_in_task_list_grid_view_where',$where);\r\n+$query.= $where;\r\n+$projects = $wpdb->get_results($query);\r\n+$wppm_tl_filter = \"1=1\";\r\n+if(!is_array($tl_filters)){\r\n+\t$tl_filters  = json_decode($tl_filters);\r\n+\t$tl_filters_arr = (array) $tl_filters;\r\n+} else{\r\n+$tl_filters_arr = $filters;\r\n+}\r\n+$search_tag = isset($_POST['task_search']) ? sanitize_text_field(wp_unslash($_POST['task_search'])) : $tl_filters_arr['search'];\r\n+$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_filter'])) : $tl_filters_arr['filter'];\r\n+$proj_filter = isset($_POST['wppm_proj_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_proj_filter'])) : $tl_filters_arr['proj_filter'];\r\n+$filters = array(\r\n+\t'search'=>$search_tag,\r\n+\t'filter'=>$filter_by,\r\n+\t'proj_filter' =>$proj_filter\r\n+);\r\n+setcookie('wppm_grid_view_filters',wp_json_encode( $filters ),time() + 3600);\r\n+if($filter_by=='all'){\r\n+  if($wppm_hide_completed_status_task == 0){\r\n+     $wppm_tl_filter = \"Task.status!='4'\";\r\n+  }\r\n+}\r\n+if($filter_by=='4'){\r\n+\t$wppm_tl_filter = \"Task.status='4'\";\r\n+}elseif($filter_by=='overdue'){\r\n+\t$wppm_tl_filter = \"Task.status!='4' AND (CAST(Task.end_date AS DATE)) \u003C '$current_date'\";\r\n+}elseif($filter_by == 'unassigned'){\r\n+\t$wppm_tl_filter = \"Task.users=''\";\r\n+}elseif($filter_by == '1'){\r\n+\t$wppm_tl_filter = \"Task.status='1'\";\r\n+}elseif($filter_by == '2'){\r\n+\t$wppm_tl_filter = \"Task.status='2'\";\r\n+}elseif($filter_by == '3'){\r\n+\t$wppm_tl_filter = \"Task.status='3'\";\r\n+}elseif($filter_by == 'mine'){\r\n+\t$wppm_tl_filter = \"(FIND_IN_SET('$current_user->ID',Task.users)>0)\";\r\n+}elseif($filter_by == 'archived'){\r\n+  $wppm_tl_filter = \"Task.is_archived = 1\";\r\n+}\r\n+\r\n+if(!empty($wppm_hide_task_statuses_from_frontend) && is_array($wppm_hide_task_statuses_from_frontend) && (isset($_POST['is_frontend']) && sanitize_text_field($_POST['is_frontend'])==1)){\r\n+  foreach($wppm_hide_task_statuses_from_frontend as $status){\r\n+    $wppm_tl_filter .= \" AND Task.status != '$status'\";\r\n+  }\r\n+}\r\n+\r\n+if($proj_filter!=0){\r\n+\t$wppm_task_by_proj_filter = \"Task.project = \".esc_sql($proj_filter).\"\";\r\n+}else{\r\n+\t$wppm_task_by_proj_filter =\"1=1\";\r\n+}\r\n+if(!empty($task_status)){\r\n+\tforeach($task_status as $status) {\r\n+\t\t$status_id = esc_sql($status->id);\r\n+\t\tif(!empty($search_tag)){\r\n+\t\t\t$search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';\r\n+\t\t\tif($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\r\n+\t\t\t\t$query = (\"SELECT Task.*\r\n+\t\t\t\t\t\t\tFROM {$wpdb->prefix}wppm_task AS Task\r\n+\t\t\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\r\n+\t\t\t\t\t\t\tLeft join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id\r\n+\t\t\t\t\t\t\tLeft join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id\r\n+\t\t\t\t\t\t\tLeft join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'\r\n+\t\t\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\r\n+\t\t\t\t\t\t\");\r\n+\t\t\t\t$no_of_rows = ( \"SELECT count(*) FROM ($query\");\r\n+\t\t\t\tif(!empty($public_projects)){\r\n+\t\t\t\t\t$where = $wpdb->prepare(\r\n+\t\t\t\t\t\t\t\" WHERE (\r\n+\t\t\t\t\t\t\t\tproj_meta.meta_key = %s\r\n+\t\t\t\t\t\t\t\tAND proj_meta.meta_value = %d\r\n+\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\tAND {$wppm_tl_filter}\r\n+\t\t\t\t\t\t\tAND {$wppm_task_by_proj_filter}\r\n+\t\t\t\t\t\t\tAND (\r\n+\t\t\t\t\t\t\t\tTask.task_name LIKE %s\r\n+\t\t\t\t\t\t\t\tOR proj.project_name LIKE %s\r\n+\t\t\t\t\t\t\t\tOR task_statuses.name LIKE %s\r\n+\t\t\t\t\t\t\t\tOR task_priorities.name LIKE %s\r\n+\t\t\t\t\t\t\t\tOR user.display_name LIKE %s\r\n+\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\tAND Task.status = %d \",\r\n+\t\t\t\t\t\t\t'public_project',\r\n+\t\t\t\t\t\t\t1,\r\n+\t\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t\t$status_id\r\n+\t\t\t\t\t\t);\r\n+\t\t\t\t}else{\r\n+\t\t\t\t\t$where = $wpdb->prepare(\r\n+\t\t\t\t\t\t\" WHERE {$wppm_tl_filter}\r\n+\t\t\t\t\t\tAND {$wppm_task_by_proj_filter}\r\n+\t\t\t\t\t\tAND (\r\n+\t\t\t\t\t\t\tTask.task_name LIKE %s\r\n+\t\t\t\t\t\t\tOR proj.project_name LIKE %s\r\n+\t\t\t\t\t\t\tOR task_statuses.name LIKE %s\r\n+\t\t\t\t\t\t\tOR task_priorities.name LIKE %s\r\n+\t\t\t\t\t\t\tOR user.display_name LIKE %s\r\n+\t\t\t\t\t\t)\r\n+\t\t\t\t\t\tAND Task.status = %d \",\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$status_id\r\n+\t\t\t\t\t);\t\t\t\t\r\n+\t\t\t\t}\r\n+\t\t\t} else{\r\n+\t\t\t\t$query = (\"SELECT Task.*\r\n+\t\t\t\t\tFROM {$wpdb->prefix}wppm_task AS Task\r\n+\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\r\n+\t\t\t\t\tLeft join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id\r\n+\t\t\t\t\tLeft join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id\r\n+\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id\r\n+\t\t\t\t\tLeft join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'\r\n+\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\r\n+\t\t\t\t\t\");\r\n+\t\t\t\t$no_of_rows = ( \"SELECT count(*) FROM ($query\");\r\n+\t\t\t\tif(!empty($public_projects)){\r\n+\t\t\t\t\t$where = $wpdb->prepare(\r\n+\t\t\t\t\t\t\" WHERE (\r\n+\t\t\t\t\t\t\tproj_meta.meta_key = %s\r\n+\t\t\t\t\t\t\tAND proj_meta.meta_value = %d\r\n+\t\t\t\t\t\t)\r\n+\t\t\t\t\t\tAND {$wppm_tl_filter}\r\n+\t\t\t\t\t\tAND {$wppm_task_by_proj_filter}\r\n+\t\t\t\t\t\tAND (\r\n+\t\t\t\t\t\t\tTask.task_name LIKE %s\r\n+\t\t\t\t\t\t\tOR proj.project_name LIKE %s\r\n+\t\t\t\t\t\t\tOR task_statuses.name LIKE %s\r\n+\t\t\t\t\t\t\tOR task_priorities.name LIKE %s\r\n+\t\t\t\t\t\t\tOR user.display_name LIKE %s\r\n+\t\t\t\t\t\t)\r\n+\t\t\t\t\t\tAND Task.status = %d \",\r\n+\t\t\t\t\t\t'public_project',\r\n+\t\t\t\t\t\t1,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$status_id\r\n+\t\t\t\t\t);\r\n+\t\t\t\t}else{\r\n+\t\t\t\t\t$where = $wpdb->prepare(\r\n+\t\t\t\t\t\t\" WHERE {$wppm_tl_filter}\r\n+\t\t\t\t\t\tAND {$wppm_task_by_proj_filter}\r\n+\t\t\t\t\t\tAND (\r\n+\t\t\t\t\t\t\t(\r\n+\t\t\t\t\t\t\t\tFIND_IN_SET(%d, Task.users) > 0\r\n+\t\t\t\t\t\t\t\tOR Task.created_by = %d\r\n+\t\t\t\t\t\t\t\tOR (\r\n+\t\t\t\t\t\t\t\t\tproj_users.user_id = %d\r\n+\t\t\t\t\t\t\t\t\tAND proj_users.role_id = %d\r\n+\t\t\t\t\t\t\t\t\tAND FIND_IN_SET(%d, proj.users) > 0\r\n+\t\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\t\tOR (\r\n+\t\t\t\t\t\t\t\t\tTask.project = proj_meta.project_id\r\n+\t\t\t\t\t\t\t\t\tAND proj_meta.meta_key = %s\r\n+\t\t\t\t\t\t\t\t\tAND proj_meta.meta_value = %d\r\n+\t\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\t\tOR proj.created_by = %d\r\n+\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\tAND (\r\n+\t\t\t\t\t\t\t\tTask.task_name LIKE %s\r\n+\t\t\t\t\t\t\t\tOR proj.project_name LIKE %s\r\n+\t\t\t\t\t\t\t\tOR task_statuses.name LIKE %s\r\n+\t\t\t\t\t\t\t\tOR task_priorities.name LIKE %s\r\n+\t\t\t\t\t\t\t\tOR user.display_name LIKE %s\r\n+\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t)\r\n+\t\t\t\t\t\tAND Task.status = %d \",\r\n+\t\t\t\t\t\t$current_user->ID,\r\n+\t\t\t\t\t\t$cu_id,\r\n+\t\t\t\t\t\t$cu_id,\r\n+\t\t\t\t\t\t1,\r\n+\t\t\t\t\t\t$current_user->ID,\r\n+\t\t\t\t\t\t'public_project',\r\n+\t\t\t\t\t\t1,\r\n+\t\t\t\t\t\t$cu_id,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$search_tag_text,\r\n+\t\t\t\t\t\t$status_id\r\n+\t\t\t\t\t);\r\n+\t\t\t\t}\r\n+\t\t\t}\r\n+\t\t}else{\r\n+\t\t\tif($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\r\n+\t\t\t\t$query = ( \"SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task\r\n+\t\t\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\r\n+\t\t\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\r\n+\t\t\t\t\");\r\n+\t\t\t\t$no_of_rows = ( \"SELECT count(*) FROM ($query\");\r\n+\t\t\t\tif(!empty($public_projects)){\r\n+\t\t\t\t\t$where = $wpdb->prepare(\r\n+\t\t\t\t\t\t\t\" WHERE (\r\n+\t\t\t\t\t\t\t\tproj_meta.meta_key = %s\r\n+\t\t\t\t\t\t\t\tAND proj_meta.meta_value = %d\r\n+\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\tAND {$wppm_tl_filter}\r\n+\t\t\t\t\t\t\tAND {$wppm_task_by_proj_filter}\r\n+\t\t\t\t\t\t\tAND Task.status = %d \",\r\n+\t\t\t\t\t\t\t'public_project',\r\n+\t\t\t\t\t\t\t1,\r\n+\t\t\t\t\t\t\t$status_id\r\n+\t\t\t\t\t\t);\r\n+\t\t\t\t}else{\r\n+\t\t\t\t\t$where = $wpdb->prepare(\r\n+\t\t\t\t\t\t\" WHERE {$wppm_tl_filter}\r\n+\t\t\t\t\t\tAND {$wppm_task_by_proj_filter}\r\n+\t\t\t\t\t\tAND Task.status = %d \",\r\n+\t\t\t\t\t\t$status_id\r\n+\t\t\t\t\t);\r\n+\t\t\t\t}\r\n+\t\t\t}else{\r\n+\t\t\t\t$query = ( \"SELECT Task.*\r\n+\t\t\t\t\tFROM {$wpdb->prefix}wppm_task AS Task\r\n+\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\r\n+\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id\r\n+\t\t\t\t\tLeft join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\r\n+\t\t\t\t\t\");\r\n+\t\t\t\t$no_of_rows = ( \"SELECT count(*) FROM ($query\");\r\n+\t\t\t\tif(!empty($public_projects)){\r\n+\t\t\t\t\t$where = $wpdb->prepare(\r\n+\t\t\t\t\t\t\t\" WHERE (\r\n+\t\t\t\t\t\t\t\tproj_meta.meta_key = %s\r\n+\t\t\t\t\t\t\t\tAND proj_meta.meta_value = %d\r\n+\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\tAND {$wppm_tl_filter}\r\n+\t\t\t\t\t\t\tAND {$wppm_task_by_proj_filter}\r\n+\t\t\t\t\t\t\tAND Task.status = %d \",\r\n+\t\t\t\t\t\t\t'public_project',\r\n+\t\t\t\t\t\t\t1,\r\n+\t\t\t\t\t\t\t$status_id\r\n+\t\t\t\t\t\t);\r\n+\t\t\t\t} else{\r\n+\t\t\t\t\t$where = $wpdb->prepare(\r\n+\t\t\t\t\t\t\" WHERE {$wppm_tl_filter}\r\n+\t\t\t\t\t\tAND {$wppm_task_by_proj_filter}\r\n+\t\t\t\t\t\tAND (\r\n+\t\t\t\t\t\t\tFIND_IN_SET(%d, Task.users) > 0\r\n+\t\t\t\t\t\t\tOR Task.created_by = %d\r\n+\t\t\t\t\t\t\tOR (\r\n+\t\t\t\t\t\t\t\tproj_users.user_id = %d\r\n+\t\t\t\t\t\t\t\tAND proj_users.role_id = %d\r\n+\t\t\t\t\t\t\t\tAND FIND_IN_SET(%d, proj.users) > 0\r\n+\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\tOR (\r\n+\t\t\t\t\t\t\t\tTask.project = proj_meta.project_id\r\n+\t\t\t\t\t\t\t\tAND proj_meta.meta_key = %s\r\n+\t\t\t\t\t\t\t\tAND proj_meta.meta_value = %d\r\n+\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\tOR proj.created_by = %d\r\n+\t\t\t\t\t\t)\r\n+\t\t\t\t\t\tAND Task.status = %d \",\r\n+\t\t\t\t\t\t$current_user->ID,\r\n+\t\t\t\t\t\t$cu_id,\r\n+\t\t\t\t\t\t$cu_id,\r\n+\t\t\t\t\t\t1,\r\n+\t\t\t\t\t\t$current_user->ID,\r\n+\t\t\t\t\t\t'public_project',\r\n+\t\t\t\t\t\t1,\r\n+\t\t\t\t\t\t$cu_id,\r\n+\t\t\t\t\t\t$status_id\r\n+\t\t\t\t\t);\r\n+\t\t\t\t}\r\n+\t\t\t}\r\n+\t\t} \r\n+\t\t$query = apply_filters('wppm_query_for_grid_view',$query);\r\n+\t\t$no_of_rows = apply_filters('wppm_number_of_rows_query_for_grid_view',$no_of_rows);\r\n+\t\t$where.= $wppm_proj_attr;\r\n+\t\tif($filter_by != 'archived'){\r\n+\t\t\t$where .= $archived_where;\r\n+\t\t}\r\n+\t\tif($id!=0){\r\n+\t\t\t$where .=$wppm_project_filter;\r\n+\t\t}\r\n+\t\t$where = apply_filters('wppm_task_list_where_for_grid_view',$where,$wppm_tl_filter,$search_tag);\r\n+\t\t$no_of_rows .= $where;\r\n+\t\t$no_of_rows .= \" Group by Task.id) AS Task\";\r\n+\t\t$no_of_rows = apply_filters('wppm_task_list_no_of_rows_for_grid_view',$no_of_rows);\r\n+\t\t$totalrows = $wpdb->get_var($no_of_rows);\r\n+\t\t$totalrows_tasks +=$totalrows;\r\n+\t\tif($total_no_of_rows > $totalrows){\r\n+\t\t\t$totalrows = $total_no_of_rows;\r\n+\t\t}else{\r\n+\t\t\t$total_no_of_rows = $totalrows;\r\n+\t\t}\r\n+\t\t$limit_start=$page_no*$task_per_page;\r\n+\t\t$limit=\"\\n LIMIT \".$limit_start.\",\".$task_per_page.\" \";\r\n+\t\t$current_page=$page_no+1;\r\n+\t\t$query = apply_filters('wppm_tasks_grid_view_query',$query,$search_tag);\r\n+\t\t$where .= \" Group by Task.id\";\r\n+\t\t$query .= $where;\r\n+\t\t$query = apply_filters('wppm_task_list_grid_view_query',$query);\r\n+\t\t$query = $query.$limit;\r\n+\t\t$wppm_task_fillter[] = $wpdb->get_results($query);\r\n+\t}\r\n+\t$total_pages=ceil($total_no_of_rows\u002F$task_per_page);\r\n+\t$prev_page_no=$current_page-1;\r\n+\t$prev_class=(!$prev_page_no)?'disabled':'';\r\n+\t$next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;\r\n+\t$next_class=($total_pages==$current_page)?'disabled':'';\r\n+\t$flag = false;\r\n+\tif(!empty($wppm_task_fillter)){\r\n+\t\tforeach($wppm_task_fillter as $key_filter=>$val_filter){\r\n+\t\t\tforeach($val_filter as $key=>$val){\r\n+\t\t\t\t$val_array = (array) $val;\r\n+\t\t\t\t$tusers =  $val_array['users'];\r\n+\t\t\t\t$tusers_arr = explode(',',$tusers);\r\n+\t\t\t\t$tproject_id = ($val_array['project']);\r\n+\t\t\t\tif(!empty($tusers) && in_array($current_user->ID,$tusers_arr)){\r\n+\t\t\t\t\t$project_user_role = $wpdb->get_var( $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", absint($tproject_id), absint($cu_id)));\r\n+\t\t\t\t\t$project_users = $wpdb->get_var( $wpdb->prepare( \"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\", absint($tproject_id)));\r\n+\t\t\t\t\t$project_users_arr = explode(',',(string)$project_users);\r\n+\t\t\t\t\tif((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)){\r\n+\t\t\t\t\t\t$flag = true;\r\n+\t\t\t\t\t\tbreak;\r\n+\t\t\t\t\t}\r\n+\t\t\t\t}\r\n+\t\t\t}\r\n+\t\t}\r\n+\t}\r\n+}\r\n+$todo_status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id=%d\",1));\r\n+$inp_status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id=%d\",2));\r\n+$hold_status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id=%d\",3));\r\n+$completed_status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id=%d\",4));\r\n+$todo_status_style = (!empty($todo_status_name))? \"display:inline\" :\"display:none;\";\r\n+$inp_status_style = (!empty($inp_status_name))? \"display:inline\" :\"display:none;\";\r\n+$hold_status_style = (!empty($hold_status_name))? \"display:inline\" :\"display:none;\";\r\n+$completed_status_style = (!empty($completed_status_name))? \"display:inline\" :\"display:none;\";\r\n+if ( empty( $id ) ) {\r\n+\t$proj_filter_style = 'display:inline;';\r\n+} else {\r\n+   $proj_filter_style = 'display:none;';\r\n+}\r\n+if( isset($page) && $page === 'wppm-tasks'){\r\n+\t$arch_filter_style = \"display:inline;\";\r\n+\t$dashboard_style  = \"display:inline;\";\r\n+}else{\r\n+  \t$arch_filter_style = \"display:none;\";\r\n+\t$dashboard_style  = \"display:none;\";\r\n+}\r\n+\r\n+if ( isset($page) && $page === 'wppm-archived-tasks' ) {\r\n+  $arch_filter_style = \"display:none;\";\r\n+} else {\r\n+  $arch_filter_style = \"display:flex;\";\r\n+}\r\n+?>\r\n+\u003Cform name=\"wppm_view_project_task\" id=\"wppm_view_project_task\">\r\n+\t\u003Cdiv class=\"row\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+\t\t\t\u003C?php \r\n+\t\t\tif(($current_user->has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',0) || $wppm_current_user_capability=='wppm_manager'|| ($flag==true)) && (isset($page) && $page != 'wppm-archived-tasks' )){\r\n+\t\t\t\t$style = \"display:inline;\";\r\n+\t\t\t}else{\r\n+\t\t\t\t$style = \"display:none;\";\r\n+\t\t\t}\r\n+\t\t\t$style = apply_filters('wppm_add_new_task_btn_style_grid_view',$style);\r\n+\t\t\t?>\r\n+\t\t\t\u003Cspan class=\"wppm-heading-inline\" style=\"\u003C?php echo esc_attr($proj_filter_style);?>\">\u003C?php echo (isset($page) && $page === 'wppm-archived-tasks' ) ? esc_html_e('Archived Tasks','taskbuilder'): esc_html_e('Tasks','taskbuilder');?> \u003C\u002Fspan>\r\n+\t\t\t\u003Cspan class=\"wppm-add-new-btn btn-primary\" onclick=\"wppm_add_new_task('',\u003C?php echo (int)$id; ?>)\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;\u003C?php echo esc_attr($style) ?>;\u003C?php echo esc_attr($proj_filter_style);?>\">\u003Cimg class=\"wppm_add_new_task_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus_icon.svg'); ?>\" alt=\"add\">\u003C?php echo esc_html_e('Add New','taskbuilder');?>\u003C\u002Fspan>\r\n+\t\t\t\u003C!-- Dashboard Button -->\r\n+\t\t\t\u003Cspan class=\"wppm-add-new-btn btn-primary\" style=\"\u003C?php echo esc_attr($dashboard_style);?>;background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;margin-right:3px;\">\u003Ca href=\"\u003C?php echo esc_url( admin_url('admin.php?page=wppm-dashboard') ); ?>\"\r\n+\t\t\t\tstyle=\"margin-right:10px;\">\r\n+\t\t\t\t\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdashboard.svg'); ?>\" alt=\"dashboard_icon\">\r\n+\t\t\t\t\u003C?php esc_html_e('Dashboard','taskbuilder'); ?>\r\n+\t\t\t\u003C\u002Fa>\u003C\u002Fspan>\t\t\r\n+\t\t\t\u003Cspan class=\"wppm-add-new-btn btn-primary\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;\u003C?php echo esc_attr($proj_filter_style);?>; id=\"wppm_task_list\" onclick=\"wppm_get_task_list()\" >\u003Cspan>\u003Cimg class=\"wppm_task_list_image\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist-symbol.svg'); ?>\" alt=\"list\">\u003C\u002Fspan>\u003Cspan style=\"color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;\u003C?php echo esc_attr($proj_filter_style);?>\">\u003C?php echo esc_html_e('Task List','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+\t\t\u003C\u002Fdiv>\r\n+\t\u003C\u002Fdiv>\r\n+\t\u003Cdiv style=\"display:flex;justify-content:space-between;margin-top: 20px;flex-wrap: wrap;\">\r\n+      \t\u003Cdiv style=\"display:flex;flex-wrap: wrap;\">\r\n+\t\t\t\u003Cdiv id=\"wppm_task_filter_container\">\r\n+\t\t\t\t\u003Cdiv class=\"wppm-filter-item\">\r\n+\t\t\t\t\t\u003Clabel for=\"wppm_task_filter\"> \u003C?php echo esc_html_e('Filter','taskbuilder');?>\u003C\u002Flabel>\r\n+\t\t\t\t\t\u003Cselect id=\"wppm_task_filter\" name=\"wppm_task_filter\" onchange=\"wppm_apply_task_filter_grid_view('\u003C?php echo esc_attr($page)?>','\u003C?php echo esc_attr($id)?>')\" class=\"form-control\">\r\n+\t\t\t\t\t\u003Coption value=\"all\"\u003C?php echo ($filter_by == \"all\")? 'selected':\"\"?>>\u003C?php echo esc_html_e('All','taskbuilder');?>\u003C\u002Foption>\r\n+\t\t\t\t\t\u003Coption value=\"1\" style=\"\u003C?php echo esc_attr($todo_status_style) ?>\" \u003C?php echo ($filter_by == \"1\")? 'selected':\"\"?>>\u003C?php echo  esc_html($todo_status_name);?>\u003C\u002Foption>\r\n+\t\t\t\t\t\u003Coption value=\"2\" style=\"\u003C?php echo esc_attr($inp_status_style) ?>\" \u003C?php echo ($filter_by == \"2\")? 'selected':\"\"?>>\u003C?php echo  esc_html($inp_status_name);?>\u003C\u002Foption>\r\n+\t\t\t\t\t\u003Coption value=\"3\" style=\"\u003C?php echo esc_attr($hold_status_style) ?>\" \u003C?php echo ($filter_by == \"3\")? 'selected':\"\"?>>\u003C?php echo  esc_html($hold_status_name);?>\u003C\u002Foption>\r\n+\t\t\t\t\t\u003Coption value=\"4\" style=\"\u003C?php echo esc_attr($completed_status_style) ?>\" \u003C?php echo ($filter_by == \"4\")? 'selected':\"\"?>>\u003C?php echo  esc_html($completed_status_name);?>\u003C\u002Foption>\r\n+\t\t\t\t\t\u003Coption value=\"mine\" \u003C?php echo ($filter_by == \"mine\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Mine','taskbuilder');?>\u003C\u002Foption>\r\n+\t\t\t\t\t\u003Coption value=\"unassigned\" \u003C?php echo ($filter_by == \"unassigned\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Unassigned','taskbuilder');?>\u003C\u002Foption>\r\n+\t\t\t\t\t\u003Coption value=\"overdue\" \u003C?php echo ($filter_by == \"overdue\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Overdue','taskbuilder');?>\u003C\u002Foption>\r\n+\t\t\t\t\t\u003Coption value=\"archived\" style=\"\u003C?php echo esc_attr($arch_filter_style) ?>\" \u003C?php echo ($filter_by == \"archived\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Archived','taskbuilder');?>\u003C\u002Foption>\r\n+\t\t\t\t\t\u003C\u002Fselect>\r\n+\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\u003Cdiv class=\"wppm-filter-item wppm_project_autocomplete_container\" style=\"\u003C?php echo esc_attr($proj_filter_style)?>\">\r\n+\t\t\t\t\t\u003Clabel for=\"wppm_task_list_proj_filter\">\r\n+\t\t\t\t\t\t\u003C?php echo esc_html_e('Project','taskbuilder');?>\r\n+\t\t\t\t\t\u003C\u002Flabel>\u003Cbr>\r\n+\t\t\t\t\t\u003Cselect searchable=\"search here\" onchange=\"wppm_tasks_by_select_project_grid_view('\u003C?php echo esc_attr($page)?>')\" class=\"form-control\" size=\"40\" name=\"wppm_task_list_proj_filter\" id=\"wppm_task_list_proj_filter\">\r\n+\t\t\t\t\t\t\u003Coption value=\"0\" \u003C?php echo ($proj_filter == 0)? 'selected':\"\"?>>\u003C?php echo esc_html_e('All','taskbuilder');?>\u003C\u002Foption>\r\n+\t\t\t\t\t\t\u003C?php \r\n+\t\t\t\t\t\t\tif(!empty($projects)){\r\n+\t\t\t\t\t\t\t\tforeach($projects as $proj) { \r\n+\t\t\t\t\t\t\t\t\t?>\r\n+\t\t\t\t\t\t\t\t\t\u003Coption value=\"\u003C?php echo esc_attr($proj->id)?>\" \u003C?php echo ($proj_filter == $proj->id)? 'selected':\"\"?>>\u003C?php echo esc_html($proj->project_name,'taskbuilder');?>\u003C\u002Foption>\r\n+\t\t\t\t\t\t\t\u003C?php } \r\n+\t\t\t\t\t\t\t} ?>\r\n+\t\t\t\t\t\u003C\u002Fselect>\r\n+\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\u003Cdiv class=\"wppm_display_submit\">\r\n+\t\t\t\t\t\u003Cdiv class=\"wppm-filter-actions\">\r\n+\t\t\t\t\t\t\u003Cspan class=\"wppm-link\" onclick=\"wppm_tl_reset_grid_view_filter('\u003C?php echo esc_attr($page)?>',\u003C?php echo esc_attr($id)?>)\"> \u003C?php echo esc_html_e('Reset','taskbuilder');?>\u003C\u002Fspan>\r\n+\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\u003C\u002Fdiv>\r\n+\t\t\u003C\u002Fdiv>\r\n+\t\t\u003Cdiv id=\"wppm_task_search\" style=\"display:flex;justify-content:flex-end;\">\r\n+          \u003Cimg width=\"25px\" height=\"15\" class=\"wppm_task_search_filter_img\" style=\"position: relative;top: 10px;left: 30px;\" height=\"15px\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsearch.svg'); ?>\" alt=\"search\">\r\n+          \u003Cinput type=\"search\" id=\"wppm_view_task_search_filter\" style=\"margin-right:10px;\" name=\"wppm_view_task_search_filter\" class=\"form-control form-control-sm\" aria-controls=\"selection-datatable\" placeholder=\"\u003C?php echo esc_attr__('Search','taskbuilder');?>\" value=\"\u003C?php echo (!empty($search_tag)) ? esc_attr($search_tag) : \"\" ?>\">\r\n+        \u003C\u002Fdiv>\r\n+\t\u003C\u002Fdiv>\r\n+\t\u003Cinput type=\"hidden\" name=\"wppm_proj_id\" id=\"wppm_proj_id\" value=\"\u003C?php echo esc_attr($id);?>\">\r\n+\t\u003Cdiv style=\"display:flex;justify-content:flex-end;margin-right:10px;\">\r\n+\t\t\u003Cspan id=\"wppm_list_view_btn\" style=\"margin: 0 0 -30px 0;\u003C?php echo esc_attr($proj_filter_style);?>\" onclick=\"wppm_get_task_list(0,\u003C?php echo esc_attr($id)?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flistv.svg'); ?>\" alt=\"list\">\u003Cspan style=\"margin-left:5px;\">\u003C?php echo esc_html_e('List view','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+\t\u003C\u002Fdiv>\r\n+\t\u003Cdiv class=\"wppm_task_container\" id=\"wppm_task_container\" style=\"display:flex;\">\r\n+\t\t\u003C?php \r\n+\t\tif(!empty($task_status)){\r\n+\t\t\tforeach($task_status as $status) {\r\n+\t\t\t\t?>\r\n+\t\t\t\t\u003Cdiv class=\"wppm_task_list\" id=\"wppm_task_list_\u003C?php echo esc_attr($status->id)?>\" style=\"display:flex;justify-content:space-between;flex-direction: column;flex-basis: 20%;\">\r\n+\t\t\t\t\t\u003Cdiv>\r\n+\t\t\t\t\t\t\u003Cdiv style=\"background-color:\u003C?php echo esc_attr($status->bg_color)?>;color:\u003C?php echo esc_attr($status->color);?>;padding:5px;\"> \r\n+\t\t\t\t\t\t\t\u003Cspan class=\"wppm_status_name\">\u003C?php echo esc_html($status->name);?>\u003C\u002Fspan>\r\n+\t\t\t\t\t\t\t\u003Cspan class=\"wppm_add_new_icon\" onclick=\"wppm_add_new_task('',\u003C?php echo (int)$id; ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fadd_new1.svg'); ?>\" alt=\"add\">\u003C\u002Fspan>\r\n+\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\u003Cdiv id=\"wppm_card_body_container_\u003C?php echo esc_attr($status->id) ?>\" style=\"height:100%;\">\r\n+\t\t\t\t\t\u003C?php\r\n+\t\t\t\t\t$total_checklist_items=0;\r\n+\t\t\t\t\t$total_checked_items=0;\r\n+\t\t\t\t\t$task_per_status = false;\r\n+\t\t\t\t\t$total_tasks = 0;\r\n+\t\t\t\t\tif(!empty($wppm_task_fillter)){\r\n+\t\t\t\t\t\tforeach($wppm_task_fillter as $key=>$tasks){\r\n+\t\t\t\t\t\t\tforeach($tasks as $task){\r\n+\t\t\t\t\t\t\t\t$total_tasks++;\r\n+\t\t\t\t\t\t\t\t$wppm_task_duration = $wppmfunction->wppm_get_duration($task->start_date,$task->end_date);\r\n+\t\t\t\t\t\t\t\tif((!empty($task)) && $task->status==$status->id){\r\n+\t\t\t\t\t\t\t\t\t$task_per_status = true;\r\n+\t\t\t\t\t\t\t\t\tif(isset($task->priority)){\r\n+\t\t\t\t\t\t\t\t\t\t$tpriority = ($task->priority);\r\n+\t\t\t\t\t\t\t\t\t\t$task_priority = $wpdb->get_row(\r\n+\t\t\t\t\t\t\t\t\t\t\t$wpdb->prepare(\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities \r\n+\t\t\t\t\t\t\t\t\t\t\t\tWHERE id = %d\",\r\n+\t\t\t\t\t\t\t\t\t\t\t\tabsint($tpriority)\r\n+\t\t\t\t\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\t\t\t\t);\r\n+\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\tif($wppm_task_time == 1){\r\n+\t\t\t\t\t\t\t\t\t\t$task_end_date = $task->end_date;\r\n+\t\t\t\t\t\t\t\t\t\t$teDate = new DateTime($task->end_date);\r\n+\t\t\t\t\t\t\t\t\t\tif($task->end_date=='0000-00-00 00:00:00'){\r\n+\t\t\t\t\t\t\t\t\t\t\tif($wppm_date_setting=='Y-m-d H:i:s'){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '0000-00-00 00:00:00';\r\n+\t\t\t\t\t\t\t\t\t\t\t}elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '00-00-0000 00:00:00';\r\n+\t\t\t\t\t\t\t\t\t\t\t}elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '00-00-0000 00:00:00';\r\n+\t\t\t\t\t\t\t\t\t\t\t}else{\r\n+\t\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '0000-00-00 00:00:00';\r\n+\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t}else{\r\n+\t\t\t\t\t\t\t\t\t\t\t$task_end_date = $teDate->format($wppm_date_setting);\r\n+\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t}elseif($wppm_task_time == 0){\r\n+\t\t\t\t\t\t\t\t\t\t$teDate = new DateTime($task->end_date);\r\n+\t\t\t\t\t\t\t\t\t\t$task_end_date = $teDate->format('Y-m-d');\r\n+\t\t\t\t\t\t\t\t\t\tif($task->end_date=='0000-00-00 00:00:00'){\r\n+\t\t\t\t\t\t\t\t\t\t\tif($wppm_date_setting=='Y-m-d H:i:s'){\r\n+\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '0000-00-00';\r\n+\t\t\t\t\t\t\t\t\t\t\t}elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '00-00-0000';\r\n+\t\t\t\t\t\t\t\t\t\t\t}elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '00-00-0000';\r\n+\t\t\t\t\t\t\t\t\t\t\t}else{\r\n+\t\t\t\t\t\t\t\t\t\t\t$task_end_date = '0000-00-00';\r\n+\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t}else{\r\n+\t\t\t\t\t\t\t\t\t\t\tif($wppm_date_setting=='Y-m-d H:i:s'){\r\n+\t\t\t\t\t\t\t\t\t\t\t$task_end_date = $teDate->format('Y-m-d');\r\n+\t\t\t\t\t\t\t\t\t\t\t}elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+\t\t\t\t\t\t\t\t\t\t\t$task_end_date = $teDate->format('d-m-Y');\r\n+\t\t\t\t\t\t\t\t\t\t\t}elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+\t\t\t\t\t\t\t\t\t\t\t$task_end_date = $teDate->format('m-d-Y');\r\n+\t\t\t\t\t\t\t\t\t\t\t}else{\r\n+\t\t\t\t\t\t\t\t\t\t\t$task_end_date = $teDate->format('Y-m-d');\r\n+\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\tif(!empty($task->id)){\r\n+\t\t\t\t\t\t\t\t\t\t$tid = absint( $task->id );\r\n+\t\t\t\t\t\t\t\t\t\t$checklists = $wpdb->get_results(\r\n+\t\t\t\t\t\t\t\t\t\t\t$wpdb->prepare(\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\"SELECT * FROM {$wpdb->prefix}wppm_checklist WHERE task_id = %d\",\r\n+\t\t\t\t\t\t\t\t\t\t\t\t$tid\r\n+\t\t\t\t\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\t\t\t\t);\r\n+\t\t\t\t\t\t\t\t\t\t$total = $wpdb->get_var(\r\n+\t\t\t\t\t\t\t\t\t\t\t$wpdb->prepare(\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\"SELECT COUNT(Items.id)\r\n+\t\t\t\t\t\t\t\t\t\t\t\tFROM {$wpdb->prefix}wppm_checklist_items AS Items\r\n+\t\t\t\t\t\t\t\t\t\t\t\tLEFT JOIN {$wpdb->prefix}wppm_checklist AS checklist\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\tON Items.checklist_id = checklist.id\r\n+\t\t\t\t\t\t\t\t\t\t\t\tWHERE checklist.task_id = %d\",\r\n+\t\t\t\t\t\t\t\t\t\t\t\t$tid\r\n+\t\t\t\t\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\t\t\t\t);\r\n+\t\t\t\t\t\t\t\t\t\t$total_checked_items = (int) $wpdb->get_var(\r\n+\t\t\t\t\t\t\t\t\t\t\t$wpdb->prepare(\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\"SELECT COUNT(Items.id)\r\n+\t\t\t\t\t\t\t\t\t\t\t\tFROM {$wpdb->prefix}wppm_checklist_items AS Items\r\n+\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN {$wpdb->prefix}wppm_checklist AS checklist\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\tON Items.checklist_id = checklist.id\r\n+\t\t\t\t\t\t\t\t\t\t\t\tWHERE checklist.task_id = %d\r\n+\t\t\t\t\t\t\t\t\t\t\t\tAND Items.checked = 1\",\r\n+\t\t\t\t\t\t\t\t\t\t\t\tabsint($tid)\r\n+\t\t\t\t\t\t\t\t\t\t\t)\r\n+\t\t\t\t\t\t\t\t\t\t);\r\n+\t\t\t\t\t\t\t\t\t\t$project_data = $wppmfunction->get_project($task->project);\r\n+\t\t\t\t\t\t\t\t\t\t?>\r\n+\t\t\t\t\t\t\t\t\t\t\u003Cdiv class=\"wppm_card_body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['grid-background-color'])?>!important;color:\u003C?php echo esc_attr($appearance_settings['grid-header-text-color'])?>!important;\" onclick=\"wppm_open_task(\u003C?php echo esc_attr($task->id)?>,\u003C?php echo esc_attr($id);?>)\" id=\"wppm_draggable_card_\u003C?php echo esc_attr($task->id)?>\">\r\n+\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cspan class=\"wppm_td_task_priority\" style=\"background-color:\u003C?php echo (!empty($task_priority->bg_color))? esc_attr($task_priority->bg_color):\"\";?>;color:\u003C?php echo (!empty($task_priority->color))? esc_attr($task_priority->color):\"\";?>\">\u003C?php echo (!empty($task_priority->name))? esc_html($task_priority->name):\"\" ?>\u003C\u002Fspan>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv class=\"wppm_card_task_action\">\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cspan class=\"wppm_checklist_total_checked_item\">\u003C?php echo esc_html($total_checked_items.'\u002F'.$total)?>\u003C\u002Fspan>\u003Cspan class=\"wppm_total_checked_item\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fchecked.svg'); ?>\" alt=\"checked\">\u003C\u002Fspan>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cspan class=\"wppm_show_dropdown_menu\" onclick=\"wppm_show_dropdown_menu(\u003C?php echo esc_attr($task->id);?>)\" data-popover=\"wppm-dropdown-menu-\u003C?php echo esc_attr($task->id);?>\" id=\"wppm_task_action_\u003C?php echo esc_attr($task->id);?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fvertical_dot.svg'); ?>\" alt=\"vertical_dot\">\u003C\u002Fspan>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv class=\"gpopover\" id=\"wppm-dropdown-menu-\u003C?php echo esc_attr($task->id);?>\">\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Ca class=\"dropdown-item\" href=\"#\">\u003C?php echo esc_html_e('Edit','taskbuilder');?>\u003C\u002Fa>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Ca class=\"dropdown-item\" href=\"#\">\u003C?php echo esc_html_e('Delete','taskbuilder');?>\u003C\u002Fa>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cspan class=\"wppm_task_name_grid_view\" style=\"margin-left: 5px;\">\u003C?php echo esc_html($task->task_name);?>\u003C\u002Fspan> \r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cspan class=\"wppm_proj_name_grid_view\">(\u003C?php echo isset($project_data['project_name']) ? esc_html($project_data['project_name']):\"\";?>)\u003C\u002Fspan> \r\n+\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php if($wppm_deafault_time_duration_task==0) { ?>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv class=\"wppm_task_due_date_grid_view\" style=\"margin-left: 5px;\">\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php $style = ($task->status!=4 && $task->end_date \u003C $current_date) ? \"color:#FF0000\":\"color:#2C3E50\"; ?>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Csmall style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo (isset($task_end_date))? esc_html($task_end_date):\"\" ?>\u003C\u002Fsmall>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php }elseif( $wppm_deafault_time_duration_task==1){ ?>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv class=\"wppm_task_due_date_grid_view\" style=\"margin-left: 5px;\">\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php $style = ($task->status!=4 && $task->end_date \u003C $current_date) ? \"color:#FF0000\":\"color:#2C3E50\"; ?>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Csmall style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo (isset($wppm_task_duration))? esc_html($wppm_task_duration):\"\" ?>\u003C\u002Fsmall>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php } ?> \r\n+\t\t\t\t\t\t\t\t\t\t\t\t\u003Cdiv class=\"wppm_card_task_users\" style=\"text-align:right;\">\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t$task_users = explode(',',$task->users);\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t$i=0;\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($project_data['users'])){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t$proj_users = explode(',',$project_data['users']);\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($task_users)){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\tforeach($task_users as $user){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif( (!empty($proj_users)) && (in_array($user,$proj_users))){ \r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$i++;\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif( $i \u003C= 4 ){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($user)){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$userdata = get_userdata( $user );\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t?>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Ca href=\"#\"  title=\"\u003C?php echo esc_attr($userdata->display_name)?>\">\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php echo get_avatar($user, 25, \"mysteryman\");?>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fa>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php } \r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\tif($i > 4){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t?>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Ca href=\"#\" class=\"wppm_avatar\">\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003Cspan id=\"wppm_avatar\" style=\"background-color:black;\" class=\"avatar\">+\u003C?php echo esc_html($i-4) ?>\u003C\u002Fspan>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fa>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\u003C?php } ?>\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\t\t\t\t\u003C?php\r\n+\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t} \r\n+\t\t\t\t\t}\r\n+\t\t\t\t\tif($task_per_status==false){\r\n+\t\t\t\t\t\t?>\r\n+\t\t\t\t\t\t\u003Cdiv>\r\n+\t\t\t\t\t\t\t\u003Cdiv style=\"margin-left:5px;font-family: 'OpenSans-Semibold', 'Helvetica Neue', Arial, Helvetica, sans-serif; font-size: 14px;\">\r\n+\t\t\t\t\t\t\t\t\u003C?php echo esc_html_e('Empty','taskbuilder'); ?>\r\n+\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\u003C?php\r\n+\t\t\t\t\t}\r\n+\t\t\t\t\t?>\r\n+\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\u003C?php } \r\n+\t\t}\r\n+\t\t?>\r\n+\t\t\u003Cinput type=\"hidden\" action=\"wppm_drag_and_drop_card\">\r\n+\t\t\u003Cinput type=\"hidden\" name=\"wppm_drag_and_drop_card_ajax_nonce\" id=\"wppm_drag_and_drop_card_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_drag_and_drop_card' ) ); ?>\">\r\n+\t\u003C\u002Fdiv>\r\n+\t\u003Cdiv class=\"row wppm_task_pagination_container\">\r\n+\t\t\u003Cdiv class=\"col-sm-4\">\r\n+\t\t\t\u003C?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;\u003C?php echo esc_html($total_tasks); ?>&nbsp;\u003C?php echo esc_html_e( 'of','taskbuilder') ?>&nbsp;\u003C?php echo esc_html($totalrows_tasks) ?>&nbsp;\u003C?php echo esc_html_e('Tasks','taskbuilder')?>\r\n+\t\t\u003C\u002Fdiv>\r\n+\t\t\u003Cdiv class=\"wppm_task_pagination col-sm-4\" style=\"\u003C?php echo (esc_attr($total_pages)==0)? \"display:none;\":\"display:flex;\"?>\">\r\n+\t\t\t\u003Cspan class=\"wppm-pagination-txt\">\r\n+\t\t\t\t\u003Cspan>\u003C?php echo esc_html($current_page)?>&nbsp;\u003C?php echo esc_html_e('of','taskbuilder');?>&nbsp;\u003C?php echo esc_html($total_pages); ?>&nbsp;\u003C?php echo esc_html_e('Page','taskbuilder'); ?>\u003C\u002Fspan>\r\n+\t\t\t\u003C\u002Fspan>\r\n+\t\t\t\u003Cspan \u003C?php echo esc_attr($prev_class) ?> \r\n+\t\t\tstyle=\"\u003C?php echo (isset($prev_class) && esc_attr($prev_class) == 'disabled') ? 'display:none;':'display:block;'?>cursor:pointer;\">\r\n+\t\t\t\u003Ca class=\"wppm_pagination_prev\" onclick=\"return wppm_load_prev_task_page_card_view(\u003C?php echo esc_attr($prev_page_no) ?>,\u003C?php echo esc_attr($page_no)?>);\">\u003C?php echo esc_html_e('PREV','taskbuilder');?>\u003C\u002Fa>\r\n+\t\t\t\u003C\u002Fspan>\r\n+\t\t\t\u003Cspan \u003C?php echo esc_attr($next_class) ?>\r\n+\t\t\tstyle=\"\u003C?php echo (isset($next_class) && esc_attr($next_class) == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;\">\r\n+\t\t\t\u003Ca class=\"wppm_pagination_next\" onclick=\"return wppm_load_next_task_page_card_view(\u003C?php echo esc_attr($next_page_no) ?>,\u003C?php echo esc_attr($page_no) ?>);\">\u003C?php echo esc_html_e('NEXT','taskbuilder');?>\u003C\u002Fa>\r\n+\t\t\t\u003C\u002Fspan>\r\n+\t\t\u003C\u002Fdiv>\r\n+\t\u003C\u002Fdiv>\r\n+\u003C\u002Fform>\r\n+\u003Cstyle>\r\n+\t.select2-selection--single {\r\n+\t\theight: 30px!important;\r\n+\t}\r\n+\t.select2-dropdown:hover {\r\n+    \tcolor: #23527c!important;;\r\n+\t}\r\n+\t.select2-results__options{\r\n+\t\tfont:15px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\r\n+\t\tmargin: 0!important;\r\n+\t\tline-height: inherit!important;\r\n+\t}\r\n+\t.select2-selection__rendered{\r\n+\t\tfont:15px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\r\n+\t\tmargin-top: 5px!important;\r\n+\t}\r\n+\t.select2-selection__rendered:hover{\r\n+\t\tcolor: #2271b1 !important;\r\n+\t}\r\n+\t.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{\r\n+\t\tbackground-color: #e85f08!important;\r\n+\t\tcolor: white !important;\r\n+\t}\r\n+\t.select2-container {\r\n+\t\tmax-width: 150px !important;\r\n+\t\tmin-width: 150px !important;\r\n+\t}\r\n+\t#wppm_task_filter{\r\n+\t\tmin-height: 30px !important;\r\n+    \tmax-height: 35px !important;\r\n+\t}\r\n+\t#wppm_view_project_task .wppm-add-new-btn:hover{\r\n+\t\tbackground-color: \u003C?php echo esc_attr($appearance_settings['menu-button-hover-color'])?>!important;\r\n+\t}\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript type=\"text\u002Fjavascript\">\r\n+\tjQuery( document ).ready( function( jQuery ) {\r\n+\t\tdragula([\r\n+\t\t\t\u003C?php foreach($task_status as $status) { ?>\r\n+\t\t\t\tdocument.getElementById(\"wppm_card_body_container_\u003C?php echo esc_attr($status->id) ?>\"),\r\n+\t\t\t\u003C?php } ?>\r\n+\t\t], {removeOnSpill: false})\r\n+\t\t.on('drop', function (el,target,source) { \r\n+\t\t\twppm_drag_drop_card(el,target,source);\r\n+\t\t});\r\n+\t\r\n+\t\tjQuery(\"input[name='wppm_view_task_search_filter']\").keypress(function(e) {\r\n+\t\t\t\u002F\u002FEnter key\r\n+\t\t\tif (e.which == 13) {\r\n+\t\t\t\te.preventDefault();\r\n+\t\t\t\twppm_display_grid_view('\u003C?php echo esc_js($page) ?>','\u003C?php echo esc_js($id) ?>');\r\n+\t\t\t}\r\n+\t\t});\r\n+  \t}) \r\n+\tfunction wppm_show_dropdown_menu(task_id){\r\n+\t\tjQuery(\"#wppm_task_action_\"+task_id).gpopover({width: 50});\r\n+\t}\r\n+\r\n+\tfunction wppm_drag_drop_card(el,target,source){\r\n+\t\tvar data = {\r\n+\t\t\taction: 'wppm_drag_and_drop_card',\r\n+\t\t\tel:el.id,\r\n+\t\t\ttarget: target.id,\r\n+\t\t\tsource:source.id,\r\n+\t\t\t_ajax_nonce:jQuery(\"#wppm_drag_and_drop_card_ajax_nonce\").val()\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+\t\t\twppm_display_grid_view('\u003C?php echo esc_js($page) ?>','\u003C?php echo esc_js($id) ?>');\r\n+\t\t});\r\n+\t}\r\n+\tjQuery('#wppm_task_list_proj_filter').select2({ dropdownAutoWidth: true, width: 'auto' });\r\n+  \tjQuery('#wppm_task_list_proj_filter').val(\u003C?php echo esc_attr($proj_filter) ?>);\r\n+\r\n \u003C\u002Fscript>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fprojects_list.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fprojects_list.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fprojects_list.php\t2026-04-16 08:38:14.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fprojects_list.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,632 +1,632 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$status = $wpdb->get_results( \"SELECT * FROM {$wpdb->prefix}wppm_project_statuses\" );\n-$categories = $wpdb->get_results( \"SELECT * FROM {$wpdb->prefix}wppm_project_categories\" );\n-$appearance_settings = get_option(\"wppm-ap-project-list\");\n-$wppm_date_setting = get_option('wppm_date_setting');\n-$wppm_deafault_time_duration_project = get_option('wppm_display_time_duration_project');\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$proj_per_page = 20;\n-$page_no = (isset($_POST['page_no'])) ? intval(sanitize_text_field($_POST['page_no'])): '0';\n-$search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : '';\n-$order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :\"ASC\";\n-$sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):\"project_name\";\n-$filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : \"all\";\n-$current_date = wp_date('Y-m-d');\n-$wppm_pl_filter = \"1=1\";\n-$wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj');\n-$cu_id = esc_sql($current_user->ID);\n-$wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend');\n-if(!empty($wppm_hide_proj_statuses_from_frontend)){\n-  $wppm_hide_proj_statuses_from_frontend = explode(\",\",$wppm_hide_proj_statuses_from_frontend);\n-} else {\n-  $wppm_hide_proj_statuses_from_frontend = '';\n-}\n-$filters = array(\n-  'sort_by' => $sort_by,\n-  'order' => $order,\n-  'search' => $search_tag,\n-  'filter'=>$filter_by\n-);\n-$pl_filters = isset( $_COOKIE['wppm_proj_filters'] ) ? sanitize_text_field( wp_unslash( $_COOKIE['wppm_proj_filters'] ) ) : $filters;\n-if(!is_array($pl_filters)){\n-  $pl_filters  = json_decode($pl_filters);\n-  $pl_filters_arr = (array) $pl_filters;\n-} else{\n-  $pl_filters_arr = $filters;\n-}\n-$search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : $pl_filters_arr['search'];\n-$order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :$pl_filters_arr['order'];\n-$sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):$pl_filters_arr['sort_by'];\n-$filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : $pl_filters_arr['filter'];\n-if($sort_by == \"\"){\n-  $sort_by = 'project_name';\n-}\n-$filters = array(\n-  'sort_by' => $sort_by,\n-  'order' => $order,\n-  'search'=>$search_tag,\n-  'filter'=>$filter_by\n-);\n-setcookie('wppm_proj_filters',wp_json_encode( $filters ),time() + 3600);\n-\n-$allowed_sort_by = [\n-    'project_name' => 'project_name',\n-    'status'       => 'proj_statuses.name',\n-    'category'     => 'proj_categories.name',\n-    'start_date'   => 'start_date',\n-    'end_date'     => 'end_date',\n-    'TIMESTAMPDIFF(SECOND, start_date, end_date)'=> 'TIMESTAMPDIFF(SECOND, start_date, end_date)'\n-];\n-\u002F\u002F Resolve sort_by safely\n-$sort_key = isset($pl_filters_arr['sort_by'])\n-    ? sanitize_text_field($pl_filters_arr['sort_by'])\n-    : 'project_name';\n-\n-$sort_by = $allowed_sort_by[$sort_key] ?? 'project_name';\n-$order = ( isset($pl_filters_arr['order']) && strtoupper($pl_filters_arr['order']) === 'ASC' )\n-    ? 'ASC'\n-    : 'DESC';\n-if($filter_by=='all'){\n-  if($wppm_hide_completed_status_proj == 0){\n-     $wppm_pl_filter = \"status!='4'\";\n-  }\n-}\n-if($filter_by=='4'){\n-  $wppm_pl_filter = \"status='4'\";\n-}elseif($filter_by=='overdue'){\n-  $wppm_pl_filter = \"status!='4' AND (CAST(end_date AS DATE)) \u003C '$current_date'\";\n-}elseif($filter_by == 'unassigned'){\n-  $wppm_pl_filter = \"users=''\";\n-}elseif($filter_by == '1'){\n-\t$wppm_pl_filter = \"status='1'\";\n-}elseif($filter_by == '2'){\n-\t$wppm_pl_filter = \"status='2'\";\n-}elseif($filter_by == '3'){\n-\t$wppm_pl_filter = \"status='3'\";\n-}elseif($filter_by == 'mine'){\n-\t$wppm_pl_filter = \"(FIND_IN_SET('$current_user->ID',users)>0)\";\n-}\n-\n-if(!empty($wppm_hide_proj_statuses_from_frontend) && is_array($wppm_hide_proj_statuses_from_frontend) && ((isset($_POST['is_frontend'])) && (sanitize_text_field($_POST['is_frontend'])==1))){\n-  foreach($wppm_hide_proj_statuses_from_frontend as $status){\n-    $wppm_pl_filter .= \" AND status != '$status'\";\n-  }\n-}\n-$wppm_project_time = get_option('wppm_project_time');\n-$wppm_default_project_date = get_option('wppm_default_project_date');\n-$sort_by = apply_filters('wppm_project_list_sort_by_query',$sort_by);\n-$order = apply_filters('wppm_project_list_order_query',$order);\n-$search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';\n-if (!empty($search_tag)) {\n-    $search_tag_text = '%' . $wpdb->esc_like($search_tag) . '%';\n-    $query = \"SELECT Project.*\n-        FROM {$wpdb->prefix}wppm_project AS Project \n-        LEFT JOIN {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id\n-        LEFT JOIN {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id\n-        LEFT JOIN {$wpdb->base_prefix}users user ON FIND_IN_SET(user.ID, Project.users) > 0\n-        LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id\";\n-    \u002F\u002F SAFE search condition\n-    $search_sql = $wpdb->prepare(\n-        \"(Project.project_name LIKE %s \n-        OR proj_statuses.name LIKE %s \n-        OR proj_categories.name LIKE %s \n-        OR user.display_name LIKE %s)\",\n-        $search_tag_text,\n-        $search_tag_text,\n-        $search_tag_text,\n-        $search_tag_text\n-    );\n-    if ($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') {\n-        \u002F\u002F ✅ Admin (safe)\n-        $where = \" WHERE $wppm_pl_filter AND $search_sql\";\n-    } else {\n-        \u002F\u002F ✅ Non-admin (safe)\n-        $where = $wpdb->prepare(\n-            \" WHERE $wppm_pl_filter\n-              AND $search_sql\n-              AND (\n-                  FIND_IN_SET(%d, Project.users) > 0\n-                  OR (\n-                      proj_meta.meta_key = 'public_project'\n-                      AND proj_meta.meta_value = 1\n-                  )\n-                  OR Project.created_by = %d\n-              )\",\n-            $current_user->ID,\n-            $cu_id\n-        );\n-    }\n-} else {\n-    if ($sort_by == 'project_name' || $sort_by == 'start_date' || $sort_by == 'end_date') {\n-        $query = \"SELECT Project.*\n-            FROM {$wpdb->prefix}wppm_project AS Project\n-            LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id\";\n-    } else {\n-        $query = \"SELECT Project.*\n-            FROM {$wpdb->prefix}wppm_project AS Project\n-            LEFT JOIN {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id\n-            LEFT JOIN {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id\n-            LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id\";\n-    }\n-    if ($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') {\n-        $where = \" WHERE $wppm_pl_filter\";\n-    } else {\n-        $where = $wpdb->prepare(\n-            \" WHERE (\n-                $wppm_pl_filter\n-                AND (\n-                    FIND_IN_SET(%d, Project.users) > 0\n-                    OR (\n-                        proj_meta.meta_key = 'public_project'\n-                        AND proj_meta.meta_value = 1\n-                    )\n-                )\n-                OR Project.created_by = %d\n-            )\",\n-            $current_user->ID,\n-            $cu_id\n-        );\n-    }\n-}\n-$no_of_rows = ( \"SELECT count(*) FROM ($query\");\n-$no_of_rows = apply_filters('wppm_project_list_no_of_rows',$no_of_rows,$wppm_pl_filter,$search_tag);\n-$where = apply_filters('wppm_project_list_query_where',$where, $wppm_pl_filter,$search_tag);\n-$query .= $where.\" Group by Project.id ORDER BY $sort_by $order\";\n-$no_of_rows .= $where.\" Group by Project.id) AS Project\";\n-$totalrows = $wpdb->get_var( $no_of_rows );\n-$query = apply_filters('wppm_project_list_query',$query);\n-$limit_start=$page_no*$proj_per_page;\n-$limit=\"\\n LIMIT \".$limit_start.\",\".$proj_per_page.\" \";\n-$query = $query.$limit;\n-$wppm_fillter = $wpdb->get_results($query);\n-$new_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='\".esc_sql(1).\"'\" );\n-$inp_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='\".esc_sql(2).\"'\" );\n-$hold_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='\".esc_sql(3).\"'\" );\n-$completed_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='\".esc_sql(4).\"'\" );\n-$new_style = (!empty($new_status_name))? \"display:inline\" :\"display:none;\";\n-$inp_status_style = (!empty($inp_status_name))? \"display:inline\" :\"display:none;\";\n-$hold_status_style = (!empty($hold_status_name))? \"display:inline\" :\"display:none;\";\n-$complete_status_style = (!empty($completed_status_name))? \"display:inline\" :\"display:none;\";\n-?>\n-\u003Cform id=\"wppm_project_list_frm\">\n-  \u003Cdiv id=\"wppm-container\">\n-    \u003Cdiv id=\"wppm_project_list_container\" class=\"wppm_bootstrap\">\n-      \u003Cdiv class=\"row\">\n-        \u003Cdiv class=\"col-sm-12\" id=\"wppm_heading_inline\">\n-          \u003Cspan class=\"wppm-heading-inline\">\n-            \u003C?php echo esc_html_e('Projects','taskbuilder');?>\n-          \u003C\u002Fspan>\n-          \u003C?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?>\n-                    \u003Cimg width=\"25\" height=\"30\" id=\"wppm_add_new_project_btn\" class=\"wppm_add_new_project_btn\" onclick=\"wppm_add_new_project()\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fadd.svg'); ?>\" alt=\"add\">\n-          \u003C?php } ?>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv style=\"display:flex;justify-content:space-between;margin-top:20px;flex-wrap: wrap;\">\n-        \u003Cdiv style=\"display:flex;flex-wrap: wrap;\">\n-          \u003Cdiv id=\"wppm_project_filter_container\">\n-            \u003Cdiv class=\"wppm-bulk-actions\" style=\"margin-bottom: 10px;\">\n-              \u003Cbutton \n-                id=\"wppm-bulk-actions-btn\"\n-                class=\"wppm-button small secondary\"\n-                type=\"button\"\n-                style=\"display:none;padding:14px;font: 13px Helvetica Neue, Arial, Helvetica, sans-serif !important\"\n-                data-popover=\"wppm-bulk-actions\">\n-                \u003C?php esc_attr_e( 'Bulk Actions ', 'taskbuilder' ); ?>\u003Cimg style=\"color:#313042\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwppm_chevron_down_icon.svg'); ?>\" alt=\"chevron_down\">\n-              \u003C\u002Fbutton>\n-              \u003Cdiv id=\"wppm-bulk-actions\" class=\"gpopover wppm-popover-menu wppm-proj-bulk-actions\">\n-                \u003Cdiv class=\"wppm-popover-menu-item\" onclick=\"wppm_bulk_change_status('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_status' ) ); ?>');\">\n-                  \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fgps-navigation.svg'); ?>\" alt=\"status\">\u003C?php echo esc_html_e('Change Status','taskbuilder'); ?>\u003C\u002Fspan>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"wppm-popover-menu-item\" onclick=\"wppm_bulk_change_category('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_category' ) ); ?>');\">\n-                  \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftags.svg'); ?>\" alt=\"category\">\u003C?php echo esc_html_e('Change Category','taskbuilder'); ?>\u003C\u002Fspan>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"wppm-popover-menu-item\" onclick=\"wppm_bulk_assign_users('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');\">\n-                  \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fusers.svg'); ?>\" alt=\"users\">\u003C?php echo esc_html_e('Assign Co-workers','taskbuilder'); ?>\u003C\u002Fspan>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"wppm-popover-menu-item\" onclick=\"wppm_bulk_delete_project('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');\">\n-                  \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash-alt-solid.svg'); ?>\" alt=\"delete\">\u003C?php echo esc_html_e('Delete','taskbuilder'); ?>\u003C\u002Fspan>\n-                \u003C\u002Fdiv>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-            \u003Cdiv class=\"wppm-filter-item\">\n-              \u003Clabel for=\"wppm_project_filter\"> \u003C?php echo esc_html_e('Filter','taskbuilder');?>\u003C\u002Flabel>\n-              \u003Cselect id=\"wppm_project_filter\" name=\"wppm_project_filter\" onchange=\"wppm_apply_project_filter()\">\n-                \u003Coption value=\"all\"\u003C?php echo ($filter_by == \"all\")? 'selected':\"\"?>>\u003C?php echo esc_html_e('All','taskbuilder');?>\u003C\u002Foption>\n-                \u003Coption style=\"\u003C?php echo esc_attr($new_style) ?>\" value=\"1\" \u003C?php echo ($filter_by == \"1\")? 'selected':\"\"?>>\u003C?php echo  esc_html($new_status_name);?>\u003C\u002Foption>\n-                \u003Coption style=\"\u003C?php echo esc_attr($inp_status_style) ?>\" value=\"2\" \u003C?php echo ($filter_by == \"2\")? 'selected':\"\"?>>\u003C?php echo  esc_html($inp_status_name);?>\u003C\u002Foption>\n-                \u003Coption style=\"\u003C?php echo esc_attr($hold_status_style) ?>\" value=\"3\" \u003C?php echo ($filter_by == \"3\")? 'selected':\"\"?>>\u003C?php echo  esc_html($hold_status_name);?>\u003C\u002Foption>\n-                \u003Coption style=\"\u003C?php echo esc_attr($complete_status_style) ?>\" value=\"4\" \u003C?php echo ($filter_by == \"4\")? 'selected':\"\"?>>\u003C?php echo  esc_html($completed_status_name);?>\u003C\u002Foption>\n-                \u003Coption value=\"mine\" \u003C?php echo ($filter_by == \"mine\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Mine','taskbuilder');?>\u003C\u002Foption>\n-                \u003Coption value=\"unassigned\" \u003C?php echo ($filter_by == \"unassigned\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Unassigned','taskbuilder');?>\u003C\u002Foption>\n-                \u003Coption value=\"overdue\" \u003C?php echo ($filter_by == \"overdue\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Overdue','taskbuilder');?>\u003C\u002Foption>\n-              \u003C\u002Fselect>\n-            \u003C\u002Fdiv>\n-            \u003Cdiv class=\"wppm_display_submit\">\n-              \u003Cdiv class=\"wppm-filter-actions\">\n-                  \u003Cspan class=\"wppm-link\" onclick=\"wppm_pl_reset_filter()\"> \u003C?php echo esc_html_e('Reset','taskbuilder');?>\u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_project_and_task_search\" style=\"display:flex;justify-content:flex-end;\">\n-          \u003Cimg width=\"25px\" id=\"wppm_project_search_filter_img\" style=\"position: relative;top: 10px;left: 30px;\" height=\"15px\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsearch.svg'); ?>\" alt=\"search\">\n-          \u003Cinput type=\"search\" id=\"wppm_project_search_filter\" style=\"margin-right:10px;\" name=\"wppm_project_search_filter\" class=\"form-control form-control-sm\" aria-controls=\"selection-datatable\" placeholder=\"\u003C?php echo esc_attr__('Search','taskbuilder');?>\" value=\"\u003C?php echo (!empty($search_tag)) ? esc_attr($search_tag) : \"\" ?>\">\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003Cscript>\n-        jQuery('#wppm-more-actions-btn, #wppm-bulk-actions-btn').gpopover({width: 200});\n-      \u003C\u002Fscript>\n-      \u003Cdiv class=\"table-responsive\">\n-        \u003Ctable id=\"wppm_project_table\" class=\"wppm_table table\">\n-          \u003Ctr>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\" onchange=\"wppm_bulk_select_change()\">\n-              \u003Cdiv class=\"checkbox-container\">\n-                \u003Cinput id=\"wppm_bulk_select_option\" class=\"wppm-bulk-selector\" type=\"checkbox\" onchange=\"wppm_bulk_select_change();\"\u002F>\n-                \u003Clabel for=\"wppm_bulk_select_option\">\u003C\u002Flabel>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-              \u003Cspan id=\"wppm_proj_name_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Project','taskbuilder'); ?>\u003C\u002Fspan>\n-              \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('project_name','ASC')\" style = \"\u003C?php echo ($sort_by == 'project_name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_name_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-              \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('project_name','DESC')\" style = \"\u003C?php echo ($sort_by == 'project_name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_name_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-            \u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-              \u003Cspan id=\"wppm_project_status_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Status','taskbuilder'); ?>\u003C\u002Fspan>\n-              \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('status','ASC')\" style = \"\u003C?php echo ($sort_by == 'proj_statuses.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_status_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-              \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('status','DESC')\" style = \"\u003C?php echo ($sort_by == 'proj_statuses.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_status_img\" class=\"wppm_chevron_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-            \u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-              \u003Cspan id=\"wppm_proj_list_users_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Users','taskbuilder'); ?>\u003C\u002Fspan>\u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-              \u003Cspan id=\"wppm_project_category_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Category','taskbuilder'); ?>\u003C\u002Fspan>\n-              \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('category','ASC')\" style = \"\u003C?php echo ($sort_by == 'proj_categories.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_cat_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-              \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('category','DESC')\" style = \"\u003C?php echo ($sort_by == 'proj_categories.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_cat_img\" class=\"wppm_chevron_img\"  src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-            \u003C\u002Fth>\n-            \u003C?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0){ ?>\n-                    \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-                      \u003Cspan id=\"wppm_project_start_date_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Start Date','taskbuilder'); ?>\u003C\u002Fspan>\n-                      \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('start_date','ASC')\" style = \"\u003C?php echo ($sort_by == 'start_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_start_date_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-                      \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('start_date','DESC')\" style = \"\u003C?php echo ($sort_by == 'start_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_start_date_img\" class=\"wppm_chevron_img\"  src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-                    \u003C\u002Fth>\n-                    \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-                      \u003Cspan id=\"wppm_project_end_date_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('End Date','taskbuilder'); ?>\u003C\u002Fspan>\n-                      \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('end_date','ASC')\" style = \"\u003C?php echo ($sort_by == 'end_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_end_date_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-                      \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('end_date','DESC')\" style = \"\u003C?php echo ($sort_by == 'end_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_end_date_img\" class=\"wppm_chevron_img\"  src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-                    \u003C\u002Fth>\n-            \u003C?php }\n-            if( $wppm_deafault_time_duration_project==1){ ?>\n-                  \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-                    \u003Cspan id=\"wppm_project_time_duration_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Duration','taskbuilder'); ?>\u003C\u002Fspan>\n-                    \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('TIMESTAMPDIFF(SECOND, start_date, end_date)','ASC')\" style = \"\u003C?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, start_date, end_date)' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_time_duration_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-                    \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('TIMESTAMPDIFF(SECOND, start_date, end_date)','DESC')\" style = \"\u003C?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, start_date, end_date)' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_time_duration_img\" class=\"wppm_chevron_img\"  src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-                  \u003C\u002Fth> \n-          \u003C?php }?>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\u003Cspan style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('No. of tasks','taskbuilder'); ?>\u003C\u002Fspan>\u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\u003C\u002Fth>\n-          \u003C\u002Ftr>\n-          \u003Ctbody>\n-          \u003C?php\n-          $total_projects=0;\n-          $users = array();\n-          if(!empty($wppm_fillter)){ \n-            foreach( $wppm_fillter as $project ){ \n-                $total_projects++;\n-                $proejctdata = $wppmfunction->get_project($project->id);\n-                $wppm_proj_duration = $wppmfunction->wppm_get_duration($project->start_date,$project->end_date);\n-                $pstatus= esc_sql($project->status);\n-                $status = $wpdb->get_row( \"SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id='$pstatus'\" );\n-                $users = explode(\",\",$project->users);\n-                $pid= esc_sql($project->id);\n-                if(isset($project->cat_id)){\n-                  $pcat_id = esc_sql($project->cat_id);\n-                  $category = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_project_categories where id='$pcat_id'\" );\n-                }\n-                if(isset($project->id)){\n-                  if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\n-                    $no_of_tasks = $wpdb->get_var(\"SELECT count(*) FROM {$wpdb->prefix}wppm_task WHERE project='$pid' \");\n-                  }else{\n-                    $query =(\"SELECT count(*) FROM  \n-                            ( SELECT Task.*\n-                            FROM {$wpdb->prefix}wppm_task AS Task\n-                            Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\n-                            Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id\n-                            Left join {$wpdb->prefix}wppm_project_meta proj_meta ON proj.id = proj_meta.project_id\n-                            where Task.project = '$pid' AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$cu_id') OR (proj_users.user_id = '$cu_id' AND proj_users.role_id = 1 ) OR (proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR ( Task.project = proj.id AND proj.created_by='$cu_id')) Group by Task.id ) AS Task\");\n-                    $no_of_tasks = $wpdb->get_var($query);\n-                    }\n-                    $no_of_tasks = apply_filters('wppm_no_of_task_proj_list_query',$no_of_tasks,$project->id);\n-                  }\n-                  if($wppm_project_time == 1){\n-                    $psDate = new DateTime($project->start_date);\n-                    $peDate = new DateTime($project->end_date);\n-                    if($project->start_date=='0000-00-00 00:00:00'){\n-                      if($wppm_date_setting=='Y-m-d H:i:s'){\n-                        $proj_start_date = '0000-00-00 00:00:00';\n-                      }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                        $proj_start_date = '00-00-0000 00:00:00';\n-                      }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                        $proj_start_date = '00-00-0000 00:00:00';\n-                      }else{\n-                        $proj_start_date = '0000-00-00 00:00:00';\n-                      }\n-                    }if($project->end_date=='0000-00-00 00:00:00'){\n-                      if($wppm_date_setting=='Y-m-d H:i:s'){\n-                        $proj_end_date = '0000-00-00 00:00:00';\n-                      }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                        $proj_end_date = '00-00-0000 00:00:00';\n-                      }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                        $proj_end_date = '00-00-0000 00:00:00';\n-                      }else{\n-                         $proj_end_date = '0000-00-00 00:00:00';\n-                      }\n-                    }\n-                    if($project->start_date!='0000-00-00 00:00:00'){\n-                         if(!empty($wppm_date_setting)){\n-                        $proj_start_date = $psDate->format($wppm_date_setting);\n-                        }else{\n-                          $proj_start_date = isset($project->start_date)? $project->start_date:\"\";\n-                        }\n-                      }\n-                    if($project->end_date!='0000-00-00 00:00:00'){\n-                        if(!empty($wppm_date_setting)){\n-                          $proj_end_date = $peDate->format($wppm_date_setting);\n-                        }else{\n-                          $proj_end_date = isset($project->end_date) ? $project->end_date: \"\" ;\n-                        }\n-                    }\n-                  } elseif($wppm_project_time == 0){\n-                      $psDate = new DateTime($project->start_date);\n-                      $peDate = new DateTime($project->end_date);\n-                      $proj_start_date = $psDate->format('Y-m-d');\n-                      $proj_end_date = $peDate->format('Y-m-d');\n-                      if($project->start_date=='0000-00-00 00:00:00'){\n-                        if($wppm_date_setting=='Y-m-d H:i:s'){\n-                          $proj_start_date = '0000-00-00';\n-                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                          $proj_start_date = '00-00-0000';\n-                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                          $proj_start_date = '00-00-0000';\n-                        }else{\n-                          $proj_start_date = '0000-00-00';\n-                        }\n-                      }\n-                      if($project->end_date=='0000-00-00 00:00:00'){\n-                        if($wppm_date_setting=='Y-m-d H:i:s'){\n-                          $proj_end_date = '0000-00-00';\n-                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                          $proj_end_date = '00-00-0000';\n-                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                          $proj_end_date = '00-00-0000';\n-                        }else{\n-                          $proj_end_date = '0000-00-00';\n-                        }\n-\n-                      }if($project->start_date!='0000-00-00 00:00:00'){\n-                         if($wppm_date_setting=='Y-m-d H:i:s'){\n-                          $proj_start_date = $psDate->format('Y-m-d');\n-                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                          $proj_start_date = $psDate->format('d-m-Y');\n-                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                          $proj_start_date = $psDate->format('m-d-Y');\n-                        }else{\n-                          $proj_start_date = $psDate->format('Y-m-d');\n-                        }\n-                      }\n-                    if($project->end_date!='0000-00-00 00:00:00'){\n-                        if($wppm_date_setting=='Y-m-d H:i:s'){\n-                          $proj_end_date = $peDate->format('Y-m-d');\n-                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                          $proj_end_date = $peDate->format('d-m-Y');\n-                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                          $proj_end_date = $peDate->format('m-d-Y');\n-                            }else{\n-                              $proj_end_date = $peDate->format('Y-m-d');\n-                            }\n-                    }\n-                  }\n-                  ?>\n-                  \u003Ctr onclick=\"if(link)wppm_open_project(\u003C?php echo esc_attr($project->id) ?>)\">\n-                    \u003Ctd class=\"bulk-selector\" onmouseover=\"link=false;\" onmouseout=\"link=true;\">\n-                      \u003Cdiv class=\"wppm-pl-item-selector\">\n-                        \u003Cdiv class=\"checkbox-container\">\n-                          \u003Cinput id=\"wppm_bulk_select_\u003C?php echo esc_attr($project->id) ?>\" class=\"wppm-bulk-select\" type=\"checkbox\" onchange=\"wppm_bulk_item_select_change();\" value=\"\u003C?php echo esc_attr( $project->id ); ?>\"\u002F>\n-                          \u003Clabel for=\"wppm_bulk_select_\u003C?php echo esc_attr($project->id) ?>\">\u003C\u002Flabel>\n-                        \u003C\u002Fdiv>\n-                      \u003C\u002Fdiv>\n-                    \u003C\u002Ftd>\n-                    \u003Ctd onmouseover=\"link=true;\">\u003C?php echo esc_html($project->project_name) ?>\u003C\u002Ftd>\n-                    \u003Ctd onmouseover=\"link=true;\">\u003Cspan class=\"wppm_td_project_status\" style=\"background-color:\u003C?php echo esc_attr($status->bg_color);?>; color: \u003C?php echo esc_attr($status->color); ?>\">\u003C?php echo esc_html($status->name) ?>\u003C\u002Fspan>\u003C\u002Ftd>\n-                    \u003Ctd onmouseover=\"link=true;\">\n-                      \u003C?php \n-                        $i=0;\n-                        if(!empty(array_filter($users))){\n-                          foreach($users as $user){ \n-                            $i++;\n-                            if( $i \u003C= 4 ){\n-                              $user_info = get_user_by('id', $user );\n-                              if(!empty($user_info)){\n-                                ?>\n-                                \u003Ca href=\"#\" title=\"\u003C?php echo esc_html($user_info->display_name) ?>\">\n-                                  \u003C?php echo get_avatar($user_info->ID, 25, \"mysteryman\");?>\n-                                \u003C\u002Fa> \u003C?php\n-                              }\n-                            }\n-                          }\n-                        } else{\n-                          esc_html_e('None','taskbuilder');\n-                        }\n-                      if($i > 4){\n-                      ?>\n-                      \u003Ca href=\"#\" class=\"wppm_avatar\">\n-                        \u003Cspan id=\"wppm_avatar\" style=\"background-color:black;\" class=\"avatar\">+\u003C?php echo esc_html($i-4) ?>\u003C\u002Fspan>\n-                      \u003C\u002Fa>\n-                      \u003C?php } ?>\n-                    \u003C\u002Ftd>\n-                    \u003Ctd onmouseover=\"link=true;\" class=\"wppm_table_td\">\u003C?php echo isset($category) ? esc_html($category): \"\" ?>\u003C\u002Ftd>\n-                    \u003C?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0){ ?>\n-                            \u003Ctd onmouseover=\"link=true;\" class=\"wppm_table_td\">\u003C?php echo isset($proj_start_date) ? esc_html($proj_start_date): \"\" ?>\u003C\u002Ftd>\n-                            \u003C?php\n-                            if(!empty($proj_end_date) && $project->status!=4 && $proj_end_date \u003C $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) {\n-                              $style = \"color:#FF0000\";\n-                            } else {\n-                              $style = \"color:#2C3E50\";\n-                            } ?>\n-                            \u003Ctd onmouseover=\"link=true;\" class=\"wppm_table_td\">\u003Cspan style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo isset($proj_end_date) ? esc_html($proj_end_date):\"\" ?>\u003C\u002Fspan>\u003C\u002Ftd>\n-                    \u003C?php } ?>\n-                     \u003C?php if($wppm_deafault_time_duration_project==1){ ?>\n-                            \u003C?php\n-                            if(!empty($proj_end_date) && $project->status!=4 && $proj_end_date \u003C $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) {\n-                              $style = \"color:#FF0000\";\n-                            } else {\n-                              $style = \"color:#2C3E50\";\n-                            } ?>\n-                            \u003Ctd onmouseover=\"link=true;\" class=\"wppm_table_td\">\u003Cspan style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo isset($wppm_proj_duration) ? esc_html($wppm_proj_duration):\"\" ?>\u003C\u002Fspan>\u003C\u002Ftd>\n-                    \u003C?php } ?>\n-                    \u003Ctd onmouseover=\"link=true;\" class=\"wppm_table_td\">\u003C?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):\"\" ?>\u003C\u002Ftd>\n-                    \u003Ctd onmouseover=\"link=true;\" class=\"wppm_delete_action\">\n-                      \u003C?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_project_permission('delete_project',esc_attr($project->id))) || $wppm_current_user_capability == 'wppm_admin' || ($proejctdata['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') )? \"display:inline\":\"display:none\"; ?>\n-                      \u003Cspan style=\"\u003C?php echo esc_attr($style); ?>\" onclick=\"wppm_delete_project(\u003C?php echo esc_attr($project->id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\n-                      \u003C?php ?>\n-                    \u003C\u002Ftd>\n-                  \u003C\u002Ftr>\n-                \u003C?php\n-              } \n-            } \n-            ?>\n-          \u003C\u002Ftbody>\n-        \u003C\u002Ftable>\n-        \u003C?php \n-        $total_pages=ceil($totalrows\u002F$proj_per_page);\n-        $current_page=$page_no+1;\n-        $prev_page_no=$current_page-1;\n-        $prev_class=($prev_page_no==0)?'disabled':'';\n-        $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;\n-        $next_class=($total_pages==$current_page)?'disabled':'';\n-        ?>\n-        \u003Cdiv class=\"wppm_project_result\" style=\"\u003C?php echo esc_attr($total_pages==0)? '':'display: none;';?>\">\u003C?php echo esc_html_e('Your search request returned no results.','taskbuilder');?>\u003C\u002Fdiv>\n-        \u003Chr style=\"\u003C?php echo esc_attr($total_pages==0)? '':'display: none;';?>\">\n-      \u003C\u002Fdiv>\n-      \u003Cdiv class=\"row wppm_proj_pagination_container\">\n-        \u003Cdiv class=\"col-sm-4\">\n-          \u003C?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;\u003C?php echo esc_html($total_projects) ?>&nbsp;\u003C?php echo esc_html_e('of','taskbuilder') ?>&nbsp;\u003C?php echo esc_html($totalrows) ?>&nbsp;\u003C?php echo esc_html_e('Projects','taskbuilder')?>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"col-sm-4\">\n-          \u003Cdiv class=\"wppm_proj_pagination\" style=\"\u003C?php echo esc_attr($total_pages==0)? \"display:none;\":\"display:flex;\"?>\">\n-            \u003Cspan class=\"wppm-pagination-txt\">\n-              \u003Cspan>\u003C?php echo esc_html($current_page); ?>&nbsp;\u003C?php echo esc_html_e('of','taskbuilder');?>&nbsp;\u003C?php echo esc_html($total_pages); ?>&nbsp;\u003C?php echo esc_html_e('Page','taskbuilder'); ?>\u003C\u002Fspan>\n-            \u003C\u002Fspan>\n-            \u003Cspan \n-              \u003C?php echo esc_html($prev_class) ?>\n-              style=\"\u003C?php echo (isset($prev_class) && esc_attr($prev_class) == 'disabled') ? 'display:none;':'display:block;'?>\">\n-              \u003Ca class=\"wppm_pagination_prev\" onclick=\"return wppm_load_prev_page(\u003C?php echo esc_attr($prev_page_no) ?>,\u003C?php echo esc_attr($page_no) ?>,'\u003C?php echo esc_attr($sort_by)?>','\u003C?php echo esc_attr($order) ?>');\">\u003C?php echo esc_html_e('PREV','taskbuilder');?>\u003C\u002Fa>\n-            \u003C\u002Fspan>\n-            \u003Cspan \n-              \u003C?php echo esc_attr($next_class) ?>\n-              style=\"\u003C?php echo (isset($next_class) && $next_class == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;\">\n-              \u003Ca class=\"wppm_pagination_next\" onclick=\"return wppm_load_next_page('\u003C?php echo esc_attr($next_page_no) ?>','\u003C?php echo esc_attr($page_no) ?>','\u003C?php echo esc_attr($sort_by)?>','\u003C?php echo esc_attr($order) ?>');\">\u003C?php echo esc_html_e('NEXT','taskbuilder');?>\u003C\u002Fa>\n-            \u003C\u002Fspan>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-\u003C\u002Fform>\n-\u003Cstyle>\n-  #wppm_project_table tr:nth-child(even) td{\n-    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-even-background-color'])?>!important;\n-    color:\u003C?php echo esc_attr($appearance_settings['list-item-even-text-color'])?>!important;\n-  }\n-  #wppm_project_table tr:nth-child(odd) td{\n-    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-odd-background-color'])?>!important;\n-    color:\u003C?php echo esc_attr($appearance_settings['list-item-odd-text-color'])?>!important;\n-  }\n-  #wppm_project_table tr:hover td{\n-    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-hover-background-color'])?>!important;\n-  }\n-  #wppm_project_table tr:hover td{\n-    color: \u003C?php echo esc_attr($appearance_settings['list-item-hover-text-color'])?>!important;\n-  }\n-\u003C\u002Fstyle>\n-\u003Cscript type=\"text\u002Fjavascript\">\n-  jQuery( document ).ready( function( jQuery ) {\n-    jQuery(\"input[name='wppm_project_search_filter']\").keypress(function(e) {\n-          \u002F\u002FEnter key\n-      if (e.which == 13) {\n-        wppm_project_search_filter();\n-      }\n-    });\n-    jQuery(\"#wppm_proj_name_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_project_name_img').show();\n-      jQuery('#wppm_chevron_sort_down_project_name_img').hide();\n-    });\n-    jQuery(\"#wppm_project_status_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_project_status_img').show();\n-      jQuery('#wppm_chevron_sort_down_project_status_img').hide();\n-    });\n-    jQuery(\"#wppm_project_category_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_project_cat_img').show();\n-      jQuery('#wppm_chevron_sort_down_project_cat_img').hide();\n-    });\n-    jQuery(\"#wppm_project_start_date_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_project_start_date_img').show();\n-      jQuery('#wppm_chevron_sort_down_project_start_date_img').hide();\n-    });\n-    jQuery(\"#wppm_project_end_date_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_project_end_date_img').show();\n-      jQuery('#wppm_chevron_sort_down_project_end_date_img').hide();\n-    });\n-     jQuery(\"#wppm_project_time_duration_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_project_time_duration_img').show();\n-      jQuery('#wppm_chevron_sort_down_project_time_duration_img').hide();\n-    });\n-    jQuery(\".wppm_delete_action\").on(\"click\", function(e){\n-      e.preventDefault();\n-      return false;\n-    });\n-\n-    jQuery('#wppm_project_list_frm').on('submit', function (e) {\n-      var dataform = new FormData(jQuery('#wppm_project_list_frm')[0]);\n-        jQuery.ajax({\n-          url: wppm_admin.ajax_url,\n-          type: 'POST',\n-          data: dataform,\n-          processData: false,\n-          contentType: false,\n-          success: function () {\n-            alert('form was submitted');\n-          }\n-        });\n-    });\n-  });\n-  \u002F**\n- * Bulk item selector change\n- *\u002F\n-function wppm_bulk_item_select_change() {\n-  jQuery(\"#wppm-bulk-actions-btn\").show();\n-  var items = jQuery(\".wppm-bulk-select:checked\");\n-  var checked = items.length === 0 ? false : true;\n-  if(checked){\n-    jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\n-  }else{\n-    jQuery(\"#wppm-bulk-actions-btn\").hide();\n-    jQuery(\".wppm-bulk-selector\").prop(\"checked\", false);\n-  }\n-}\n-\u003C\u002Fscript>\n-\u003C?php\n-add_action('wp_footer', 'wppm_page_inline_script', 999999999999999999);\n-do_action('wppm_after_shortcode_loaded');\n-if(!function_exists('wppm_page_inline_script')) {\n-  function wppm_page_inline_script() { ?>\n-    \u003Cscript type=\"text\u002Fjavascript\">\n-      jQuery( document ).ready( function( jQuery ) {\n-        wppm_get_project_list();\n-      });\n-    \u003C\u002Fscript>\n-  \u003C?php } \n-}  \n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$status = $wpdb->get_results( \"SELECT * FROM {$wpdb->prefix}wppm_project_statuses\" );\r\n+$categories = $wpdb->get_results( \"SELECT * FROM {$wpdb->prefix}wppm_project_categories\" );\r\n+$appearance_settings = get_option(\"wppm-ap-project-list\");\r\n+$wppm_date_setting = get_option('wppm_date_setting');\r\n+$wppm_deafault_time_duration_project = get_option('wppm_display_time_duration_project');\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$proj_per_page = 20;\r\n+$page_no = (isset($_POST['page_no'])) ? intval(sanitize_text_field($_POST['page_no'])): '0';\r\n+$search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : '';\r\n+$order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :\"ASC\";\r\n+$sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):\"project_name\";\r\n+$filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : \"all\";\r\n+$current_date = wp_date('Y-m-d');\r\n+$wppm_pl_filter = \"1=1\";\r\n+$wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj');\r\n+$cu_id = esc_sql($current_user->ID);\r\n+$wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend');\r\n+if(!empty($wppm_hide_proj_statuses_from_frontend)){\r\n+  $wppm_hide_proj_statuses_from_frontend = explode(\",\",$wppm_hide_proj_statuses_from_frontend);\r\n+} else {\r\n+  $wppm_hide_proj_statuses_from_frontend = '';\r\n+}\r\n+$filters = array(\r\n+  'sort_by' => $sort_by,\r\n+  'order' => $order,\r\n+  'search' => $search_tag,\r\n+  'filter'=>$filter_by\r\n+);\r\n+$pl_filters = isset( $_COOKIE['wppm_proj_filters'] ) ? sanitize_text_field( wp_unslash( $_COOKIE['wppm_proj_filters'] ) ) : $filters;\r\n+if(!is_array($pl_filters)){\r\n+  $pl_filters  = json_decode($pl_filters);\r\n+  $pl_filters_arr = (array) $pl_filters;\r\n+} else{\r\n+  $pl_filters_arr = $filters;\r\n+}\r\n+$search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : $pl_filters_arr['search'];\r\n+$order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :$pl_filters_arr['order'];\r\n+$sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):$pl_filters_arr['sort_by'];\r\n+$filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : $pl_filters_arr['filter'];\r\n+if($sort_by == \"\"){\r\n+  $sort_by = 'project_name';\r\n+}\r\n+$filters = array(\r\n+  'sort_by' => $sort_by,\r\n+  'order' => $order,\r\n+  'search'=>$search_tag,\r\n+  'filter'=>$filter_by\r\n+);\r\n+setcookie('wppm_proj_filters',wp_json_encode( $filters ),time() + 3600);\r\n+\r\n+$allowed_sort_by = [\r\n+    'project_name' => 'project_name',\r\n+    'status'       => 'proj_statuses.name',\r\n+    'category'     => 'proj_categories.name',\r\n+    'start_date'   => 'start_date',\r\n+    'end_date'     => 'end_date',\r\n+    'TIMESTAMPDIFF(SECOND, start_date, end_date)'=> 'TIMESTAMPDIFF(SECOND, start_date, end_date)'\r\n+];\r\n+\u002F\u002F Resolve sort_by safely\r\n+$sort_key = isset($pl_filters_arr['sort_by'])\r\n+    ? sanitize_text_field($pl_filters_arr['sort_by'])\r\n+    : 'project_name';\r\n+\r\n+$sort_by = $allowed_sort_by[$sort_key] ?? 'project_name';\r\n+$order = ( isset($pl_filters_arr['order']) && strtoupper($pl_filters_arr['order']) === 'ASC' )\r\n+    ? 'ASC'\r\n+    : 'DESC';\r\n+if($filter_by=='all'){\r\n+  if($wppm_hide_completed_status_proj == 0){\r\n+     $wppm_pl_filter = \"status!='4'\";\r\n+  }\r\n+}\r\n+if($filter_by=='4'){\r\n+  $wppm_pl_filter = \"status='4'\";\r\n+}elseif($filter_by=='overdue'){\r\n+  $wppm_pl_filter = \"status!='4' AND (CAST(end_date AS DATE)) \u003C '$current_date'\";\r\n+}elseif($filter_by == 'unassigned'){\r\n+  $wppm_pl_filter = \"users=''\";\r\n+}elseif($filter_by == '1'){\r\n+\t$wppm_pl_filter = \"status='1'\";\r\n+}elseif($filter_by == '2'){\r\n+\t$wppm_pl_filter = \"status='2'\";\r\n+}elseif($filter_by == '3'){\r\n+\t$wppm_pl_filter = \"status='3'\";\r\n+}elseif($filter_by == 'mine'){\r\n+\t$wppm_pl_filter = \"(FIND_IN_SET('$current_user->ID',users)>0)\";\r\n+}\r\n+\r\n+if(!empty($wppm_hide_proj_statuses_from_frontend) && is_array($wppm_hide_proj_statuses_from_frontend) && ((isset($_POST['is_frontend'])) && (sanitize_text_field($_POST['is_frontend'])==1))){\r\n+  foreach($wppm_hide_proj_statuses_from_frontend as $status){\r\n+    $wppm_pl_filter .= \" AND status != '$status'\";\r\n+  }\r\n+}\r\n+$wppm_project_time = get_option('wppm_project_time');\r\n+$wppm_default_project_date = get_option('wppm_default_project_date');\r\n+$sort_by = apply_filters('wppm_project_list_sort_by_query',$sort_by);\r\n+$order = apply_filters('wppm_project_list_order_query',$order);\r\n+$search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';\r\n+if (!empty($search_tag)) {\r\n+    $search_tag_text = '%' . $wpdb->esc_like($search_tag) . '%';\r\n+    $query = \"SELECT Project.*\r\n+        FROM {$wpdb->prefix}wppm_project AS Project \r\n+        LEFT JOIN {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id\r\n+        LEFT JOIN {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id\r\n+        LEFT JOIN {$wpdb->base_prefix}users user ON FIND_IN_SET(user.ID, Project.users) > 0\r\n+        LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id\";\r\n+    \u002F\u002F SAFE search condition\r\n+    $search_sql = $wpdb->prepare(\r\n+        \"(Project.project_name LIKE %s \r\n+        OR proj_statuses.name LIKE %s \r\n+        OR proj_categories.name LIKE %s \r\n+        OR user.display_name LIKE %s)\",\r\n+        $search_tag_text,\r\n+        $search_tag_text,\r\n+        $search_tag_text,\r\n+        $search_tag_text\r\n+    );\r\n+    if ($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') {\r\n+        \u002F\u002F ✅ Admin (safe)\r\n+        $where = \" WHERE $wppm_pl_filter AND $search_sql\";\r\n+    } else {\r\n+        \u002F\u002F ✅ Non-admin (safe)\r\n+        $where = $wpdb->prepare(\r\n+            \" WHERE $wppm_pl_filter\r\n+              AND $search_sql\r\n+              AND (\r\n+                  FIND_IN_SET(%d, Project.users) > 0\r\n+                  OR (\r\n+                      proj_meta.meta_key = 'public_project'\r\n+                      AND proj_meta.meta_value = 1\r\n+                  )\r\n+                  OR Project.created_by = %d\r\n+              )\",\r\n+            $current_user->ID,\r\n+            $cu_id\r\n+        );\r\n+    }\r\n+} else {\r\n+    if ($sort_by == 'project_name' || $sort_by == 'start_date' || $sort_by == 'end_date') {\r\n+        $query = \"SELECT Project.*\r\n+            FROM {$wpdb->prefix}wppm_project AS Project\r\n+            LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id\";\r\n+    } else {\r\n+        $query = \"SELECT Project.*\r\n+            FROM {$wpdb->prefix}wppm_project AS Project\r\n+            LEFT JOIN {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id\r\n+            LEFT JOIN {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id\r\n+            LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id\";\r\n+    }\r\n+    if ($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') {\r\n+        $where = \" WHERE $wppm_pl_filter\";\r\n+    } else {\r\n+        $where = $wpdb->prepare(\r\n+            \" WHERE (\r\n+                $wppm_pl_filter\r\n+                AND (\r\n+                    FIND_IN_SET(%d, Project.users) > 0\r\n+                    OR (\r\n+                        proj_meta.meta_key = 'public_project'\r\n+                        AND proj_meta.meta_value = 1\r\n+                    )\r\n+                )\r\n+                OR Project.created_by = %d\r\n+            )\",\r\n+            $current_user->ID,\r\n+            $cu_id\r\n+        );\r\n+    }\r\n+}\r\n+$no_of_rows = ( \"SELECT count(*) FROM ($query\");\r\n+$no_of_rows = apply_filters('wppm_project_list_no_of_rows',$no_of_rows,$wppm_pl_filter,$search_tag);\r\n+$where = apply_filters('wppm_project_list_query_where',$where, $wppm_pl_filter,$search_tag);\r\n+$query .= $where.\" Group by Project.id ORDER BY $sort_by $order\";\r\n+$no_of_rows .= $where.\" Group by Project.id) AS Project\";\r\n+$totalrows = $wpdb->get_var( $no_of_rows );\r\n+$query = apply_filters('wppm_project_list_query',$query);\r\n+$limit_start=$page_no*$proj_per_page;\r\n+$limit=\"\\n LIMIT \".$limit_start.\",\".$proj_per_page.\" \";\r\n+$query = $query.$limit;\r\n+$wppm_fillter = $wpdb->get_results($query);\r\n+$new_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='\".esc_sql(1).\"'\" );\r\n+$inp_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='\".esc_sql(2).\"'\" );\r\n+$hold_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='\".esc_sql(3).\"'\" );\r\n+$completed_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='\".esc_sql(4).\"'\" );\r\n+$new_style = (!empty($new_status_name))? \"display:inline\" :\"display:none;\";\r\n+$inp_status_style = (!empty($inp_status_name))? \"display:inline\" :\"display:none;\";\r\n+$hold_status_style = (!empty($hold_status_name))? \"display:inline\" :\"display:none;\";\r\n+$complete_status_style = (!empty($completed_status_name))? \"display:inline\" :\"display:none;\";\r\n+?>\r\n+\u003Cform id=\"wppm_project_list_frm\">\r\n+  \u003Cdiv id=\"wppm-container\">\r\n+    \u003Cdiv id=\"wppm_project_list_container\" class=\"wppm_bootstrap\">\r\n+      \u003Cdiv class=\"row\">\r\n+        \u003Cdiv class=\"col-sm-12\" id=\"wppm_heading_inline\">\r\n+          \u003Cspan class=\"wppm-heading-inline\">\r\n+            \u003C?php echo esc_html_e('Projects','taskbuilder');?>\r\n+          \u003C\u002Fspan>\r\n+          \u003C?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?>\r\n+                    \u003Cimg width=\"25\" height=\"30\" id=\"wppm_add_new_project_btn\" class=\"wppm_add_new_project_btn\" onclick=\"wppm_add_new_project()\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fadd.svg'); ?>\" alt=\"add\">\r\n+          \u003C?php } ?>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv style=\"display:flex;justify-content:space-between;margin-top:20px;flex-wrap: wrap;\">\r\n+        \u003Cdiv style=\"display:flex;flex-wrap: wrap;\">\r\n+          \u003Cdiv id=\"wppm_project_filter_container\">\r\n+            \u003Cdiv class=\"wppm-bulk-actions\" style=\"margin-bottom: 10px;\">\r\n+              \u003Cbutton \r\n+                id=\"wppm-bulk-actions-btn\"\r\n+                class=\"wppm-button small secondary\"\r\n+                type=\"button\"\r\n+                style=\"display:none;padding:14px;font: 13px Helvetica Neue, Arial, Helvetica, sans-serif !important\"\r\n+                data-popover=\"wppm-bulk-actions\">\r\n+                \u003C?php esc_attr_e( 'Bulk Actions ', 'taskbuilder' ); ?>\u003Cimg style=\"color:#313042\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwppm_chevron_down_icon.svg'); ?>\" alt=\"chevron_down\">\r\n+              \u003C\u002Fbutton>\r\n+              \u003Cdiv id=\"wppm-bulk-actions\" class=\"gpopover wppm-popover-menu wppm-proj-bulk-actions\">\r\n+                \u003Cdiv class=\"wppm-popover-menu-item\" onclick=\"wppm_bulk_change_status('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_status' ) ); ?>');\">\r\n+                  \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fgps-navigation.svg'); ?>\" alt=\"status\">\u003C?php echo esc_html_e('Change Status','taskbuilder'); ?>\u003C\u002Fspan>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"wppm-popover-menu-item\" onclick=\"wppm_bulk_change_category('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_category' ) ); ?>');\">\r\n+                  \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftags.svg'); ?>\" alt=\"category\">\u003C?php echo esc_html_e('Change Category','taskbuilder'); ?>\u003C\u002Fspan>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"wppm-popover-menu-item\" onclick=\"wppm_bulk_assign_users('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');\">\r\n+                  \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fusers.svg'); ?>\" alt=\"users\">\u003C?php echo esc_html_e('Assign Co-workers','taskbuilder'); ?>\u003C\u002Fspan>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"wppm-popover-menu-item\" onclick=\"wppm_bulk_delete_project('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');\">\r\n+                  \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash-alt-solid.svg'); ?>\" alt=\"delete\">\u003C?php echo esc_html_e('Delete','taskbuilder'); ?>\u003C\u002Fspan>\r\n+                \u003C\u002Fdiv>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+            \u003Cdiv class=\"wppm-filter-item\">\r\n+              \u003Clabel for=\"wppm_project_filter\"> \u003C?php echo esc_html_e('Filter','taskbuilder');?>\u003C\u002Flabel>\r\n+              \u003Cselect id=\"wppm_project_filter\" name=\"wppm_project_filter\" onchange=\"wppm_apply_project_filter()\">\r\n+                \u003Coption value=\"all\"\u003C?php echo ($filter_by == \"all\")? 'selected':\"\"?>>\u003C?php echo esc_html_e('All','taskbuilder');?>\u003C\u002Foption>\r\n+                \u003Coption style=\"\u003C?php echo esc_attr($new_style) ?>\" value=\"1\" \u003C?php echo ($filter_by == \"1\")? 'selected':\"\"?>>\u003C?php echo  esc_html($new_status_name);?>\u003C\u002Foption>\r\n+                \u003Coption style=\"\u003C?php echo esc_attr($inp_status_style) ?>\" value=\"2\" \u003C?php echo ($filter_by == \"2\")? 'selected':\"\"?>>\u003C?php echo  esc_html($inp_status_name);?>\u003C\u002Foption>\r\n+                \u003Coption style=\"\u003C?php echo esc_attr($hold_status_style) ?>\" value=\"3\" \u003C?php echo ($filter_by == \"3\")? 'selected':\"\"?>>\u003C?php echo  esc_html($hold_status_name);?>\u003C\u002Foption>\r\n+                \u003Coption style=\"\u003C?php echo esc_attr($complete_status_style) ?>\" value=\"4\" \u003C?php echo ($filter_by == \"4\")? 'selected':\"\"?>>\u003C?php echo  esc_html($completed_status_name);?>\u003C\u002Foption>\r\n+                \u003Coption value=\"mine\" \u003C?php echo ($filter_by == \"mine\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Mine','taskbuilder');?>\u003C\u002Foption>\r\n+                \u003Coption value=\"unassigned\" \u003C?php echo ($filter_by == \"unassigned\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Unassigned','taskbuilder');?>\u003C\u002Foption>\r\n+                \u003Coption value=\"overdue\" \u003C?php echo ($filter_by == \"overdue\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Overdue','taskbuilder');?>\u003C\u002Foption>\r\n+              \u003C\u002Fselect>\r\n+            \u003C\u002Fdiv>\r\n+            \u003Cdiv class=\"wppm_display_submit\">\r\n+              \u003Cdiv class=\"wppm-filter-actions\">\r\n+                  \u003Cspan class=\"wppm-link\" onclick=\"wppm_pl_reset_filter()\"> \u003C?php echo esc_html_e('Reset','taskbuilder');?>\u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_project_and_task_search\" style=\"display:flex;justify-content:flex-end;\">\r\n+          \u003Cimg width=\"25px\" id=\"wppm_project_search_filter_img\" style=\"position: relative;top: 10px;left: 30px;\" height=\"15px\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsearch.svg'); ?>\" alt=\"search\">\r\n+          \u003Cinput type=\"search\" id=\"wppm_project_search_filter\" style=\"margin-right:10px;\" name=\"wppm_project_search_filter\" class=\"form-control form-control-sm\" aria-controls=\"selection-datatable\" placeholder=\"\u003C?php echo esc_attr__('Search','taskbuilder');?>\" value=\"\u003C?php echo (!empty($search_tag)) ? esc_attr($search_tag) : \"\" ?>\">\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cscript>\r\n+        jQuery('#wppm-more-actions-btn, #wppm-bulk-actions-btn').gpopover({width: 200});\r\n+      \u003C\u002Fscript>\r\n+      \u003Cdiv class=\"table-responsive\">\r\n+        \u003Ctable id=\"wppm_project_table\" class=\"wppm_table table\">\r\n+          \u003Ctr>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\" onchange=\"wppm_bulk_select_change()\">\r\n+              \u003Cdiv class=\"checkbox-container\">\r\n+                \u003Cinput id=\"wppm_bulk_select_option\" class=\"wppm-bulk-selector\" type=\"checkbox\" onchange=\"wppm_bulk_select_change();\"\u002F>\r\n+                \u003Clabel for=\"wppm_bulk_select_option\">\u003C\u002Flabel>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+              \u003Cspan id=\"wppm_proj_name_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Project','taskbuilder'); ?>\u003C\u002Fspan>\r\n+              \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('project_name','ASC')\" style = \"\u003C?php echo ($sort_by == 'project_name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_name_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+              \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('project_name','DESC')\" style = \"\u003C?php echo ($sort_by == 'project_name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_name_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+            \u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+              \u003Cspan id=\"wppm_project_status_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Status','taskbuilder'); ?>\u003C\u002Fspan>\r\n+              \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('status','ASC')\" style = \"\u003C?php echo ($sort_by == 'proj_statuses.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_status_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+              \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('status','DESC')\" style = \"\u003C?php echo ($sort_by == 'proj_statuses.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_status_img\" class=\"wppm_chevron_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+            \u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+              \u003Cspan id=\"wppm_proj_list_users_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Users','taskbuilder'); ?>\u003C\u002Fspan>\u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+              \u003Cspan id=\"wppm_project_category_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Category','taskbuilder'); ?>\u003C\u002Fspan>\r\n+              \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('category','ASC')\" style = \"\u003C?php echo ($sort_by == 'proj_categories.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_cat_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+              \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('category','DESC')\" style = \"\u003C?php echo ($sort_by == 'proj_categories.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_cat_img\" class=\"wppm_chevron_img\"  src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+            \u003C\u002Fth>\r\n+            \u003C?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0){ ?>\r\n+                    \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+                      \u003Cspan id=\"wppm_project_start_date_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Start Date','taskbuilder'); ?>\u003C\u002Fspan>\r\n+                      \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('start_date','ASC')\" style = \"\u003C?php echo ($sort_by == 'start_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_start_date_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+                      \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('start_date','DESC')\" style = \"\u003C?php echo ($sort_by == 'start_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_start_date_img\" class=\"wppm_chevron_img\"  src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+                    \u003C\u002Fth>\r\n+                    \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+                      \u003Cspan id=\"wppm_project_end_date_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('End Date','taskbuilder'); ?>\u003C\u002Fspan>\r\n+                      \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('end_date','ASC')\" style = \"\u003C?php echo ($sort_by == 'end_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_end_date_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+                      \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('end_date','DESC')\" style = \"\u003C?php echo ($sort_by == 'end_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_end_date_img\" class=\"wppm_chevron_img\"  src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+                    \u003C\u002Fth>\r\n+            \u003C?php }\r\n+            if( $wppm_deafault_time_duration_project==1){ ?>\r\n+                  \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+                    \u003Cspan id=\"wppm_project_time_duration_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Duration','taskbuilder'); ?>\u003C\u002Fspan>\r\n+                    \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('TIMESTAMPDIFF(SECOND, start_date, end_date)','ASC')\" style = \"\u003C?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, start_date, end_date)' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_time_duration_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+                    \u003Cimg width=\"16\" height=\"16\" onclick=\"wppm_sort_up_project_list('TIMESTAMPDIFF(SECOND, start_date, end_date)','DESC')\" style = \"\u003C?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, start_date, end_date)' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_time_duration_img\" class=\"wppm_chevron_img\"  src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+                  \u003C\u002Fth> \r\n+          \u003C?php }?>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\u003Cspan style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('No. of tasks','taskbuilder'); ?>\u003C\u002Fspan>\u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\u003C\u002Fth>\r\n+          \u003C\u002Ftr>\r\n+          \u003Ctbody>\r\n+          \u003C?php\r\n+          $total_projects=0;\r\n+          $users = array();\r\n+          if(!empty($wppm_fillter)){ \r\n+            foreach( $wppm_fillter as $project ){ \r\n+                $total_projects++;\r\n+                $proejctdata = $wppmfunction->get_project($project->id);\r\n+                $wppm_proj_duration = $wppmfunction->wppm_get_duration($project->start_date,$project->end_date);\r\n+                $pstatus= esc_sql($project->status);\r\n+                $status = $wpdb->get_row( \"SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id='$pstatus'\" );\r\n+                $users = explode(\",\",$project->users);\r\n+                $pid= esc_sql($project->id);\r\n+                if(isset($project->cat_id)){\r\n+                  $pcat_id = esc_sql($project->cat_id);\r\n+                  $category = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_project_categories where id='$pcat_id'\" );\r\n+                }\r\n+                if(isset($project->id)){\r\n+                  if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\r\n+                    $no_of_tasks = $wpdb->get_var(\"SELECT count(*) FROM {$wpdb->prefix}wppm_task WHERE project='$pid' \");\r\n+                  }else{\r\n+                    $query =(\"SELECT count(*) FROM  \r\n+                            ( SELECT Task.*\r\n+                            FROM {$wpdb->prefix}wppm_task AS Task\r\n+                            Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\r\n+                            Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id\r\n+                            Left join {$wpdb->prefix}wppm_project_meta proj_meta ON proj.id = proj_meta.project_id\r\n+                            where Task.project = '$pid' AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$cu_id') OR (proj_users.user_id = '$cu_id' AND proj_users.role_id = 1 ) OR (proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR ( Task.project = proj.id AND proj.created_by='$cu_id')) Group by Task.id ) AS Task\");\r\n+                    $no_of_tasks = $wpdb->get_var($query);\r\n+                    }\r\n+                    $no_of_tasks = apply_filters('wppm_no_of_task_proj_list_query',$no_of_tasks,$project->id);\r\n+                  }\r\n+                  if($wppm_project_time == 1){\r\n+                    $psDate = new DateTime($project->start_date);\r\n+                    $peDate = new DateTime($project->end_date);\r\n+                    if($project->start_date=='0000-00-00 00:00:00'){\r\n+                      if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                        $proj_start_date = '0000-00-00 00:00:00';\r\n+                      }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                        $proj_start_date = '00-00-0000 00:00:00';\r\n+                      }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                        $proj_start_date = '00-00-0000 00:00:00';\r\n+                      }else{\r\n+                        $proj_start_date = '0000-00-00 00:00:00';\r\n+                      }\r\n+                    }if($project->end_date=='0000-00-00 00:00:00'){\r\n+                      if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                        $proj_end_date = '0000-00-00 00:00:00';\r\n+                      }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                        $proj_end_date = '00-00-0000 00:00:00';\r\n+                      }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                        $proj_end_date = '00-00-0000 00:00:00';\r\n+                      }else{\r\n+                         $proj_end_date = '0000-00-00 00:00:00';\r\n+                      }\r\n+                    }\r\n+                    if($project->start_date!='0000-00-00 00:00:00'){\r\n+                         if(!empty($wppm_date_setting)){\r\n+                        $proj_start_date = $psDate->format($wppm_date_setting);\r\n+                        }else{\r\n+                          $proj_start_date = isset($project->start_date)? $project->start_date:\"\";\r\n+                        }\r\n+                      }\r\n+                    if($project->end_date!='0000-00-00 00:00:00'){\r\n+                        if(!empty($wppm_date_setting)){\r\n+                          $proj_end_date = $peDate->format($wppm_date_setting);\r\n+                        }else{\r\n+                          $proj_end_date = isset($project->end_date) ? $project->end_date: \"\" ;\r\n+                        }\r\n+                    }\r\n+                  } elseif($wppm_project_time == 0){\r\n+                      $psDate = new DateTime($project->start_date);\r\n+                      $peDate = new DateTime($project->end_date);\r\n+                      $proj_start_date = $psDate->format('Y-m-d');\r\n+                      $proj_end_date = $peDate->format('Y-m-d');\r\n+                      if($project->start_date=='0000-00-00 00:00:00'){\r\n+                        if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                          $proj_start_date = '0000-00-00';\r\n+                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                          $proj_start_date = '00-00-0000';\r\n+                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                          $proj_start_date = '00-00-0000';\r\n+                        }else{\r\n+                          $proj_start_date = '0000-00-00';\r\n+                        }\r\n+                      }\r\n+                      if($project->end_date=='0000-00-00 00:00:00'){\r\n+                        if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                          $proj_end_date = '0000-00-00';\r\n+                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                          $proj_end_date = '00-00-0000';\r\n+                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                          $proj_end_date = '00-00-0000';\r\n+                        }else{\r\n+                          $proj_end_date = '0000-00-00';\r\n+                        }\r\n+\r\n+                      }if($project->start_date!='0000-00-00 00:00:00'){\r\n+                         if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                          $proj_start_date = $psDate->format('Y-m-d');\r\n+                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                          $proj_start_date = $psDate->format('d-m-Y');\r\n+                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                          $proj_start_date = $psDate->format('m-d-Y');\r\n+                        }else{\r\n+                          $proj_start_date = $psDate->format('Y-m-d');\r\n+                        }\r\n+                      }\r\n+                    if($project->end_date!='0000-00-00 00:00:00'){\r\n+                        if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                          $proj_end_date = $peDate->format('Y-m-d');\r\n+                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                          $proj_end_date = $peDate->format('d-m-Y');\r\n+                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                          $proj_end_date = $peDate->format('m-d-Y');\r\n+                            }else{\r\n+                              $proj_end_date = $peDate->format('Y-m-d');\r\n+                            }\r\n+                    }\r\n+                  }\r\n+                  ?>\r\n+                  \u003Ctr onclick=\"if(link)wppm_open_project(\u003C?php echo esc_attr($project->id) ?>)\">\r\n+                    \u003Ctd class=\"bulk-selector\" onmouseover=\"link=false;\" onmouseout=\"link=true;\">\r\n+                      \u003Cdiv class=\"wppm-pl-item-selector\">\r\n+                        \u003Cdiv class=\"checkbox-container\">\r\n+                          \u003Cinput id=\"wppm_bulk_select_\u003C?php echo esc_attr($project->id) ?>\" class=\"wppm-bulk-select\" type=\"checkbox\" onchange=\"wppm_bulk_item_select_change();\" value=\"\u003C?php echo esc_attr( $project->id ); ?>\"\u002F>\r\n+                          \u003Clabel for=\"wppm_bulk_select_\u003C?php echo esc_attr($project->id) ?>\">\u003C\u002Flabel>\r\n+                        \u003C\u002Fdiv>\r\n+                      \u003C\u002Fdiv>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003Ctd onmouseover=\"link=true;\">\u003C?php echo esc_html($project->project_name) ?>\u003C\u002Ftd>\r\n+                    \u003Ctd onmouseover=\"link=true;\">\u003Cspan class=\"wppm_td_project_status\" style=\"background-color:\u003C?php echo esc_attr($status->bg_color);?>; color: \u003C?php echo esc_attr($status->color); ?>\">\u003C?php echo esc_html($status->name) ?>\u003C\u002Fspan>\u003C\u002Ftd>\r\n+                    \u003Ctd onmouseover=\"link=true;\">\r\n+                      \u003C?php \r\n+                        $i=0;\r\n+                        if(!empty(array_filter($users))){\r\n+                          foreach($users as $user){ \r\n+                            $i++;\r\n+                            if( $i \u003C= 4 ){\r\n+                              $user_info = get_user_by('id', $user );\r\n+                              if(!empty($user_info)){\r\n+                                ?>\r\n+                                \u003Ca href=\"#\" title=\"\u003C?php echo esc_html($user_info->display_name) ?>\">\r\n+                                  \u003C?php echo get_avatar($user_info->ID, 25, \"mysteryman\");?>\r\n+                                \u003C\u002Fa> \u003C?php\r\n+                              }\r\n+                            }\r\n+                          }\r\n+                        } else{\r\n+                          esc_html_e('None','taskbuilder');\r\n+                        }\r\n+                      if($i > 4){\r\n+                      ?>\r\n+                      \u003Ca href=\"#\" class=\"wppm_avatar\">\r\n+                        \u003Cspan id=\"wppm_avatar\" style=\"background-color:black;\" class=\"avatar\">+\u003C?php echo esc_html($i-4) ?>\u003C\u002Fspan>\r\n+                      \u003C\u002Fa>\r\n+                      \u003C?php } ?>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003Ctd onmouseover=\"link=true;\" class=\"wppm_table_td\">\u003C?php echo isset($category) ? esc_html($category): \"\" ?>\u003C\u002Ftd>\r\n+                    \u003C?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0){ ?>\r\n+                            \u003Ctd onmouseover=\"link=true;\" class=\"wppm_table_td\">\u003C?php echo isset($proj_start_date) ? esc_html($proj_start_date): \"\" ?>\u003C\u002Ftd>\r\n+                            \u003C?php\r\n+                            if(!empty($proj_end_date) && $project->status!=4 && $proj_end_date \u003C $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) {\r\n+                              $style = \"color:#FF0000\";\r\n+                            } else {\r\n+                              $style = \"color:#2C3E50\";\r\n+                            } ?>\r\n+                            \u003Ctd onmouseover=\"link=true;\" class=\"wppm_table_td\">\u003Cspan style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo isset($proj_end_date) ? esc_html($proj_end_date):\"\" ?>\u003C\u002Fspan>\u003C\u002Ftd>\r\n+                    \u003C?php } ?>\r\n+                     \u003C?php if($wppm_deafault_time_duration_project==1){ ?>\r\n+                            \u003C?php\r\n+                            if(!empty($proj_end_date) && $project->status!=4 && $proj_end_date \u003C $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) {\r\n+                              $style = \"color:#FF0000\";\r\n+                            } else {\r\n+                              $style = \"color:#2C3E50\";\r\n+                            } ?>\r\n+                            \u003Ctd onmouseover=\"link=true;\" class=\"wppm_table_td\">\u003Cspan style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo isset($wppm_proj_duration) ? esc_html($wppm_proj_duration):\"\" ?>\u003C\u002Fspan>\u003C\u002Ftd>\r\n+                    \u003C?php } ?>\r\n+                    \u003Ctd onmouseover=\"link=true;\" class=\"wppm_table_td\">\u003C?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):\"\" ?>\u003C\u002Ftd>\r\n+                    \u003Ctd onmouseover=\"link=true;\" class=\"wppm_delete_action\">\r\n+                      \u003C?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_project_permission('delete_project',esc_attr($project->id))) || $wppm_current_user_capability == 'wppm_admin' || ($proejctdata['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') )? \"display:inline\":\"display:none\"; ?>\r\n+                      \u003Cspan style=\"\u003C?php echo esc_attr($style); ?>\" onclick=\"wppm_delete_project(\u003C?php echo esc_attr($project->id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\r\n+                      \u003C?php ?>\r\n+                    \u003C\u002Ftd>\r\n+                  \u003C\u002Ftr>\r\n+                \u003C?php\r\n+              } \r\n+            } \r\n+            ?>\r\n+          \u003C\u002Ftbody>\r\n+        \u003C\u002Ftable>\r\n+        \u003C?php \r\n+        $total_pages=ceil($totalrows\u002F$proj_per_page);\r\n+        $current_page=$page_no+1;\r\n+        $prev_page_no=$current_page-1;\r\n+        $prev_class=($prev_page_no==0)?'disabled':'';\r\n+        $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;\r\n+        $next_class=($total_pages==$current_page)?'disabled':'';\r\n+        ?>\r\n+        \u003Cdiv class=\"wppm_project_result\" style=\"\u003C?php echo esc_attr($total_pages==0)? '':'display: none;';?>\">\u003C?php echo esc_html_e('Your search request returned no results.','taskbuilder');?>\u003C\u002Fdiv>\r\n+        \u003Chr style=\"\u003C?php echo esc_attr($total_pages==0)? '':'display: none;';?>\">\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv class=\"row wppm_proj_pagination_container\">\r\n+        \u003Cdiv class=\"col-sm-4\">\r\n+          \u003C?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;\u003C?php echo esc_html($total_projects) ?>&nbsp;\u003C?php echo esc_html_e('of','taskbuilder') ?>&nbsp;\u003C?php echo esc_html($totalrows) ?>&nbsp;\u003C?php echo esc_html_e('Projects','taskbuilder')?>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"col-sm-4\">\r\n+          \u003Cdiv class=\"wppm_proj_pagination\" style=\"\u003C?php echo esc_attr($total_pages==0)? \"display:none;\":\"display:flex;\"?>\">\r\n+            \u003Cspan class=\"wppm-pagination-txt\">\r\n+              \u003Cspan>\u003C?php echo esc_html($current_page); ?>&nbsp;\u003C?php echo esc_html_e('of','taskbuilder');?>&nbsp;\u003C?php echo esc_html($total_pages); ?>&nbsp;\u003C?php echo esc_html_e('Page','taskbuilder'); ?>\u003C\u002Fspan>\r\n+            \u003C\u002Fspan>\r\n+            \u003Cspan \r\n+              \u003C?php echo esc_html($prev_class) ?>\r\n+              style=\"\u003C?php echo (isset($prev_class) && esc_attr($prev_class) == 'disabled') ? 'display:none;':'display:block;'?>\">\r\n+              \u003Ca class=\"wppm_pagination_prev\" onclick=\"return wppm_load_prev_page(\u003C?php echo esc_attr($prev_page_no) ?>,\u003C?php echo esc_attr($page_no) ?>,'\u003C?php echo esc_attr($sort_by)?>','\u003C?php echo esc_attr($order) ?>');\">\u003C?php echo esc_html_e('PREV','taskbuilder');?>\u003C\u002Fa>\r\n+            \u003C\u002Fspan>\r\n+            \u003Cspan \r\n+              \u003C?php echo esc_attr($next_class) ?>\r\n+              style=\"\u003C?php echo (isset($next_class) && $next_class == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;\">\r\n+              \u003Ca class=\"wppm_pagination_next\" onclick=\"return wppm_load_next_page('\u003C?php echo esc_attr($next_page_no) ?>','\u003C?php echo esc_attr($page_no) ?>','\u003C?php echo esc_attr($sort_by)?>','\u003C?php echo esc_attr($order) ?>');\">\u003C?php echo esc_html_e('NEXT','taskbuilder');?>\u003C\u002Fa>\r\n+            \u003C\u002Fspan>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fform>\r\n+\u003Cstyle>\r\n+  #wppm_project_table tr:nth-child(even) td{\r\n+    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-even-background-color'])?>!important;\r\n+    color:\u003C?php echo esc_attr($appearance_settings['list-item-even-text-color'])?>!important;\r\n+  }\r\n+  #wppm_project_table tr:nth-child(odd) td{\r\n+    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-odd-background-color'])?>!important;\r\n+    color:\u003C?php echo esc_attr($appearance_settings['list-item-odd-text-color'])?>!important;\r\n+  }\r\n+  #wppm_project_table tr:hover td{\r\n+    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-hover-background-color'])?>!important;\r\n+  }\r\n+  #wppm_project_table tr:hover td{\r\n+    color: \u003C?php echo esc_attr($appearance_settings['list-item-hover-text-color'])?>!important;\r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript type=\"text\u002Fjavascript\">\r\n+  jQuery( document ).ready( function( jQuery ) {\r\n+    jQuery(\"input[name='wppm_project_search_filter']\").keypress(function(e) {\r\n+          \u002F\u002FEnter key\r\n+      if (e.which == 13) {\r\n+        wppm_project_search_filter();\r\n+      }\r\n+    });\r\n+    jQuery(\"#wppm_proj_name_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_project_name_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_project_name_img').hide();\r\n+    });\r\n+    jQuery(\"#wppm_project_status_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_project_status_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_project_status_img').hide();\r\n+    });\r\n+    jQuery(\"#wppm_project_category_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_project_cat_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_project_cat_img').hide();\r\n+    });\r\n+    jQuery(\"#wppm_project_start_date_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_project_start_date_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_project_start_date_img').hide();\r\n+    });\r\n+    jQuery(\"#wppm_project_end_date_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_project_end_date_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_project_end_date_img').hide();\r\n+    });\r\n+     jQuery(\"#wppm_project_time_duration_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_project_time_duration_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_project_time_duration_img').hide();\r\n+    });\r\n+    jQuery(\".wppm_delete_action\").on(\"click\", function(e){\r\n+      e.preventDefault();\r\n+      return false;\r\n+    });\r\n+\r\n+    jQuery('#wppm_project_list_frm').on('submit', function (e) {\r\n+      var dataform = new FormData(jQuery('#wppm_project_list_frm')[0]);\r\n+        jQuery.ajax({\r\n+          url: wppm_admin.ajax_url,\r\n+          type: 'POST',\r\n+          data: dataform,\r\n+          processData: false,\r\n+          contentType: false,\r\n+          success: function () {\r\n+            alert('form was submitted');\r\n+          }\r\n+        });\r\n+    });\r\n+  });\r\n+  \u002F**\r\n+ * Bulk item selector change\r\n+ *\u002F\r\n+function wppm_bulk_item_select_change() {\r\n+  jQuery(\"#wppm-bulk-actions-btn\").show();\r\n+  var items = jQuery(\".wppm-bulk-select:checked\");\r\n+  var checked = items.length === 0 ? false : true;\r\n+  if(checked){\r\n+    jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\r\n+  }else{\r\n+    jQuery(\"#wppm-bulk-actions-btn\").hide();\r\n+    jQuery(\".wppm-bulk-selector\").prop(\"checked\", false);\r\n+  }\r\n+}\r\n+\u003C\u002Fscript>\r\n+\u003C?php\r\n+add_action('wp_footer', 'wppm_page_inline_script', 999999999999999999);\r\n+do_action('wppm_after_shortcode_loaded');\r\n+if(!function_exists('wppm_page_inline_script')) {\r\n+  function wppm_page_inline_script() { ?>\r\n+    \u003Cscript type=\"text\u002Fjavascript\">\r\n+      jQuery( document ).ready( function( jQuery ) {\r\n+        wppm_get_project_list();\r\n+      });\r\n+    \u003C\u002Fscript>\r\n+  \u003C?php } \r\n+}  \r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fprojects.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fprojects.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fprojects.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fprojects.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,81 +1,81 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-$settings = get_option(\"wppm-ap-modal\");\n-$id = isset($_GET['project_id']) ? intval($_GET['project_id']) : 0;\n-$action = isset($_GET['action']) ? sanitize_text_field($_GET['action']) : 'view';\n-global $wpdb,$wppmfunction,$current_user;\n-?>\n-\u003C?php echo !empty($wppmfunction->wppm_load_setting_header_html()) ? wp_kses_post($wppmfunction->wppm_load_setting_header_html()) : ''; ?>\n-\u003Cdiv class=\"wppm_bootstrap\">\n-  \u003Cdiv id=\"wppm_project_container\">\n-  \u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003C!-- Pop-up snippet start -->\n-  \u003Cdiv id=\"wppm_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\n-  \u003Cdiv id=\"wppm_popup_container\" style=\"display:none;\">\n-    \u003Cdiv class=\"wppm_bootstrap\">\n-      \u003Cdiv class=\"row\">\n-        \u003Cdiv id=\"wppm_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n-          \u003Cdiv id=\"wppm_popup_title\" class=\"row\">\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\n-          \u003Cdiv id=\"wppm_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\n-          \u003Cdiv id=\"wppm_popup_footer\" class=\"row\">\n-            \u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" >\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-            \u003Cbutton type=\"button\" class=\"btn wppm_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-\u003C!-- Pop-up snippet end -->\n-\u003C\u002Fdiv>\n-\u003Cstyle>\n-  #wppm_popup_title{\n-  background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\n-  }\n-  #wppm_popup_title h3{\n-    color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\n-  }\n-  #wppm_popup_body{\n-    background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\n-  }\n-  #wppm_popup_body label{\n-    color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\n-  }\n-  #wppm_popup_body input{\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_body select{\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_body span {\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_body .select2-results__options {\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_footer{\n-    background-color: \u003C?php echo esc_attr($settings['footer-bg-color'])?>!important;\n-  }\n-  .wppm_popup_action{\n-    background-color: \u003C?php echo esc_attr($settings['action-btn-bg-color'])?>!important;\n-    color:\u003C?php echo esc_attr( $settings['action-btn-text-color'])?>!important;\n-  }\n-\u003C\u002Fstyle>\n-\u003Cscript type=\"text\u002Fjavascript\">\n-jQuery(document).ready(function($) {\n-    var wppm_open_project_id = \u003C?php echo intval($id); ?>;\n-    var wppm_action = \u003C?php echo wp_json_encode($action); ?>;\n-    if (wppm_action === 'add') {\n-        \u002F\u002F Open Add Project Modal\n-        wppm_add_new_project();\n-    } else if (wppm_open_project_id > 0) {\n-        \u002F\u002F Open specific project\n-        wppm_open_project(wppm_open_project_id);\n-    } else {\n-        \u002F\u002F Default view\n-        wppm_get_project_list();\n-    }\n-\n-});\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+$id = isset($_GET['project_id']) ? intval($_GET['project_id']) : 0;\r\n+$action = isset($_GET['action']) ? sanitize_text_field($_GET['action']) : 'view';\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+?>\r\n+\u003C?php echo !empty($wppmfunction->wppm_load_setting_header_html()) ? wp_kses_post($wppmfunction->wppm_load_setting_header_html()) : ''; ?>\r\n+\u003Cdiv class=\"wppm_bootstrap\">\r\n+  \u003Cdiv id=\"wppm_project_container\">\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003C!-- Pop-up snippet start -->\r\n+  \u003Cdiv id=\"wppm_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\r\n+  \u003Cdiv id=\"wppm_popup_container\" style=\"display:none;\">\r\n+    \u003Cdiv class=\"wppm_bootstrap\">\r\n+      \u003Cdiv class=\"row\">\r\n+        \u003Cdiv id=\"wppm_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\r\n+          \u003Cdiv id=\"wppm_popup_title\" class=\"row\">\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\r\n+          \u003Cdiv id=\"wppm_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\r\n+          \u003Cdiv id=\"wppm_popup_footer\" class=\"row\">\r\n+            \u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" >\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+            \u003Cbutton type=\"button\" class=\"btn wppm_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+\u003C!-- Pop-up snippet end -->\r\n+\u003C\u002Fdiv>\r\n+\u003Cstyle>\r\n+  #wppm_popup_title{\r\n+  background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\r\n+  }\r\n+  #wppm_popup_title h3{\r\n+    color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body{\r\n+    background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\r\n+  }\r\n+  #wppm_popup_body label{\r\n+    color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\r\n+  }\r\n+  #wppm_popup_body input{\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body select{\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body span {\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body .select2-results__options {\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_footer{\r\n+    background-color: \u003C?php echo esc_attr($settings['footer-bg-color'])?>!important;\r\n+  }\r\n+  .wppm_popup_action{\r\n+    background-color: \u003C?php echo esc_attr($settings['action-btn-bg-color'])?>!important;\r\n+    color:\u003C?php echo esc_attr( $settings['action-btn-text-color'])?>!important;\r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript type=\"text\u002Fjavascript\">\r\n+jQuery(document).ready(function($) {\r\n+    var wppm_open_project_id = \u003C?php echo intval($id); ?>;\r\n+    var wppm_action = \u003C?php echo wp_json_encode($action); ?>;\r\n+    if (wppm_action === 'add') {\r\n+        \u002F\u002F Open Add Project Modal\r\n+        wppm_add_new_project();\r\n+    } else if (wppm_open_project_id > 0) {\r\n+        \u002F\u002F Open specific project\r\n+        wppm_open_project(wppm_open_project_id);\r\n+    } else {\r\n+        \u002F\u002F Default view\r\n+        wppm_get_project_list();\r\n+    }\r\n+\r\n+});\r\n \u003C\u002Fscript>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,255 +1,255 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$wppm_users_role = get_option('wppm_user_role');\n-$wppm_project_time = get_option('wppm_project_time');\n-$wppm_default_project_date = get_option('wppm_default_project_date');\n-$wppm_public_projects_permission = get_option('wppm_public_projects_permission');\n-$orderby_sql       = sanitize_sql_orderby(\"name\");\n-$sql = \"SELECT * FROM {$wpdb->prefix}wppm_project_categories ORDER BY {$orderby_sql}\";\n-$categories = $wpdb->get_results($sql);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\n-$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options') || $current_user->ID && $current_user->has_cap('wppm_manager'))) {\n-\texit;\n-}\n-?>\n-\u003Cform class='wppm_add_new_project wppm_bootstrap' onsubmit=\"return wppm_create_project();\" id=\"wppm_add_new_project\" method=\"post\">\n-    \u003Cdiv class=\"wppm_headers row\">\n-        \u003Cdiv class=\"col-sm-12\">\n-            \u003Cspan class=\"wppm-heading-inline\" style=\"margin-left:15px;\">\n-                \u003C?php echo esc_html_e('Create Project','taskbuilder');?>\n-            \u003C\u002Fspan>\n-            \u003C?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?>\n-                    \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_add_new_proj\" onclick=\"wppm_add_new_project()\" >\u003Cspan style=\"margin-right:5px;\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('+Create Project','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-            \u003C?php } ?>\n-            \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_list\" onclick=\"wppm_get_project_list()\" >\u003Cspan style=\"margin-right:5px;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist-symbol.svg'); ?>\" alt=\"list-symbol\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Project List','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv id='wppm_frm_field_container'>\n-        \u003Cdiv class=\"row\">\n-            \u003Cdiv class=\"wppm_project_frm_fields col-sm-12\">\n-                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\u003C?php echo esc_html_e('Name','taskbuilder'); ?>\u003C\u002Fb>\u003C\u002Fspan>\n-                    \u003Cspan style=\"color:#ff0000;\">*\u003C\u002Fspan>\n-                \u003Cbr>\n-                \u003Cinput name=\"name\" class=\"form-control\" id=\"wppm_project_name\" type=\"text\" size=\"40\" aria-required=\"true\">\u003Cbr>\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003C?php if($wppm_default_project_date==1){ ?>\n-                \u003Cdiv class=\"row\">\n-                    \u003Cdiv class=\"wppm_project_frm_fields col-sm-6\">\n-                        \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                            \u003C?php echo esc_html_e('Start date','taskbuilder'); ?>\n-                            \u003C\u002Fb>\n-                        \u003C\u002Fspan>\u003Cbr>\n-                        \u003Cinput name=\"wppm_start_date\" class=\"form-control\" id=\"wppm_start_date\" type=\"text\" value=\"\" size=\"40\" aria-required=\"true\">\u003Cbr>\n-                    \u003C\u002Fdiv>\n-                    \u003Cdiv class=\"wppm_project_frm_fields col-sm-6\">\n-                        \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                            \u003C?php echo esc_html_e('End date','taskbuilder'); ?>\n-                            \u003C\u002Fb>\n-                        \u003C\u002Fspan>\u003Cbr>\n-                        \u003Cinput name=\"wppm_end_date\" id=\"wppm_end_date\" class=\"form-control\" type=\"text\" value=\"\" size=\"40\" aria-required=\"true\">\u003Cbr>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-        \u003C?php } ?>\n-        \u003Cdiv class=\"row\">\n-            \u003Cdiv class=\"wppm_project_frm_fields col-sm-12\">\n-                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                    \u003Cb>\n-                    \u003C?php echo esc_html_e('Description','taskbuilder'); ?>\n-                    \u003C\u002Fb>\n-                \u003C\u002Fspan>\u003Cbr>\n-                \u003Ctextarea id=\"wppm_proj_description\" name=\"wppm_proj_description\">\n-                \u003C\u002Ftextarea>\n-                \u003Cbr>\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"row\">\n-           \u003Cdiv class=\"wppm_project_frm_fields col-sm-12\">\n-                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                    \u003Cb>\n-                    \u003C?php echo esc_html_e('Category','taskbuilder'); ?>\n-                    \u003C\u002Fb>\n-                \u003C\u002Fspan>\u003Cbr>\n-                \u003Cselect id=\"wppm_create_project_category\" name=\"wppm_create_project_category\" class=\"form-control\">\n-                    \u003Coption value=\"\">\u003C\u002Foption>\u003C?php \n-                    if(!empty($categories)){\n-                        foreach ($categories as $category){\n-                            echo '\u003Coption value=\"'.esc_attr($category->id).'\">'.esc_html(stripcslashes($category->name)).'\u003C\u002Foption>';\n-                        }\n-                    }\n-                    ?>\n-                \u003C\u002Fselect>\u003Cbr>\u003Cbr>\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"row\">\n-            \u003Cdiv class=\"wppm_project_frm_fields col-sm-12\">\n-                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                    \u003Cb>\n-                    \u003C?php echo esc_html_e('Assign User','taskbuilder'); ?>\n-                    \u003C\u002Fb>\n-                \u003C\u002Fspan>\u003Cbr>\n-                \u003Cinput class=\"form-control wppm_assign_users ui-autocomplete-input\" name=\"wppm_assigned_user\" type=\"text\" autocomplete=\"off\" placeholder= \"\u003C?php echo esc_attr__('Search User...','taskbuilder');?>\">\n-                \u003Cbr>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_display_users\" class=\"row\">\n-            \u003Cdiv class=\"col-sm-12\">\n-                \u003Cui class=\"wppm_filter_display_users_container\">\u003C\u002Fui>\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003C?php if( $wppm_public_projects_permission==1) { ?>\n-        \u003Cdiv id=\"wppm_public_projects_permission\" class=\"row\">\n-            \u003Cdiv class=\"col-sm-12\">\n-                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                    \u003Cinput type=\"checkbox\" name=\"wppm_public_project\"\" \u002F>\n-                    \u003Clabel id=\"wppm_public_project_label\">\u003C?php echo esc_html_e('Make Project Public','taskbuilder'); ?>\u003C\u002Flabel>\n-                    \u003C\u002Fb>\n-                \u003C\u002Fspan>\u003Cbr>\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003C?php } ?>\n-        \u003Cdiv class=\"row\">\n-            \u003Cdiv class=\"wppm_frm_submit col-sm-12\">\n-                \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" id=\"wppm-submit-proj-btn\">\u003C?php echo esc_html_e('Add Project','taskbuilder'); ?>\u003C\u002Fbutton>\n-                \u003Cbutton type=\"button\" class=\"wppm_reset_btn\" id=\"wppm_submit_proj_reset_btn\" onclick=\"wppm_add_new_project()\">\u003C?php echo esc_html_e('Reset Form','taskbuilder') ?>\u003C\u002Fbutton>\n-                \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_create_project\" \u002F>\n-                \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_create_project' ) ); ?>\">\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-\u003C\u002Fform>\n-\u003Cscript>\n-jQuery( document ).ready( function( jQuery ) {\n-    jQuery(\"#wppm_start_date\").flatpickr({\n-        enableTime: \u003C?php echo ($wppm_project_time == 1) ? 'true' : 'false' ?>,\n-        dateFormat: \"Y-m-d \u003C?php echo ($wppm_project_time == 1) ? 'H:i': '' ?>\"\n-    });\n-    jQuery(\"#wppm_end_date\").flatpickr({\n-        enableTime: \u003C?php echo ($wppm_project_time==1) ? 'true' : 'false' ?>,\n-        dateFormat: \"Y-m-d \u003C?php echo ($wppm_project_time==1) ? 'H:i': '' ?>\"\n-    });\u003C?php\n-    if((!empty($wppm_rich_text_editor)) && ($wppm_rich_text_editor == 1)){ \n-        $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :\"\";\n-        $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :\"\";   \n-        $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :\"\";   \n-        $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :\"\";   \n-        $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)?  ' alignleft aligncenter alignright ' :\"\";   \n-        $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :\"\"; \n-        $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :\"\";     \n-        $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :\"\";     \n-        $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :\"\"; \n-        $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :\"\";     \n-        $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :\"\"; \n-        $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :\"\"; \n-        $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :\"\"; \n-        $toolbar = trim(\"$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough\");?>\n-        tinymce.remove();\n-        tinymce.init({ \n-        selector:'#wppm_proj_description',\n-        body_id: 'wppm_proj_description',\n-        directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\n-        menubar: false,\n-        statusbar: false,\n-        height : '200',\n-        width  : '100%', \n-        plugins: [\n-            'lists link image directionality paste textcolor'\n-        ],\n-        image_advtab: true,\n-        toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>',\n-        branding: false,\n-        autoresize_bottom_margin: 20,\n-        browser_spellcheck : true,\n-        relative_urls : false,\n-        paste_as_text: true,\n-        remove_script_host : false,\n-        convert_urls : true,\n-        setup: function (editor) {\n-        }\n-        });\n-    \u003C?php } ?>\n-    jQuery(\"input[name='wppm_assigned_user']\").keypress(function(e) {\n-        \u002F\u002FEnter key\n-        if (e.which == 13) {\n-            return false;\n-        }\n-    });\n-    jQuery( \".wppm_assign_users\" ).autocomplete({\n-        minLength: 1,\n-        appendTo: jQuery('.wppm_assign_users').parent(),\n-        source: function( request, response ) {\n-            var term = request.term;\n-            request = {\n-                action: 'wppm_filter_autocomplete',\n-                term : term,\n-                field : 'users_name',\n-            }\n-            jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\n-                response(data);\n-            });\n-        },\n-        select: function (event, ui) {\n-            var html_str = '\u003Cdiv id=\"wppm_user_container_'+ui.item.user_id+'\" class=\"row wppm_user_display_container\">'\n-\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"flex-container col-sm-3\">'\n-\t\t\t\t\t\t\t\t\t+'\u003Cspan class=\"wppm_filter_display_text\">'\n-\t\t\t\t\t\t\t\t\t\t+ui.item.label\n-\t\t\t\t\t\t\t\t\t\t+'\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"'+ui.item.user_id+'\">'\n-\t\t\t\t\t\t\t\t\t+'\u003C\u002Fspan>'\n-\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\n-\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-3 wppm_user_role\">'\n-\t\t\t\t\t\t\t\t\t\t+'\u003Cselect size=\"sm\" class=\"form-control\" id=\"wppm_select_user_role_'+ui.item.user_id+'\" name=\"wppm_select_user_role_'+ui.item.user_id+'\">'+\n-\t\t\t\t\t\t\t\t\t\t\u003C?php \n-                                            if(!empty($wppm_users_role)){\n-                                                foreach($wppm_users_role as $key=>$role){\n-                                                    foreach($role as $k=>$val){\n-                                                        ?>'\u003Coption value=\"\u003C?php echo esc_attr($key) ?>\">\u003C?php echo esc_html($role['label']) ?>\u003C\u002Foption>'+\u003C?php\n-                                                    }\n-                                                }\n-                                            }\n-\t\t\t\t\t\t\t\t\t\t?>\n-\t\t\t\t\t\t\t\t\t\t'\u003C\u002Fselect>'\n-\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\n-\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-3 wppm_delete_user_icon\">'\n-\t\t\t\t\t\t\t\t\t+'\u003Cspan onclick=\"wppm_remove_user_from_project('+ui.item.user_id+');\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>'\n-\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\t\n-\t\t\t\t\t\t\t+'\u003C\u002Fdiv>';\n-\t\t\tjQuery('#wppm_display_users .wppm_filter_display_users_container').append(html_str);\n-\t\t\tjQuery(this).val(''); return false;\n-        }\n-    }).focus(function() {\n-        jQuery(this).autocomplete(\"search\", \"\");\n-    });\n-});\n-\n-function wppm_remove_user(e){\n-    jQuery(e).parent().parent().remove();\n-}\n-\n-function wppm_create_project(){\n-  if(!jQuery('#wppm_project_name').val()){\n-        alert(\"\u003C?php esc_js(__('Project title is required','taskbuilder'))?>\");\n-    return false;\n-  }\n-  var dataform = new FormData(jQuery('#wppm_add_new_project')[0]);\n-  var is_tinymce = (typeof tinyMCE != \"undefined\") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();\n-  var description = is_tinymce && tinymce.get('wppm_proj_description') ? tinyMCE.get('wppm_proj_description').getContent() : jQuery('#wppm_proj_description').val().trim();\n-  dataform.append('wppm_proj_description', description);\n-  jQuery(document).trigger('wppm_create_project_dataform', [dataform]);\n-  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-  \u003C?php \u002F\u002Fecho do_action('wppm_create_project_dataform');?>\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    wppm_get_project_list();\n-  });\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$wppm_users_role = get_option('wppm_user_role');\r\n+$wppm_project_time = get_option('wppm_project_time');\r\n+$wppm_default_project_date = get_option('wppm_default_project_date');\r\n+$wppm_public_projects_permission = get_option('wppm_public_projects_permission');\r\n+$orderby_sql       = sanitize_sql_orderby(\"name\");\r\n+$sql = \"SELECT * FROM {$wpdb->prefix}wppm_project_categories ORDER BY {$orderby_sql}\";\r\n+$categories = $wpdb->get_results($sql);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\r\n+$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options') || $current_user->ID && $current_user->has_cap('wppm_manager'))) {\r\n+\texit;\r\n+}\r\n+?>\r\n+\u003Cform class='wppm_add_new_project wppm_bootstrap' onsubmit=\"return wppm_create_project();\" id=\"wppm_add_new_project\" method=\"post\">\r\n+    \u003Cdiv class=\"wppm_headers row\">\r\n+        \u003Cdiv class=\"col-sm-12\">\r\n+            \u003Cspan class=\"wppm-heading-inline\" style=\"margin-left:15px;\">\r\n+                \u003C?php echo esc_html_e('Create Project','taskbuilder');?>\r\n+            \u003C\u002Fspan>\r\n+            \u003C?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?>\r\n+                    \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_add_new_proj\" onclick=\"wppm_add_new_project()\" >\u003Cspan style=\"margin-right:5px;\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('+Create Project','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+            \u003C?php } ?>\r\n+            \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_list\" onclick=\"wppm_get_project_list()\" >\u003Cspan style=\"margin-right:5px;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist-symbol.svg'); ?>\" alt=\"list-symbol\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Project List','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv id='wppm_frm_field_container'>\r\n+        \u003Cdiv class=\"row\">\r\n+            \u003Cdiv class=\"wppm_project_frm_fields col-sm-12\">\r\n+                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\u003C?php echo esc_html_e('Name','taskbuilder'); ?>\u003C\u002Fb>\u003C\u002Fspan>\r\n+                    \u003Cspan style=\"color:#ff0000;\">*\u003C\u002Fspan>\r\n+                \u003Cbr>\r\n+                \u003Cinput name=\"name\" class=\"form-control\" id=\"wppm_project_name\" type=\"text\" size=\"40\" aria-required=\"true\">\u003Cbr>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003C?php if($wppm_default_project_date==1){ ?>\r\n+                \u003Cdiv class=\"row\">\r\n+                    \u003Cdiv class=\"wppm_project_frm_fields col-sm-6\">\r\n+                        \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                            \u003C?php echo esc_html_e('Start date','taskbuilder'); ?>\r\n+                            \u003C\u002Fb>\r\n+                        \u003C\u002Fspan>\u003Cbr>\r\n+                        \u003Cinput name=\"wppm_start_date\" class=\"form-control\" id=\"wppm_start_date\" type=\"text\" value=\"\" size=\"40\" aria-required=\"true\">\u003Cbr>\r\n+                    \u003C\u002Fdiv>\r\n+                    \u003Cdiv class=\"wppm_project_frm_fields col-sm-6\">\r\n+                        \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                            \u003C?php echo esc_html_e('End date','taskbuilder'); ?>\r\n+                            \u003C\u002Fb>\r\n+                        \u003C\u002Fspan>\u003Cbr>\r\n+                        \u003Cinput name=\"wppm_end_date\" id=\"wppm_end_date\" class=\"form-control\" type=\"text\" value=\"\" size=\"40\" aria-required=\"true\">\u003Cbr>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+        \u003C?php } ?>\r\n+        \u003Cdiv class=\"row\">\r\n+            \u003Cdiv class=\"wppm_project_frm_fields col-sm-12\">\r\n+                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                    \u003Cb>\r\n+                    \u003C?php echo esc_html_e('Description','taskbuilder'); ?>\r\n+                    \u003C\u002Fb>\r\n+                \u003C\u002Fspan>\u003Cbr>\r\n+                \u003Ctextarea id=\"wppm_proj_description\" name=\"wppm_proj_description\">\r\n+                \u003C\u002Ftextarea>\r\n+                \u003Cbr>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"row\">\r\n+           \u003Cdiv class=\"wppm_project_frm_fields col-sm-12\">\r\n+                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                    \u003Cb>\r\n+                    \u003C?php echo esc_html_e('Category','taskbuilder'); ?>\r\n+                    \u003C\u002Fb>\r\n+                \u003C\u002Fspan>\u003Cbr>\r\n+                \u003Cselect id=\"wppm_create_project_category\" name=\"wppm_create_project_category\" class=\"form-control\">\r\n+                    \u003Coption value=\"\">\u003C\u002Foption>\u003C?php \r\n+                    if(!empty($categories)){\r\n+                        foreach ($categories as $category){\r\n+                            echo '\u003Coption value=\"'.esc_attr($category->id).'\">'.esc_html(stripcslashes($category->name)).'\u003C\u002Foption>';\r\n+                        }\r\n+                    }\r\n+                    ?>\r\n+                \u003C\u002Fselect>\u003Cbr>\u003Cbr>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"row\">\r\n+            \u003Cdiv class=\"wppm_project_frm_fields col-sm-12\">\r\n+                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                    \u003Cb>\r\n+                    \u003C?php echo esc_html_e('Assign User','taskbuilder'); ?>\r\n+                    \u003C\u002Fb>\r\n+                \u003C\u002Fspan>\u003Cbr>\r\n+                \u003Cinput class=\"form-control wppm_assign_users ui-autocomplete-input\" name=\"wppm_assigned_user\" type=\"text\" autocomplete=\"off\" placeholder= \"\u003C?php echo esc_attr__('Search User...','taskbuilder');?>\">\r\n+                \u003Cbr>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_display_users\" class=\"row\">\r\n+            \u003Cdiv class=\"col-sm-12\">\r\n+                \u003Cui class=\"wppm_filter_display_users_container\">\u003C\u002Fui>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003C?php if( $wppm_public_projects_permission==1) { ?>\r\n+        \u003Cdiv id=\"wppm_public_projects_permission\" class=\"row\">\r\n+            \u003Cdiv class=\"col-sm-12\">\r\n+                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                    \u003Cinput type=\"checkbox\" name=\"wppm_public_project\"\" \u002F>\r\n+                    \u003Clabel id=\"wppm_public_project_label\">\u003C?php echo esc_html_e('Make Project Public','taskbuilder'); ?>\u003C\u002Flabel>\r\n+                    \u003C\u002Fb>\r\n+                \u003C\u002Fspan>\u003Cbr>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003C?php } ?>\r\n+        \u003Cdiv class=\"row\">\r\n+            \u003Cdiv class=\"wppm_frm_submit col-sm-12\">\r\n+                \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" id=\"wppm-submit-proj-btn\">\u003C?php echo esc_html_e('Add Project','taskbuilder'); ?>\u003C\u002Fbutton>\r\n+                \u003Cbutton type=\"button\" class=\"wppm_reset_btn\" id=\"wppm_submit_proj_reset_btn\" onclick=\"wppm_add_new_project()\">\u003C?php echo esc_html_e('Reset Form','taskbuilder') ?>\u003C\u002Fbutton>\r\n+                \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_create_project\" \u002F>\r\n+                \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_create_project' ) ); ?>\">\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+\u003C\u002Fform>\r\n+\u003Cscript>\r\n+jQuery( document ).ready( function( jQuery ) {\r\n+    jQuery(\"#wppm_start_date\").flatpickr({\r\n+        enableTime: \u003C?php echo ($wppm_project_time == 1) ? 'true' : 'false' ?>,\r\n+        dateFormat: \"Y-m-d \u003C?php echo ($wppm_project_time == 1) ? 'H:i': '' ?>\"\r\n+    });\r\n+    jQuery(\"#wppm_end_date\").flatpickr({\r\n+        enableTime: \u003C?php echo ($wppm_project_time==1) ? 'true' : 'false' ?>,\r\n+        dateFormat: \"Y-m-d \u003C?php echo ($wppm_project_time==1) ? 'H:i': '' ?>\"\r\n+    });\u003C?php\r\n+    if((!empty($wppm_rich_text_editor)) && ($wppm_rich_text_editor == 1)){ \r\n+        $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :\"\";\r\n+        $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :\"\";   \r\n+        $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :\"\";   \r\n+        $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :\"\";   \r\n+        $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)?  ' alignleft aligncenter alignright ' :\"\";   \r\n+        $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :\"\"; \r\n+        $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :\"\";     \r\n+        $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :\"\";     \r\n+        $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :\"\"; \r\n+        $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :\"\";     \r\n+        $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :\"\"; \r\n+        $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :\"\"; \r\n+        $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :\"\"; \r\n+        $toolbar = trim(\"$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough\");?>\r\n+        tinymce.remove();\r\n+        tinymce.init({ \r\n+        selector:'#wppm_proj_description',\r\n+        body_id: 'wppm_proj_description',\r\n+        directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\r\n+        menubar: false,\r\n+        statusbar: false,\r\n+        height : '200',\r\n+        width  : '100%', \r\n+        plugins: [\r\n+            'lists link image directionality paste textcolor'\r\n+        ],\r\n+        image_advtab: true,\r\n+        toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>',\r\n+        branding: false,\r\n+        autoresize_bottom_margin: 20,\r\n+        browser_spellcheck : true,\r\n+        relative_urls : false,\r\n+        paste_as_text: true,\r\n+        remove_script_host : false,\r\n+        convert_urls : true,\r\n+        setup: function (editor) {\r\n+        }\r\n+        });\r\n+    \u003C?php } ?>\r\n+    jQuery(\"input[name='wppm_assigned_user']\").keypress(function(e) {\r\n+        \u002F\u002FEnter key\r\n+        if (e.which == 13) {\r\n+            return false;\r\n+        }\r\n+    });\r\n+    jQuery( \".wppm_assign_users\" ).autocomplete({\r\n+        minLength: 1,\r\n+        appendTo: jQuery('.wppm_assign_users').parent(),\r\n+        source: function( request, response ) {\r\n+            var term = request.term;\r\n+            request = {\r\n+                action: 'wppm_filter_autocomplete',\r\n+                term : term,\r\n+                field : 'users_name',\r\n+            }\r\n+            jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\r\n+                response(data);\r\n+            });\r\n+        },\r\n+        select: function (event, ui) {\r\n+            var html_str = '\u003Cdiv id=\"wppm_user_container_'+ui.item.user_id+'\" class=\"row wppm_user_display_container\">'\r\n+\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"flex-container col-sm-3\">'\r\n+\t\t\t\t\t\t\t\t\t+'\u003Cspan class=\"wppm_filter_display_text\">'\r\n+\t\t\t\t\t\t\t\t\t\t+ui.item.label\r\n+\t\t\t\t\t\t\t\t\t\t+'\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"'+ui.item.user_id+'\">'\r\n+\t\t\t\t\t\t\t\t\t+'\u003C\u002Fspan>'\r\n+\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\r\n+\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-3 wppm_user_role\">'\r\n+\t\t\t\t\t\t\t\t\t\t+'\u003Cselect size=\"sm\" class=\"form-control\" id=\"wppm_select_user_role_'+ui.item.user_id+'\" name=\"wppm_select_user_role_'+ui.item.user_id+'\">'+\r\n+\t\t\t\t\t\t\t\t\t\t\u003C?php \r\n+                                            if(!empty($wppm_users_role)){\r\n+                                                foreach($wppm_users_role as $key=>$role){\r\n+                                                    foreach($role as $k=>$val){\r\n+                                                        ?>'\u003Coption value=\"\u003C?php echo esc_attr($key) ?>\">\u003C?php echo esc_html($role['label']) ?>\u003C\u002Foption>'+\u003C?php\r\n+                                                    }\r\n+                                                }\r\n+                                            }\r\n+\t\t\t\t\t\t\t\t\t\t?>\r\n+\t\t\t\t\t\t\t\t\t\t'\u003C\u002Fselect>'\r\n+\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\r\n+\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-3 wppm_delete_user_icon\">'\r\n+\t\t\t\t\t\t\t\t\t+'\u003Cspan onclick=\"wppm_remove_user_from_project('+ui.item.user_id+');\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>'\r\n+\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\t\r\n+\t\t\t\t\t\t\t+'\u003C\u002Fdiv>';\r\n+\t\t\tjQuery('#wppm_display_users .wppm_filter_display_users_container').append(html_str);\r\n+\t\t\tjQuery(this).val(''); return false;\r\n+        }\r\n+    }).focus(function() {\r\n+        jQuery(this).autocomplete(\"search\", \"\");\r\n+    });\r\n+});\r\n+\r\n+function wppm_remove_user(e){\r\n+    jQuery(e).parent().parent().remove();\r\n+}\r\n+\r\n+function wppm_create_project(){\r\n+  if(!jQuery('#wppm_project_name').val()){\r\n+        alert(\"\u003C?php esc_js(__('Project title is required','taskbuilder'))?>\");\r\n+    return false;\r\n+  }\r\n+  var dataform = new FormData(jQuery('#wppm_add_new_project')[0]);\r\n+  var is_tinymce = (typeof tinyMCE != \"undefined\") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();\r\n+  var description = is_tinymce && tinymce.get('wppm_proj_description') ? tinyMCE.get('wppm_proj_description').getContent() : jQuery('#wppm_proj_description').val().trim();\r\n+  dataform.append('wppm_proj_description', description);\r\n+  jQuery(document).trigger('wppm_create_project_dataform', [dataform]);\r\n+  jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+  \u003C?php \u002F\u002Fecho do_action('wppm_create_project_dataform');?>\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    wppm_get_project_list();\r\n+  });\r\n+}\r\n \u003C\u002Fscript>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_create_project.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_create_project.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_create_project.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_create_project.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,62 +1,62 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb, $wppmfunction, $current_user;\n-if ( check_ajax_referer( 'wppm_create_project', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if (($current_user->has_cap('manage_options')) || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin') {\n-\t\u002F\u002F project name\n-\t$name = isset($_POST['name']) ? sanitize_text_field(wp_unslash($_POST['name'])) : '';\n-\tif($name) $args['name'] = $name;\n-\n-\t\u002F\u002F Description\n-\t$project_description = '';\n-\n-\tif ( !empty( $_POST['wppm_proj_description'] ) ) {\n-\t\t$project_description = wp_kses_post(\n-\t\t\twp_unslash( $_POST['wppm_proj_description'] )\n-\t\t);\n-\t}\n-\tif($project_description) $args['wppm_proj_description'] = $project_description;\n-\n-\t\u002F\u002FProject start date\n-\t$text = isset($_POST['wppm_start_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_start_date'])) : '';\n-\tif($text) $args['wppm_start_date'] = wp_date(\"Y-m-d H:i:s\" ,strtotime($text));\n-\n-\t\u002F\u002FProject end date\n-\t$text2 = isset($_POST['wppm_end_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_end_date'])) : '';\n-\tif($text2) $args['wppm_end_date'] = wp_date(\"Y-m-d H:i:s\" ,strtotime($text2));\n-\n-\t\u002F\u002F Category\n-\t$project_category = isset($_POST['wppm_create_project_category']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_create_project_category']))) : '';\n-\tif($project_category) $args['wppm_create_project_category'] = $project_category;\n-\n-\t\u002F\u002FAssign user\n-\t$users = array();\n-\tif ( isset( $_POST['user_names'] ) && is_array( $_POST['user_names'] ) ) {\n-\t\t$users = array_map(\n-\t\t\t'absint',\n-\t\t\twp_unslash( $_POST['user_names'] )\n-\t\t);\n-\t\t$users = array_unique( $users );\n-\t}\n-\tif($users) $args['user_names'] = $wppmfunction->sanitize_array($users);\n-\n-\t\u002F\u002Fpublic project\n-\t$public_proj = isset($_POST['wppm_public_project']) ?  1 : 0;\n-\n-\t$args = apply_filters( 'wppm_before_create_project_args', $args);\n-\n-\t$project_id = WPPM_Functions::create_project($args);\n-\tif ( empty( $project_id ) ) {\n-    \twp_send_json_error( 'Permission denied', 403 );\n-\t}\n-\t$auth_code = $wppmfunction->getRandomString(10);\n-\t$wppmfunction->add_project_meta($project_id,'public_project',$public_proj);\n-\t$wppmfunction->add_project_meta($project_id,'project_auth_code',$auth_code);\n-}\n-\n-do_action('wppm_after_project_created',$project_id);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb, $wppmfunction, $current_user;\r\n+if ( check_ajax_referer( 'wppm_create_project', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if (($current_user->has_cap('manage_options')) || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin') {\r\n+\t\u002F\u002F project name\r\n+\t$name = isset($_POST['name']) ? sanitize_text_field(wp_unslash($_POST['name'])) : '';\r\n+\tif($name) $args['name'] = $name;\r\n+\r\n+\t\u002F\u002F Description\r\n+\t$project_description = '';\r\n+\r\n+\tif ( !empty( $_POST['wppm_proj_description'] ) ) {\r\n+\t\t$project_description = wp_kses_post(\r\n+\t\t\twp_unslash( $_POST['wppm_proj_description'] )\r\n+\t\t);\r\n+\t}\r\n+\tif($project_description) $args['wppm_proj_description'] = $project_description;\r\n+\r\n+\t\u002F\u002FProject start date\r\n+\t$text = isset($_POST['wppm_start_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_start_date'])) : '';\r\n+\tif($text) $args['wppm_start_date'] = wp_date(\"Y-m-d H:i:s\" ,strtotime($text));\r\n+\r\n+\t\u002F\u002FProject end date\r\n+\t$text2 = isset($_POST['wppm_end_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_end_date'])) : '';\r\n+\tif($text2) $args['wppm_end_date'] = wp_date(\"Y-m-d H:i:s\" ,strtotime($text2));\r\n+\r\n+\t\u002F\u002F Category\r\n+\t$project_category = isset($_POST['wppm_create_project_category']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_create_project_category']))) : '';\r\n+\tif($project_category) $args['wppm_create_project_category'] = $project_category;\r\n+\r\n+\t\u002F\u002FAssign user\r\n+\t$users = array();\r\n+\tif ( isset( $_POST['user_names'] ) && is_array( $_POST['user_names'] ) ) {\r\n+\t\t$users = array_map(\r\n+\t\t\t'absint',\r\n+\t\t\twp_unslash( $_POST['user_names'] )\r\n+\t\t);\r\n+\t\t$users = array_unique( $users );\r\n+\t}\r\n+\tif($users) $args['user_names'] = $wppmfunction->sanitize_array($users);\r\n+\r\n+\t\u002F\u002Fpublic project\r\n+\t$public_proj = isset($_POST['wppm_public_project']) ?  1 : 0;\r\n+\r\n+\t$args = apply_filters( 'wppm_before_create_project_args', $args);\r\n+\r\n+\t$project_id = WPPM_Functions::create_project($args);\r\n+\tif ( empty( $project_id ) ) {\r\n+    \twp_send_json_error( 'Permission denied', 403 );\r\n+\t}\r\n+\t$auth_code = $wppmfunction->getRandomString(10);\r\n+\t$wppmfunction->add_project_meta($project_id,'public_project',$public_proj);\r\n+\t$wppmfunction->add_project_meta($project_id,'project_auth_code',$auth_code);\r\n+}\r\n+\r\n+do_action('wppm_after_project_created',$project_id);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_filter_autocomplete.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_filter_autocomplete.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_filter_autocomplete.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_filter_autocomplete.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,122 +1,122 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-if (!($current_user->ID)) {exit;}\n-\n-if (!isset($source)) {\n-\t$term       = isset($_REQUEST) && isset($_REQUEST['term']) ? sanitize_text_field(wp_unslash($_REQUEST['term'])) : '';\n-\t$field_slug = isset($_REQUEST) && isset($_REQUEST['field']) ? sanitize_text_field(wp_unslash($_REQUEST['field'])) : '';\n-    $task_id =    isset($_REQUEST) && isset($_REQUEST['task_id']) ? absint(sanitize_text_field(wp_unslash($_REQUEST['task_id']))) : '0';\n-    $project_id = isset($_REQUEST) && isset($_REQUEST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_REQUEST['proj_id']))) : '0';\n-    $users = array();\n-}\n-$output = array();\n-switch ($field_slug) {\n-    case 'users_name':\n-        if($field_slug == 'users_name'){\n-            $users = get_users(array('search'=>'*'.$term.'*','number' => 5));\n-            $users = apply_filters(\"wppm_filter_autocomplete_users_name\",$users,$field_slug,$term,$task_id,$project_id);\n-            if(!empty($users)){\n-                foreach ($users as $user) {\n-                    $output[] = array(\n-                        'label' => $user->display_name,\n-                        'value' => $user->display_name,\n-                        'user_id'  => $user->ID,\n-                    );\n-                }\n-            }\n-        }\n-        break;\n-    case 'task_user_name':\n-        $task_id = absint($task_id);\n-        if($field_slug == 'task_user_name'){\n-            $wppm_fillter = $wpdb->get_var($wpdb->prepare(\"SELECT Project.users\n-                  FROM {$wpdb->prefix}wppm_project AS Project \n-                  Left join {$wpdb->prefix}wppm_task task ON Project.id = task.project\n-                  where task.id = %d\",$task_id));\n-            $users = get_users(array('search'=>'*'.$term.'*','number' => 5));\n-            $users = apply_filters(\"wppm_filter_autocomplete_task_users_name\",$users,$field_slug,$term,$task_id,$project_id);\n-            $users_array = explode(\",\",(string)$wppm_fillter);\n-            if(!empty($users)){\n-                foreach ($users as $user) {\n-                    if(in_array($user->ID,$users_array)){\n-                        $output[] = array(\n-                            'label' => $user->display_name,\n-                            'value' => $user->display_name,\n-                            'user_id'  => $user->ID,\n-                        );\n-                    }\n-                }\n-            }\n-        }\n-        break;\n-        case 'task_users_by_project_name':\n-            if($field_slug == 'task_users_by_project_name'){\n-                $project_id = esc_sql($project_id);\n-                $cu_id = esc_sql($current_user->ID);\n-                $wppm_fillter = $wpdb->get_var( $wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project where id = %d\",$project_id) );\n-                $project_creator = $wpdb->get_var( $wpdb->prepare(\"SELECT created_by FROM {$wpdb->prefix}wppm_project where id = %d\",$project_id) );\n-                $users = get_users(array('search'=>'*'.$term.'*','number' => 5));\n-                $users = apply_filters(\"wppm_filter_autocomplete_task_users_by_project_name\",$users,$field_slug,$term,$task_id,$project_id);\n-                $project_user_role = $wpdb->get_var($wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$cu_id));\n-                $users_array = explode(\",\",(string)$wppm_fillter);\n-                $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-                if((!empty($users_array) && ($project_user_role==1 || $current_user->has_cap('manage_options')))|| $wppm_current_user_capability =='wppm_admin' || $project_creator==$current_user->ID ||($wppmfunction->has_permission('assign_task_users',0))!=\"\" ){\n-                        foreach ($users as $user) {\n-                            if(in_array($user->ID,$users_array)){\n-                                $output[] = array(\n-                                    'label' => $user->display_name,\n-                                    'value' => $user->display_name,\n-                                    'user_id'  => $user->ID,\n-                                );\n-                            }\n-                        }\n-                    \n-                }else{\n-                    $output[] = array(\n-                        'label' => $current_user->display_name,\n-                        'value' => $current_user->display_name,\n-                        'user_id'  => $current_user->ID,\n-                    );\n-                }\n-            }\n-        break;\n-        case 'project_creator_name':\n-            if($field_slug == 'project_creator_name'){\n-                $admin_users = get_users(array('search'=>'*'.$term.'*','number' => 5,'role'=>'administrator'));\n-                $manager_users = get_users(array('search'=>'*'.$term.'*','number' => 5,'capability'=>'wppm_manager'));\n-                $wppm_admin_users = get_users(array('search'=>'*'.$term.'*','number' => 5,'capability'=>'wppm_admin'));\n-                $users = array_merge($admin_users,$manager_users,$wppm_admin_users);\n-                $users = apply_filters(\"wppm_filter_autocomplete_project_creator_name\",$users,$field_slug,$term,$task_id,$project_id);\n-                if(!empty($users)){\n-                    foreach ($users as $user) {\n-                        $output[] = array(\n-                            'label' => $user->display_name,\n-                            'value' => $user->display_name,\n-                            'user_id'  => $user->ID,\n-                        );\n-                    }\n-                }\n-            }\n-            break;\n-}\n-if (!$output) {\n-    $output[] = array(\n-        'label'    => esc_html__('No matching data','taskbuilder'),\n-        'value'    => '',\n-        'flag_val' => '',\n-        'user_id'     => '',\n-    );\n-}\n-  \n-$output = apply_filters(\"wppm_filter_autocomplete_search_result\",$output,$users,$field_slug,$term,$task_id,$project_id);\n-if ($output) {\n-    $output = array_unique($output,SORT_REGULAR);\n-}\n-\n-if (!isset($source)) {\n-    echo wp_json_encode($output);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if (!($current_user->ID)) {exit;}\r\n+\r\n+if (!isset($source)) {\r\n+\t$term       = isset($_REQUEST) && isset($_REQUEST['term']) ? sanitize_text_field(wp_unslash($_REQUEST['term'])) : '';\r\n+\t$field_slug = isset($_REQUEST) && isset($_REQUEST['field']) ? sanitize_text_field(wp_unslash($_REQUEST['field'])) : '';\r\n+    $task_id =    isset($_REQUEST) && isset($_REQUEST['task_id']) ? absint(sanitize_text_field(wp_unslash($_REQUEST['task_id']))) : '0';\r\n+    $project_id = isset($_REQUEST) && isset($_REQUEST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_REQUEST['proj_id']))) : '0';\r\n+    $users = array();\r\n+}\r\n+$output = array();\r\n+switch ($field_slug) {\r\n+    case 'users_name':\r\n+        if($field_slug == 'users_name'){\r\n+            $users = get_users(array('search'=>'*'.$term.'*','number' => 5));\r\n+            $users = apply_filters(\"wppm_filter_autocomplete_users_name\",$users,$field_slug,$term,$task_id,$project_id);\r\n+            if(!empty($users)){\r\n+                foreach ($users as $user) {\r\n+                    $output[] = array(\r\n+                        'label' => $user->display_name,\r\n+                        'value' => $user->display_name,\r\n+                        'user_id'  => $user->ID,\r\n+                    );\r\n+                }\r\n+            }\r\n+        }\r\n+        break;\r\n+    case 'task_user_name':\r\n+        $task_id = absint($task_id);\r\n+        if($field_slug == 'task_user_name'){\r\n+            $wppm_fillter = $wpdb->get_var($wpdb->prepare(\"SELECT Project.users\r\n+                  FROM {$wpdb->prefix}wppm_project AS Project \r\n+                  Left join {$wpdb->prefix}wppm_task task ON Project.id = task.project\r\n+                  where task.id = %d\",$task_id));\r\n+            $users = get_users(array('search'=>'*'.$term.'*','number' => 5));\r\n+            $users = apply_filters(\"wppm_filter_autocomplete_task_users_name\",$users,$field_slug,$term,$task_id,$project_id);\r\n+            $users_array = explode(\",\",(string)$wppm_fillter);\r\n+            if(!empty($users)){\r\n+                foreach ($users as $user) {\r\n+                    if(in_array($user->ID,$users_array)){\r\n+                        $output[] = array(\r\n+                            'label' => $user->display_name,\r\n+                            'value' => $user->display_name,\r\n+                            'user_id'  => $user->ID,\r\n+                        );\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+        break;\r\n+        case 'task_users_by_project_name':\r\n+            if($field_slug == 'task_users_by_project_name'){\r\n+                $project_id = esc_sql($project_id);\r\n+                $cu_id = esc_sql($current_user->ID);\r\n+                $wppm_fillter = $wpdb->get_var( $wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project where id = %d\",$project_id) );\r\n+                $project_creator = $wpdb->get_var( $wpdb->prepare(\"SELECT created_by FROM {$wpdb->prefix}wppm_project where id = %d\",$project_id) );\r\n+                $users = get_users(array('search'=>'*'.$term.'*','number' => 5));\r\n+                $users = apply_filters(\"wppm_filter_autocomplete_task_users_by_project_name\",$users,$field_slug,$term,$task_id,$project_id);\r\n+                $project_user_role = $wpdb->get_var($wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id,$cu_id));\r\n+                $users_array = explode(\",\",(string)$wppm_fillter);\r\n+                $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+                if((!empty($users_array) && ($project_user_role==1 || $current_user->has_cap('manage_options')))|| $wppm_current_user_capability =='wppm_admin' || $project_creator==$current_user->ID ||($wppmfunction->has_permission('assign_task_users',0))!=\"\" ){\r\n+                        foreach ($users as $user) {\r\n+                            if(in_array($user->ID,$users_array)){\r\n+                                $output[] = array(\r\n+                                    'label' => $user->display_name,\r\n+                                    'value' => $user->display_name,\r\n+                                    'user_id'  => $user->ID,\r\n+                                );\r\n+                            }\r\n+                        }\r\n+                    \r\n+                }else{\r\n+                    $output[] = array(\r\n+                        'label' => $current_user->display_name,\r\n+                        'value' => $current_user->display_name,\r\n+                        'user_id'  => $current_user->ID,\r\n+                    );\r\n+                }\r\n+            }\r\n+        break;\r\n+        case 'project_creator_name':\r\n+            if($field_slug == 'project_creator_name'){\r\n+                $admin_users = get_users(array('search'=>'*'.$term.'*','number' => 5,'role'=>'administrator'));\r\n+                $manager_users = get_users(array('search'=>'*'.$term.'*','number' => 5,'capability'=>'wppm_manager'));\r\n+                $wppm_admin_users = get_users(array('search'=>'*'.$term.'*','number' => 5,'capability'=>'wppm_admin'));\r\n+                $users = array_merge($admin_users,$manager_users,$wppm_admin_users);\r\n+                $users = apply_filters(\"wppm_filter_autocomplete_project_creator_name\",$users,$field_slug,$term,$task_id,$project_id);\r\n+                if(!empty($users)){\r\n+                    foreach ($users as $user) {\r\n+                        $output[] = array(\r\n+                            'label' => $user->display_name,\r\n+                            'value' => $user->display_name,\r\n+                            'user_id'  => $user->ID,\r\n+                        );\r\n+                    }\r\n+                }\r\n+            }\r\n+            break;\r\n+}\r\n+if (!$output) {\r\n+    $output[] = array(\r\n+        'label'    => esc_html__('No matching data','taskbuilder'),\r\n+        'value'    => '',\r\n+        'flag_val' => '',\r\n+        'user_id'     => '',\r\n+    );\r\n+}\r\n+  \r\n+$output = apply_filters(\"wppm_filter_autocomplete_search_result\",$output,$users,$field_slug,$term,$task_id,$project_id);\r\n+if ($output) {\r\n+    $output = array_unique($output,SORT_REGULAR);\r\n+}\r\n+\r\n+if (!isset($source)) {\r\n+    echo wp_json_encode($output);\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_assign_users.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_assign_users.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_assign_users.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_assign_users.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,97 +1,97 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$wppm_users_role = get_option('wppm_user_role');\n-$proj_ids  = isset($_POST['proj_ids']) ? $wppmfunction->sanitize_array($_POST['proj_ids']) : '' ;\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$settings = get_option(\"wppm-ap-modal\");\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_bulk_project_users\">\n-\t\u003Cdiv id=\"wppm_get_users\">\n-\t\t\u003Cinput type=\"text\" id=\"wppm_user_name\" class=\"wppm_user_name form-control regi_user_autocomplete ui-autocomplete-input\" name=\"user_name\" autocomplete=\"off\" placeholder=\"Search User\">\n-\t\t\u003Cdiv class=\"wppm_filter_display_container\" id=\"wppm_bulk_proj_users_display_container\">\n-\t\t\u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_bulk_project_users\" \u002F>\n-\t\t\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_bulk_project_users' ) ); ?>\">\n-\t\t\u003Cinput type=\"hidden\" id=\"wppm_proj_id\" name=\"proj_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $proj_ids ) ); ?>\" \u002F>\n-\t\u003C\u002Fdiv>\n-\u003C\u002Fform>\n-\u003Cstyle>\n-    li {\n-        color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\n-    }\n-\u003C\u002Fstyle>\n-\u003Cscript>\n-\tjQuery(document).ready(function(){\n-\t\tjQuery(\"input[name='user_name']\").keypress(function(e) {\n-\t\t\t\u002F\u002FEnter key\n-\t\t\tif (e.which == 13) {\n-\t\t\t\treturn false;\n-\t\t\t}\n-\t\t});\n-\t\t\n-\t\tjQuery( \".wppm_user_name\" ).autocomplete({\n-\t\t\tminLength: 1,\n-\t\t\tappendTo: jQuery('.wppm_user_name').parent(),\n-\t\t\tsource: function( request, response ) {\n-\t\t\t\tvar term = request.term;\n-\t\t\t\trequest = {\n-\t\t\t\t\taction: 'wppm_filter_autocomplete',\n-\t\t\t\t\tterm : term,\n-\t\t\t\t\tfield : 'users_name',\n-\t\t\t\t}\n-\t\t\t\tjQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\n-\t\t\t\t\tresponse(data);\n-\t\t\t\t});\n-\t\t\t},\n-\t\t\tselect: function (event, ui) {\n-\t\t\t\tvar html_str = '\u003Cdiv id=\"wppm_user_display_container_'+ui.item.user_id+'\" class=\"row wppm_user_display_container\">'\n-\t\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"flex-container col-sm-4\">'\n-\t\t\t\t\t\t\t\t\t\t+'\u003Cspan class=\"wppm_filter_display_text\">'\n-\t\t\t\t\t\t\t\t\t\t\t+ui.item.label\n-\t\t\t\t\t\t\t\t\t\t\t+'\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"'+ui.item.user_id+'\">'\n-\t\t\t\t\t\t\t\t\t\t+'\u003C\u002Fspan>'\n-\t\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\n-\t\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-4 wppm_user_role\">'\n-\t\t\t\t\t\t\t\t\t\t\t+'\u003Cselect size=\"sm\" class=\"form-control\" id=\"wppm_select_user_role_'+ui.item.user_id+'\" name=\"wppm_select_user_role_'+ui.item.user_id+'\">'+\n-\t\t\t\t\t\t\t\t\t\t\t\u003C?php \n-\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($wppm_users_role)){\n-\t\t\t\t\t\t\t\t\t\t\t\t\tforeach($wppm_users_role as $key=>$role){\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($role)){\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforeach($role as $k=>$val){\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t?>'\u003Coption value=\"\u003C?php echo esc_attr($key) ?>\">\u003C?php echo esc_html($role['label']) ?>\u003C\u002Foption>'+\u003C?php\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t\t}\n-\t\t\t\t\t\t\t\t\t\t\t?>\n-\t\t\t\t\t\t\t\t\t\t\t'\u003C\u002Fselect>'\n-\t\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\n-\t\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-4 wppm_delete_user_icon\">'\n-\t\t\t\t\t\t\t\t\t\t+'\u003Cspan onclick=\"wppm_remove_filter('+ui.item.user_id+');\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>'\n-\t\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\t\n-\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>';\n-\t\t\t\tjQuery('.wppm_project_users_not_assign_label').hide();\n-\t\t\t\tjQuery('#wppm_get_users #wppm_bulk_proj_users_display_container').append(html_str);\n-\t\t\t\tjQuery(this).val(''); return false;\n-\t\t\t}\n-\t\t}).focus(function() {\n-\t\t\tjQuery(this).autocomplete(\"search\", \"\");\n-\t\t});\n-\t});\n-\u003C\u002Fscript>\n-\u003C?php\n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_bulk_project_users();\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-$output = array(\n-    'body'      => $body,\n-    'footer'    => $footer\n-);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$wppm_users_role = get_option('wppm_user_role');\r\n+$proj_ids  = isset($_POST['proj_ids']) ? $wppmfunction->sanitize_array($_POST['proj_ids']) : '' ;\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_bulk_project_users\">\r\n+\t\u003Cdiv id=\"wppm_get_users\">\r\n+\t\t\u003Cinput type=\"text\" id=\"wppm_user_name\" class=\"wppm_user_name form-control regi_user_autocomplete ui-autocomplete-input\" name=\"user_name\" autocomplete=\"off\" placeholder=\"Search User\">\r\n+\t\t\u003Cdiv class=\"wppm_filter_display_container\" id=\"wppm_bulk_proj_users_display_container\">\r\n+\t\t\u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_bulk_project_users\" \u002F>\r\n+\t\t\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_bulk_project_users' ) ); ?>\">\r\n+\t\t\u003Cinput type=\"hidden\" id=\"wppm_proj_id\" name=\"proj_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $proj_ids ) ); ?>\" \u002F>\r\n+\t\u003C\u002Fdiv>\r\n+\u003C\u002Fform>\r\n+\u003Cstyle>\r\n+    li {\r\n+        color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\r\n+    }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript>\r\n+\tjQuery(document).ready(function(){\r\n+\t\tjQuery(\"input[name='user_name']\").keypress(function(e) {\r\n+\t\t\t\u002F\u002FEnter key\r\n+\t\t\tif (e.which == 13) {\r\n+\t\t\t\treturn false;\r\n+\t\t\t}\r\n+\t\t});\r\n+\t\t\r\n+\t\tjQuery( \".wppm_user_name\" ).autocomplete({\r\n+\t\t\tminLength: 1,\r\n+\t\t\tappendTo: jQuery('.wppm_user_name').parent(),\r\n+\t\t\tsource: function( request, response ) {\r\n+\t\t\t\tvar term = request.term;\r\n+\t\t\t\trequest = {\r\n+\t\t\t\t\taction: 'wppm_filter_autocomplete',\r\n+\t\t\t\t\tterm : term,\r\n+\t\t\t\t\tfield : 'users_name',\r\n+\t\t\t\t}\r\n+\t\t\t\tjQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\r\n+\t\t\t\t\tresponse(data);\r\n+\t\t\t\t});\r\n+\t\t\t},\r\n+\t\t\tselect: function (event, ui) {\r\n+\t\t\t\tvar html_str = '\u003Cdiv id=\"wppm_user_display_container_'+ui.item.user_id+'\" class=\"row wppm_user_display_container\">'\r\n+\t\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"flex-container col-sm-4\">'\r\n+\t\t\t\t\t\t\t\t\t\t+'\u003Cspan class=\"wppm_filter_display_text\">'\r\n+\t\t\t\t\t\t\t\t\t\t\t+ui.item.label\r\n+\t\t\t\t\t\t\t\t\t\t\t+'\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"'+ui.item.user_id+'\">'\r\n+\t\t\t\t\t\t\t\t\t\t+'\u003C\u002Fspan>'\r\n+\t\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\r\n+\t\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-4 wppm_user_role\">'\r\n+\t\t\t\t\t\t\t\t\t\t\t+'\u003Cselect size=\"sm\" class=\"form-control\" id=\"wppm_select_user_role_'+ui.item.user_id+'\" name=\"wppm_select_user_role_'+ui.item.user_id+'\">'+\r\n+\t\t\t\t\t\t\t\t\t\t\t\u003C?php \r\n+\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($wppm_users_role)){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\tforeach($wppm_users_role as $key=>$role){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(!empty($role)){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforeach($role as $k=>$val){\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t?>'\u003Coption value=\"\u003C?php echo esc_attr($key) ?>\">\u003C?php echo esc_html($role['label']) ?>\u003C\u002Foption>'+\u003C?php\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t\t}\r\n+\t\t\t\t\t\t\t\t\t\t\t?>\r\n+\t\t\t\t\t\t\t\t\t\t\t'\u003C\u002Fselect>'\r\n+\t\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\r\n+\t\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-4 wppm_delete_user_icon\">'\r\n+\t\t\t\t\t\t\t\t\t\t+'\u003Cspan onclick=\"wppm_remove_filter('+ui.item.user_id+');\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>'\r\n+\t\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\t\r\n+\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>';\r\n+\t\t\t\tjQuery('.wppm_project_users_not_assign_label').hide();\r\n+\t\t\t\tjQuery('#wppm_get_users #wppm_bulk_proj_users_display_container').append(html_str);\r\n+\t\t\t\tjQuery(this).val(''); return false;\r\n+\t\t\t}\r\n+\t\t}).focus(function() {\r\n+\t\t\tjQuery(this).autocomplete(\"search\", \"\");\r\n+\t\t});\r\n+\t});\r\n+\u003C\u002Fscript>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_bulk_project_users();\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+$output = array(\r\n+    'body'      => $body,\r\n+    'footer'    => $footer\r\n+);\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_cat.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_cat.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_cat.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_cat.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,43 +1,43 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$proj_ids  = isset($_POST['proj_ids']) ? $wppmfunction->sanitize_array($_POST['proj_ids']) : '' ;\n-$categories = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories\");\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_bulk_project_change_category\" method=\"post\">\n-\t\u003Cdiv class=\"form-group\">\n-\t\t\u003Clabel for=\"wppm_project_category\" class=\"wppm_project_category\">\u003C?php echo esc_html_e('Project Category','taskbuilder');?>\u003C\u002Flabel>\n-\t\t\u003Cselect class=\"form-control\" name=\"wppm_project_category\">\n-\t\t\t\u003C?php\n-\t\t\tif(!empty($categories)){\n-\t\t\t\tforeach ( $categories as $cat ) :\n-\t\t\t\t\techo '\u003Coption value=\"'.esc_attr($cat->id).'\">'.esc_html($cat->name).'\u003C\u002Foption>';\n-\t\t\t\tendforeach;\n-\t\t\t}\n-\t\t\t?>\n-\t\t\u003C\u002Fselect>\n-\t\u003C\u002Fdiv>\u003C?php\n-        do_action('wppm_after_edit_bulk_change_project_category',$proj_ids); ?>\n-        \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_bulk_change_project_category\" \u002F>\n-        \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_bulk_change_project_category' ) ); ?>\">\n-        \u003Cinput type=\"hidden\" id=\"wppm_project_ids\" name=\"proj_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $proj_ids ) ); ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003C?php\n-$body = ob_get_clean();\n-\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_bulk_change_project_category();\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$proj_ids  = isset($_POST['proj_ids']) ? $wppmfunction->sanitize_array($_POST['proj_ids']) : '' ;\r\n+$categories = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories\");\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_bulk_project_change_category\" method=\"post\">\r\n+\t\u003Cdiv class=\"form-group\">\r\n+\t\t\u003Clabel for=\"wppm_project_category\" class=\"wppm_project_category\">\u003C?php echo esc_html_e('Project Category','taskbuilder');?>\u003C\u002Flabel>\r\n+\t\t\u003Cselect class=\"form-control\" name=\"wppm_project_category\">\r\n+\t\t\t\u003C?php\r\n+\t\t\tif(!empty($categories)){\r\n+\t\t\t\tforeach ( $categories as $cat ) :\r\n+\t\t\t\t\techo '\u003Coption value=\"'.esc_attr($cat->id).'\">'.esc_html($cat->name).'\u003C\u002Foption>';\r\n+\t\t\t\tendforeach;\r\n+\t\t\t}\r\n+\t\t\t?>\r\n+\t\t\u003C\u002Fselect>\r\n+\t\u003C\u002Fdiv>\u003C?php\r\n+        do_action('wppm_after_edit_bulk_change_project_category',$proj_ids); ?>\r\n+        \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_bulk_change_project_category\" \u002F>\r\n+        \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_bulk_change_project_category' ) ); ?>\">\r\n+        \u003Cinput type=\"hidden\" id=\"wppm_project_ids\" name=\"proj_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $proj_ids ) ); ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_bulk_change_project_category();\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,43 +1,43 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$proj_ids  = isset($_POST['proj_ids']) ? $wppmfunction->sanitize_array($_POST['proj_ids']) : '' ;\n-$statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses\");\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_bulk_project_change_status\" method=\"post\">\n-\t\u003Cdiv class=\"form-group\">\n-\t\t\u003Clabel for=\"wppm_project_status\" class=\"wppm_project_status\">\u003C?php echo esc_html_e('Project Status','taskbuilder');?>\u003C\u002Flabel>\n-\t\t\u003Cselect class=\"form-control\" name=\"wppm_project_status\">\n-\t\t\t\u003C?php\n-\t\t\tif(!empty($statuses)){\n-\t\t\t\tforeach ( $statuses as $status ) :\n-\t\t\t\t\techo '\u003Coption value=\"'.esc_attr($status->id).'\">'.esc_html($status->name).'\u003C\u002Foption>';\n-\t\t\t\tendforeach;\n-\t\t\t}\n-\t\t\t?>\n-\t\t\u003C\u002Fselect>\n-\t\u003C\u002Fdiv>\u003C?php\n-        do_action('wppm_after_edit_bulk_change_project_status',$proj_ids); ?>\n-        \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_bulk_change_project_status\" \u002F>\n-        \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_bulk_change_project_status' ) ); ?>\">\n-        \u003Cinput type=\"hidden\" id=\"wppm_project_ids\" name=\"proj_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $proj_ids ) ); ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003C?php\n-$body = ob_get_clean();\n-\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_bulk_change_project_status();\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$proj_ids  = isset($_POST['proj_ids']) ? $wppmfunction->sanitize_array($_POST['proj_ids']) : '' ;\r\n+$statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses\");\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_bulk_project_change_status\" method=\"post\">\r\n+\t\u003Cdiv class=\"form-group\">\r\n+\t\t\u003Clabel for=\"wppm_project_status\" class=\"wppm_project_status\">\u003C?php echo esc_html_e('Project Status','taskbuilder');?>\u003C\u002Flabel>\r\n+\t\t\u003Cselect class=\"form-control\" name=\"wppm_project_status\">\r\n+\t\t\t\u003C?php\r\n+\t\t\tif(!empty($statuses)){\r\n+\t\t\t\tforeach ( $statuses as $status ) :\r\n+\t\t\t\t\techo '\u003Coption value=\"'.esc_attr($status->id).'\">'.esc_html($status->name).'\u003C\u002Foption>';\r\n+\t\t\t\tendforeach;\r\n+\t\t\t}\r\n+\t\t\t?>\r\n+\t\t\u003C\u002Fselect>\r\n+\t\u003C\u002Fdiv>\u003C?php\r\n+        do_action('wppm_after_edit_bulk_change_project_status',$proj_ids); ?>\r\n+        \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_bulk_change_project_status\" \u002F>\r\n+        \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_bulk_change_project_status' ) ); ?>\">\r\n+        \u003Cinput type=\"hidden\" id=\"wppm_project_ids\" name=\"proj_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $proj_ids ) ); ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_bulk_change_project_status();\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_delete_project.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_delete_project.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_delete_project.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_delete_project.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,30 +1,30 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$proj_ids  = isset($_POST['proj_ids']) ? $wppmfunction->sanitize_array($_POST['proj_ids']) : '' ;\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-ob_start();\n-?>\n-\u003Cform id=\"frm_delete_bulk_project\" method=\"post\">\n-    \u003Cdiv class=\"form-group\">\n-        \u003Cp>\u003C?php echo esc_html_e('Are you sure to delete these projects?','taskbuilder');?>\u003C\u002Fp>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_delete_bulk_projects\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_delete_bulk_projects' ) ); ?>\">\n-    \u003Cinput type=\"hidden\" name=\"proj_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $proj_ids ) ); ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003C?php\n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\"  onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Cancel','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" type=\"submit\" onclick=\"wppm_set_delete_bulk_projects();\">\u003C?php echo esc_html_e('Confirm','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-$response = array(\n-    'body'      => $body,\n-    'footer'    => $footer\n-);\n-echo wp_json_encode($response);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$proj_ids  = isset($_POST['proj_ids']) ? $wppmfunction->sanitize_array($_POST['proj_ids']) : '' ;\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_delete_bulk_project\" method=\"post\">\r\n+    \u003Cdiv class=\"form-group\">\r\n+        \u003Cp>\u003C?php echo esc_html_e('Are you sure to delete these projects?','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_delete_bulk_projects\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_delete_bulk_projects' ) ); ?>\">\r\n+    \u003Cinput type=\"hidden\" name=\"proj_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $proj_ids ) ); ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\"  onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Cancel','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" type=\"submit\" onclick=\"wppm_set_delete_bulk_projects();\">\u003C?php echo esc_html_e('Confirm','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+$response = array(\r\n+    'body'      => $body,\r\n+    'footer'    => $footer\r\n+);\r\n+echo wp_json_encode($response);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_delete_project.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_delete_project.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_delete_project.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_get_delete_project.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,32 +1,32 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wppmfunction,$wpdb;\n-$id = isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : '0';\n-$project = $wpdb->get_row( \"SELECT * FROM {$wpdb->prefix}wppm_project where id = '\".esc_sql($id).\"'\");\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('delete_project',$id) || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-ob_start();\n-?>\n-\u003Cform id=\"frm_delete_project\" method=\"post\">\n-    \u003Cdiv class=\"form-group\">\n-        \u003Cp>\u003C?php echo esc_html_e('Are you sure to delete this project?','taskbuilder');?>\u003C\u002Fp>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_delete_project\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_delete_project' ) ); ?>\">\n-    \u003Cinput type=\"hidden\" name=\"project_id\" value=\"\u003C?php echo (esc_attr($id))?>\" \u002F>\n-\u003C\u002Fform>\n-\u003C?php\n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\"  onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Cancel','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" type=\"submit\" onclick=\"wppm_set_delete_project();\">\u003C?php echo esc_html_e('Confirm','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-$response = array(\n-    'body'      => $body,\n-    'footer'    => $footer\n-);\n-echo wp_json_encode($response);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wppmfunction,$wpdb;\r\n+$id = isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : '0';\r\n+$project = $wpdb->get_row( \"SELECT * FROM {$wpdb->prefix}wppm_project where id = '\".esc_sql($id).\"'\");\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('delete_project',$id) || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_delete_project\" method=\"post\">\r\n+    \u003Cdiv class=\"form-group\">\r\n+        \u003Cp>\u003C?php echo esc_html_e('Are you sure to delete this project?','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_delete_project\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_delete_project' ) ); ?>\">\r\n+    \u003Cinput type=\"hidden\" name=\"project_id\" value=\"\u003C?php echo (esc_attr($id))?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\"  onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Cancel','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" type=\"submit\" onclick=\"wppm_set_delete_project();\">\u003C?php echo esc_html_e('Confirm','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+$response = array(\r\n+    'body'      => $body,\r\n+    'footer'    => $footer\r\n+);\r\n+echo wp_json_encode($response);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,819 +1,819 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$current_user,$wppmfunction;\n-$wppm_project_time = get_option('wppm_project_time');\n-$wppm_default_project_date = get_option('wppm_default_project_date');\n-$wppm_public_projects_permission = get_option('wppm_public_projects_permission');\n-$appearance_settings = get_option(\"wppm-ap-individual-project\");\n-$wppm_tinymce_visibility_open_project = get_option('wppm_tinymce_visibility_open_project');\n-$settings = get_option(\"wppm-ap-modal\");\n-$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\n-$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\n-$wppm_date_setting = get_option('wppm_date_setting');\n-$wppm_proj_hide_comment_section = get_option('wppm_proj_hide_comment_section');\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$wppm_deafault_time_duration_project = get_option('wppm_display_time_duration_project');\n-$current_date = wp_date('Y-m-d');\n-$id = isset($_POST) && isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : 0;\n-if (!isset($id)) {exit;}\n-$auth_id = $wppmfunction->get_project_meta($id,'project_auth_code',true);\n-$auth_id = sanitize_text_field($auth_id);\n-$project = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project where id = %d\",$id));\n-$orderby_sql = (sanitize_sql_orderby(\"create_time DESC\"));\n-\u002F\u002F url authentication.\n-$auth_code = isset( $_POST['auth-code'] ) ? sanitize_text_field( $_POST['auth-code'] ) : ''; \u002F\u002F phpcs:ignore\n-if ( ! $auth_code ) {\n-  $auth_code = isset( $_POST['auth_code'] ) ? sanitize_text_field( $_POST['auth_code'] ) : ''; \u002F\u002F phpcs:ignore\n-}\n-\n-if ( $auth_code && $auth_id == $auth_code ) {\n-  $url_auth = true;\n-}\n-$project_comment = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_comment where proj_id = %d ORDER BY $orderby_sql\",$id));\n-if(isset($project->users)){\n-  $users = explode(\",\",$project->users);\n-}else{\n-  $users = \"\";\n-}\n-$wppm_users_role = get_option('wppm_user_role');\n-$current_user_role='';\n-if(in_array($current_user->ID,$users)){\n-  $current_user_role  = $wpdb->get_var($wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$id,$current_user->ID));\n-}\n-if(isset($project->status)){\n-  $projstatus = absint($project->status);\n-  $project_status = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id = %d\",$projstatus));\n-}\n-if(isset($project->cat_id)){\n-  $projcat = absint($project->cat_id);\n-  $project_category = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories where id = %d\",$projcat));\n-}\n-if(!empty($project->description)){\n-  $project_description = ! empty( $project->description ) ? $project->description : '';\n-}\n-if($wppm_project_time == 1){\n-  $psDate = new DateTime($project->start_date);\n-  $peDate = new DateTime($project->end_date);\n-  if($project->start_date=='0000-00-00 00:00:00'){\n-    if($wppm_date_setting=='Y-m-d H:i:s'){\n-      $proj_start_date = '0000-00-00 00:00:00';\n-    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-      $proj_start_date = '00-00-0000 00:00:00';\n-    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-      $proj_start_date = '00-00-0000 00:00:00';\n-    }else{\n-      $proj_start_date = '0000-00-00 00:00:00';\n-    }\n-  }if($project->end_date=='0000-00-00 00:00:00'){\n-    if($wppm_date_setting=='Y-m-d H:i:s'){\n-      $proj_end_date = '0000-00-00 00:00:00';\n-    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-      $proj_end_date = '00-00-0000 00:00:00';\n-    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-      $proj_end_date = '00-00-0000 00:00:00';\n-    }else{\n-      $proj_end_date = '0000-00-00 00:00:00';\n-    }\n-  }if($project->start_date!='0000-00-00 00:00:00'){\n-     if(!empty($wppm_date_setting)){\n-      $proj_start_date = $psDate->format($wppm_date_setting);\n-    }else{\n-      $proj_start_date = isset($project->start_date)? $project->start_date:\"\";\n-    }\n-  }\n-  if($project->end_date!='0000-00-00 00:00:00'){\n-     if(!empty($wppm_date_setting)){\n-      $proj_end_date = $peDate->format($wppm_date_setting);\n-    }else{\n-      $proj_end_date = isset($project->end_date) ? $project->end_date: \"\" ;\n-    }\n-  }\n-} elseif($wppm_project_time == 0){\n-  $psDate = isset($project->start_date) ? new DateTime($project->start_date): \"\";\n-  $peDate = isset($project->end_date) ? new DateTime($project->end_date):\"\";\n-  $proj_start_date = !empty($psDate) ? $psDate->format( 'Y-m-d'):\"\";\n-  $proj_end_date =  !empty($peDate) ? $peDate->format( 'Y-m-d'):\"\";\n-  if($project->start_date=='0000-00-00 00:00:00'){\n-    if($wppm_date_setting=='Y-m-d H:i:s'){\n-      $proj_start_date = '0000-00-00';\n-    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-      $proj_start_date = '00-00-0000';\n-    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-      $proj_start_date = '00-00-0000';\n-    }else{\n-      $proj_start_date = '0000-00-00';\n-    }\n-  }\n-  if($project->end_date=='0000-00-00 00:00:00'){\n-    if($wppm_date_setting=='Y-m-d H:i:s'){\n-      $proj_end_date = '0000-00-00';\n-    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-      $proj_end_date = '00-00-0000';\n-    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-      $proj_end_date = '00-00-0000';\n-    }else{\n-      $proj_end_date = '0000-00-00';\n-    }\n-  }else{\n-    if($wppm_date_setting=='Y-m-d H:i:s'){\n-      $proj_start_date = $psDate->format('Y-m-d');\n-      $proj_end_date = $peDate->format('Y-m-d');\n-    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-      $proj_start_date = $psDate->format('d-m-Y');\n-      $proj_end_date = $peDate->format('d-m-Y');\n-    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-      $proj_start_date = $psDate->format('m-d-Y');\n-      $proj_end_date = $peDate->format('m-d-Y');\n-    }else{\n-      $proj_start_date = !empty($psDate) ? $psDate->format( 'Y-m-d'):\"\";\n-      $proj_end_date =  !empty($peDate) ? $peDate->format( 'Y-m-d'):\"\";\n-    }\n-  }\n-}\n-\n-$project_data = $wppmfunction->get_project($id);\n-$project_users = explode(\",\",$project_data['users']);\n- if(!empty($id)){\n-    $project_id = esc_sql($id);\n-    $public_proj_meta = $wpdb->get_var( \"SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta where project_id= '$project_id' AND meta_key='public_project'\");\n-}else{\n-    $public_proj_meta =\"\";\n-}\n-\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || in_array($current_user->ID,$project_users) || ((!in_array($current_user->ID,$project_users)) && $public_proj_meta == '1')|| ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')) || ((!empty($auth_code)) && $url_auth==true))) {\n-  ?>\n-  \u003Cdiv style=\"align-item:center;\" >\u003Ch6>\u003C?php esc_attr_e( 'Unauthorized access!', 'taskbuilder' ); ?>\u003C\u002Fh6>\u003C\u002Fdiv>\n-  \u003C?php\n-  wp_die();\n-}\n-\n-?>\n-\u003Cform id=\"wppm_open_project\" method=\"post\">\n-  \u003Cdiv class=\"row\">\n-    \u003Cdiv class=\"col-sm-12\">\n-      \u003Cspan class=\"wppm-heading-inline\">\u003C?php echo esc_html_e('Project','taskbuilder');?>\u003C\u002Fspan>\n-      \u003C?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin'){ ?>\n-              \u003Cspan class=\"wppm-add-new-btn btn-primary\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" id=\"wppm_add_new_project_btn\" onclick=\"wppm_add_new_project()\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id=\"wppm_add_new_project_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus_icon.svg'); ?>\" alt=\"plus_icon\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Add New','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-      \u003C?php } ?>\n-      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_list\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" onclick=\"wppm_get_project_list()\" >\u003Cspan style=\"margin-right:5px;\">\u003Cimg id =\"wppm_project_list_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist-symbol.svg'); ?>\" alt=\"list-symbol\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Project List','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-       \u003C!-- Dashboard Button -->\n-      \u003Ca class=\"wppm-add-new-btn btn-primary\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" href=\"\u003C?php echo esc_url( admin_url('admin.php?page=wppm-dashboard') ); ?>\">\n-        \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdashboard.svg'); ?>\" alt=\"dashboard_icon\">\n-        \u003C?php esc_html_e('Dashboard','taskbuilder'); ?>\n-      \u003C\u002Fa>\n-      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_tasks\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" onclick=\"wppm_get_project_tasks(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id =\"wppm_task_list_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftask_list.svg'); ?>\" alt=\"task_list\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Tasks','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_tasks_kanban_view\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" onclick=\"wppm_get_project_tasks_kanban_view(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id =\"wppm_task_list_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fkanban-svg.svg'); ?>\" alt=\"task_list\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Kanban View','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-      \u003C?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_project_permission('delete_project',$project->id))  || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))? \"display:inline\":\"display:none\"; ?>\n-      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_delete_project_btn\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;\u003C?php echo esc_attr($style) ?>\" onclick=\"wppm_delete_project(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id=\"wppm_delete_project_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdelete2.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Delete','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-      \u003C?php $visibility_style = (($current_user->ID && ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) && ($wppm_public_projects_permission==1))? \"display:inline\":\"display:none\"; ?>\n-      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_visibility\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;\u003C?php echo esc_attr($visibility_style) ?>\" onclick=\"wppm_get_project_visibility(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id =\"wppm_task_list_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwppm_visibility.svg'); ?>\" alt=\"project_visibility\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Project Visibility','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-      \u003C?php do_action('wppm_after_open_project_buttons',$project->id);?>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv id=\"wppm_load_individual_project_container\" class=\"row\">\n-      \u003Cdiv class=\"col-sm-8 wppm_body col-md-9\">\n-        \u003Cdiv class=\"row\">\n-          \u003Cdiv class=\"col-sm-12\" id=\"wppm_project_details_container\">\n-            \u003Cdiv class=\"row\">\n-              \u003Cdiv class=\"col-sm-12\">\n-                \u003Cspan class=\"wppm_project_label\"> \u003C?php echo isset($project->project_name) ? esc_html($project->project_name):\"\";\n-                      if (($wppmfunction->has_project_permission('change_project_details',$id)) || ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) { ?>\n-                        \u003Cspan id=\"wppm_individual_edit_project_subject\" onclick=\"wppm_edit_proj_details(\u003C?php echo esc_attr($id) ?>)\" class=\"btn btn-sm wppm_action_btn\" style=\"background-color:#FFFFFF !important;color:#000000 !important;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\n-                \u003C?php } ?>\n-                \u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-            \u003Cdiv class=\"row\">\n-              \u003Cdiv class=\"col-sm-3\">\n-                \u003Cspan class=\"wppm_project_details_label\">\u003C?php echo esc_html_e('Created On:','taskbuilder');?>\u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-              \u003Cdiv class=\"col-sm-9\">\u003C?php\n-                $pcDate = isset($project->date_created) ? new DateTime($project->date_created): \"\";\n-                if($wppm_project_time !=0){\n-                  if($wppm_date_setting=='Y-m-d H:i:s'){\n-                    $proj_create_date = !empty($pcDate) ? $pcDate->format('Y-m-d H:i:s'):\"\";\n-                  } elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                    $proj_create_date = !empty($pcDate) ? $pcDate->format('d-m-Y H:i:s'):\"\";\n-                  } elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                    $proj_create_date = !empty($pcDate) ? $pcDate->format('m-d-Y H:i:s'):\"\";\n-                  } else {\n-                    $proj_create_date = !empty($pcDate) ? $pcDate->format('Y-m-d H:i:s'):\"\";\n-                  }\n-                } elseif($wppm_project_time == 0){\n-                  if($wppm_date_setting=='Y-m-d H:i:s'){\n-                    $proj_create_date = !empty($pcDate) ? $pcDate->format('Y-m-d'):\"\";\n-                  } elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                    $proj_create_date = !empty($pcDate) ? $pcDate->format('d-m-Y'):\"\";\n-                  } elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                    $proj_create_date = !empty($pcDate) ? $pcDate->format('m-d-Y'):\"\";\n-                  } else {\n-                    $proj_create_date = !empty($pcDate) ? $pcDate->format('Y-m-d'):\"\";\n-                  }\n-                } ?>\n-                \u003Cspan class=\"wppm_project_details\">\u003C?php echo isset($proj_create_date) ? esc_html($proj_create_date):\"\" ?>\u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-            \u003C?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0) { ?>\n-                    \u003Cdiv class=\"row\">\n-                      \u003Cdiv class=\"col-sm-3\">\n-                        \u003Cspan class=\"wppm_project_details_label\">\u003C?php echo esc_html_e('Start Date:','taskbuilder');?>\u003C\u002Fspan>\n-                      \u003C\u002Fdiv>\n-                      \u003Cdiv class=\"col-sm-9\">\n-                        \u003Cspan class=\"wppm_project_details\"  id=\"wppm_edit_pstart_date\">\u003C?php echo (isset($proj_start_date))? esc_html($proj_start_date): \"\" ?>\u003C\u002Fspan>\n-                      \u003C\u002Fdiv>\n-                      \u003Cinput type=\"hidden\" name=\"wppm_edit_pstart_date_ajax_nonce\" id=\"wppm_edit_pstart_date_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_proj_start_date' ) ); ?>\">\n-                    \u003C\u002Fdiv>\n-                    \u003Cdiv class=\"row\">\n-                      \u003Cdiv class=\"col-sm-3\">\n-                      \u003Cspan class=\"wppm_project_details_label\">\u003C?php echo esc_html_e('End Date:','taskbuilder');?>\u003C\u002Fspan>\n-                      \u003C\u002Fdiv>\n-                      \u003Cdiv class=\"col-sm-9\">\n-                      \u003C?php \n-                        $pstatus = isset($project->status) ? $project->status :\"\";\n-                        $style = (!empty($proj_end_date) && $pstatus!=4 && $proj_end_date \u003C $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) ? \"color:#FF0000\":\"color:#2C3E50\"; ?>\n-                        \u003Cspan class=\"wppm_project_details\" id=\"wppm_edit_pend_date\" style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo (isset($proj_end_date))? esc_html($proj_end_date):\"\" ?>\u003C\u002Fspan>\n-                      \u003C\u002Fdiv>\n-                      \u003Cinput type=\"hidden\" name=\"wppm_edit_pend_date_ajax_nonce\" id=\"wppm_edit_pend_date_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_proj_end_date' ) ); ?>\">\n-                    \u003C\u002Fdiv>\n-            \u003C?php } if($wppm_deafault_time_duration_project==1){ \n-                      $wppm_proj_duration = $wppmfunction->wppm_get_duration($project->start_date,$project->end_date);\n-                      $pstatus = isset($project->status) ? $project->status :\"\";\n-                      $style = (!empty($proj_end_date) && $pstatus!=4 && $proj_end_date \u003C $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) ? \"color:#FF0000\":\"color:#2C3E50\"; ?>\n-                    \u003Cdiv class=\"row\">\n-                      \u003Cdiv class=\"col-sm-3\">\n-                        \u003Cspan class=\"wppm_project_details_label\">\u003C?php echo esc_html_e('Project Duration:','taskbuilder');?>\u003C\u002Fspan>\n-                      \u003C\u002Fdiv>\n-                      \u003Cdiv class=\"col-sm-9\">\n-                        \u003Cspan class=\"wppm_project_details\"  id=\"wppm_edit_proj_duration\" style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo (isset($wppm_proj_duration))? esc_html($wppm_proj_duration): \"\" ?>\u003C\u002Fspan>\n-                      \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv> \u003C?php\n-            }?>\n-            \u003Cdiv class=\"row\">\n-              \u003Cdiv class=\"col-sm-3\">\n-                \u003Cspan class=\"wppm_project_details_label\">\u003C?php echo esc_html_e('Project Category:','taskbuilder');?>\u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-              \u003Cdiv class=\"col-sm-9\">\n-                \u003Cspan class=\"wppm_project_details\">\u003C?php echo (isset($project_category->name))? esc_html($project_category->name):\"\" ?>\u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-            \u003Cdiv class=\"row\">\n-              \u003Cdiv class=\"col-sm-3\">\n-                \u003Cspan class=\"wppm_project_details_label\">\u003C?php echo esc_html_e('Description:','taskbuilder');?>\u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-              \u003C?php\n-              $allowedtags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(),'target'=> array(), 'rel'=>array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\n-              ?>\n-              \u003Cdiv class=\"col-sm-9 wppm_project_description\">\n-                \u003Cspan>\u003C?php  echo (!empty($project_description))?  wp_kses(wpautop($project_description),$allowedtags):\"\" ?>\u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_proj_discussion_container\" style=\"\u003C?php echo ($wppm_proj_hide_comment_section==0 || $current_user_role==3) ? 'display:none;' : 'display:block;' ?>\">\n-            \u003Cdiv class=\"row\">\n-              \u003Cdiv class=\"col-sm-12\" style=\"margin-top:5px;\">\n-                \u003Cspan class=\"wppm_proj_discussion\">\u003C?php echo esc_html_e('Comment','taskbuilder')?>\u003C\u002Fspan>\u003Cbr>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-            \u003Cdiv class=\"row\">\n-              \u003Cdiv class=\"col-sm-12\">\n-                \u003Ctextarea id=\"wppm_proj_comment\" placeholder=\"\u003C?php echo esc_attr__('Write a comment...','taskbuilder');?>\" onclick=\"wppm_add_proj_comment()\" name=\"wppm_proj_comment\">\u003C\u002Ftextarea>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-            \u003Cdiv class=\"row\" id=\"wppm_proj_comment_btn\">\n-              \u003Cdiv class=\"col-sm-6\">\n-                \u003Cspan id=\"wppm_proj_attach_file\" onclick=\"wppm_upload_proj_comment_file()\">\u003C?php echo esc_html_e('Attach Files','taskbuilder')?>\u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-              \u003Cdiv class=\"col-sm-6\">\n-                \u003Cbutton type=\"button\" id=\"wppm_individual_cancel_proj_comment_btn\" onclick=\"wppm_cancel_proj_comment();\" class=\"wppm-btn-cancel\">\n-                  \u003C?php echo esc_html_e('Cancel','taskbuilder')?> \n-                \u003C\u002Fbutton>\n-                \u003Cbutton type=\"button\" id=\"wppm_individual_submit_proj_comment_btn\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['comment-send-btn-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['comment-send-btn-color'])?>!important;\" onclick=\"wppm_submit_proj_comment(\u003C?php echo esc_attr($id); ?>);\" class=\"wppm-btn\">\n-                  \u003C?php echo esc_html_e('SEND','taskbuilder')?> \n-                \u003C\u002Fbutton>\n-              \u003C\u002Fdiv>\n-              \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_submit_proj_comment' ) ); ?>\">\n-            \u003C\u002Fdiv>\n-            \u003Cdiv class=\"row\">\n-              \u003Cdiv class=\"wppm_proj_attachment_container col-sm-12\" style=\"display:none;\">\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"wppm_thread_container\"  style=\"\u003C?php echo ($wppm_proj_hide_comment_section==0 || $current_user_role==3) ? 'display:none;' : 'display:block;' ?>\">\n-        \u003C?php \n-          if(!empty($project_comment)){\n-            foreach($project_comment as $comment){\n-              $proj_comment_meta = $wpdb->get_row( \"SELECT * FROM {$wpdb->prefix}wppm_project_comment_meta where proj_id='\".esc_sql($id).\"' AND comment_id='\".esc_sql($comment->id).\"'\");\n-              $user = get_userdata( $comment->created_by );\n-              $comment_body = !empty($comment->body) ? wp_kses_post(wpautop($comment->body)) : '';\n-              $date = wp_date(\"Y-m-d H:i:s\" ,strtotime($comment->create_time));\n-              $thread_date = wp_date(\"d F Y, h:i:s A\" ,strtotime($date));\n-              $attachment_ids = isset($comment->attachment_ids)? $comment->attachment_ids : '';\n-              if($attachment_ids!=\"\"){\n-                $attachments = explode(\",\",$attachment_ids);\n-              } else {\n-                $attachments = array();\n-              }\n-              ?>\n-              \u003Cdiv class=\"wppm_proj_thread\">\n-                \u003Cdiv class=\"wppm_thread_avatar\">\n-                  \u003C?php echo (get_avatar($comment->created_by, 40));?>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"wppm_thread_body\">\n-                  \u003Cdiv class=\"wppm_thread_user_name\">\n-                    \u003Cstrong style=\"color:\u003C?php echo esc_attr($appearance_settings['comment-primary-color']);?>\">\u003C?php echo esc_html($user->display_name) ?>\u003C\u002Fstrong> \n-                    \u003Cspan>\u003C?php if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_status')){\n-                      $comment_log_body = unserialize($comment->body);\n-                      $prev_status = $comment_log_body['prev_status'];\n-                      $new_status = $comment_log_body['new_status'];\n-                      if(isset($prev_status)){\n-                        $prev_status = absint($prev_status);\n-                        $project_prev_status = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id = %d\",$prev_status));\n-                      }\n-                      if(isset($new_status)){\n-                        $new_status = absint($new_status);\n-                        $project_new_status = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id= %d\",$new_status));\n-                      }\n-                      echo esc_html( sprintf(__( 'Changed status from %1$s to %2$s', 'taskbuilder' ),$project_prev_status->name,$project_new_status->name));\n-                    }\n-                    if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_creator')){\n-                      $comment_log_body = unserialize($comment->body);\n-                      $prev_user = $comment_log_body['prev_user'];\n-                      $new_user = $comment_log_body['new_user'];\n-                      $prev_user_data = get_userdata($prev_user);\n-                      $new_user_data = get_userdata($new_user);\n-                      echo sprintf( esc_html__( 'Changed creator from %1$s to %2$s', 'taskbuilder' ), esc_html( $prev_user_data->display_name ), esc_html( $new_user_data->display_name ));\n-                      }\n-                      if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_assign_user')){\n-                            esc_html_e(\"Changed the Assignee\",\"taskbuilder\");\n-                      }\n-                      if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_cat')){\n-                        $comment_log_body = unserialize($comment->body);\n-                        $prev_cat = $comment_log_body['prev_cat'];\n-                        $new_cat = $comment_log_body['new_cat'];\n-                        if(!empty($prev_cat)){\n-                          $prev_cat = absint($prev_cat);\n-                          $project_prev_cat = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories where id= %d\",$prev_cat));\n-                        }\n-                        if(!empty($new_cat)){\n-                          $new_cat = absint($new_cat);\n-                          $project_new_cat = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories where id=%d\",$new_cat));\n-                        }\n-                        $proj_prev_cat_name = !empty($project_prev_cat) ? $project_prev_cat->name: \"None\";\n-                        $proj_new_cat_name = !empty($project_new_cat) ? $project_new_cat->name: \"None\";\n-                        echo sprintf( esc_html__( 'Changed category from %1$s to %2$s', 'taskbuilder' ), esc_html( $proj_prev_cat_name ), esc_html( $proj_new_cat_name ));\n-                      }\n-                    ?>\u003C\u002Fspan>\n-                    \u003Csmall class=\"wppm_comment_date\" style=\"color:\u003C?php echo esc_attr($appearance_settings['comment-date-color']);?>\">\u003Ci>\u003C?php echo esc_html($thread_date) ?>\u003C\u002Fi>\u003C\u002Fsmall>\n-                    \u003Cdiv class=\"wppm_thread_action\">\n-                      \u003C?php if(( (($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$id,$comment->id))) && ((empty($proj_comment_meta->comment_type))|| (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='comment')))){ ?>\n-                        \u003Cspan title=\"Edit this thread\" onclick=\"wppm_edit_proj_thread(\u003C?php echo esc_attr($comment->id)?>,\u003C?php echo esc_attr($id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\n-                        \u003Cspan title=\"Delete this thread\" onclick=\"wppm_delete_proj_thread(\u003C?php echo esc_attr($comment->id) ?>,\u003C?php echo esc_attr($id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\n-                      \u003C?php } ?>\n-                    \u003C\u002Fdiv>\n-                  \u003C\u002Fdiv>\n-                  \u003Cdiv class=\"wppm_thread_messege\" style=\"color:\u003C?php echo esc_attr($appearance_settings['comment-secondary-color']);?>\">\n-                    \u003C?php \n-                    $allowedtags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'target'=> array(), 'rel'=>array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\n-                    if(!empty($comment_body) && ((empty($proj_comment_meta->comment_type)) || (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='comment') || $proj_comment_meta->comment_type=='delete_proj_comment')){\n-                      echo wp_kses(wpautop($comment_body),$allowedtags) ;\n-                    } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_status')){ ?>\n-                      \u003Cspan class=\"wppm_admin_label\" style=\"margin-right: 10px; background-color:\u003C?php echo isset($project_prev_status->bg_color) ? esc_attr($project_prev_status->bg_color):\"\"; ?>;color:\u003C?php echo isset($project_prev_status->color) ? esc_attr($project_prev_status->color): \"\" ?>;\">\u003C?php echo isset($project_prev_status->name) ? esc_attr($project_prev_status->name) : \"\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan class=\"wppm_admin_label\" style=\"margin-left:10px; background-color:\u003C?php echo isset($project_new_status->bg_color) ? esc_attr($project_new_status->bg_color):\"\"; ?>;color:\u003C?php echo isset($project_new_status->color) ? esc_attr($project_new_status->color): \"\" ?>;\">\u003C?php echo isset($project_new_status->name) ? esc_attr($project_new_status->name) : \"\" ?>\u003C\u002Fspan>\u003C?php\n-                    } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_creator')) { ?>\n-                      \u003Cspan style=\"margin-right: 10px;\">\u003C?php echo isset($prev_user_data->display_name) ? esc_attr($prev_user_data->display_name) : \"\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan style=\"margin-left:10px;\">\u003C?php echo isset($new_user_data->display_name) ? esc_attr($new_user_data->display_name) : \"\" ?>\u003C\u002Fspan>\u003C?php\n-                    } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_assign_user')) { \n-                      $comment_log_body = unserialize($comment->body);\n-                      $prev_assign_user = $comment_log_body['prev_assign_user'];\n-                      $new_assign_user = $comment_log_body['new_assign_user'];\n-                      $prev_assign_user_array = array();\n-                      $new_assign_user_array = array();\n-                      if(!empty($prev_assign_user)){\n-                        $prev_assign_user_array = explode(\",\",$prev_assign_user);\n-                      }\n-                      if(!empty($new_assign_user)){\n-                        $new_assign_user_array = explode(\",\",$new_assign_user);\n-                      }\n-                      $assign_user_name = array();\n-                      $assign_user_name_str = \"\";\n-                      if(!empty($prev_assign_user_array)){\n-                        foreach($prev_assign_user_array as $val){\n-                          $assign_user = get_userdata($val);\n-                          $assign_user_name[] = $assign_user->display_name;\n-                        }\n-                        $assign_user_name_str = implode(\",\",$assign_user_name);\n-                      }\n-                      $new_assign_user_name = array();\n-                      $new_assign_user_name_str = \"\";\n-                      if(!empty($new_assign_user_array)){\n-                        foreach($new_assign_user_array as $val){\n-                          $new_assign_user = get_userdata($val);\n-                          $new_assign_user_name[] = $new_assign_user->display_name;\n-                        }\n-                        $new_assign_user_name_str = implode(\",\",$new_assign_user_name);\n-                      }\n-                      ?>\n-                      \u003Cspan style=\"margin-right: 10px;\">\u003C?php echo !empty($assign_user_name) ? esc_attr( $assign_user_name_str) : \" None\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan style=\"margin-left:10px;\">\u003C?php echo !empty($new_assign_user_name_str) ? esc_attr($new_assign_user_name_str) : \"None\" ?>\u003C\u002Fspan>\u003C?php\n-                    }elseif(isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_cat'){ ?>\n-                      \u003Cspan style=\"margin-right: 10px;\">\u003C?php echo !empty($project_prev_cat->name) ? esc_attr($project_prev_cat->name) : \" None\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan style=\"margin-left:10px;\">\u003C?php echo !empty($project_new_cat->name) ? esc_attr($project_new_cat->name) : \"None\" ?>\u003C\u002Fspan>\u003C?php\n-                    } ?>\n-\n-                  \u003C\u002Fdiv>\n-                  \u003C?php \n-                  if(!empty($attachments) && !(isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='delete_proj_comment')):?> \u003Cbr>\n-                    \u003Cstrong class=\"wppm_attachment_title\">\u003C?php echo esc_html_e('Attachments','taskbuilder');?>:\u003C\u002Fstrong>\u003Cbr>\n-                    \u003Ctable class=\"wppm_attachment_tbl\">\n-                      \u003Ctbody>\n-                      \u003C?php\n-                      if(!empty($attachments)){\n-                        foreach( $attachments as $attachment ):\n-                          $download_url = site_url('\u002F').'?wppm_attachment='.$attachment.'&pid='.$id.'&pac='.$auth_id;\n-                          $attachment = absint($attachment);\n-                          $attach = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments where id=%d\",$attachment));\n-                          $findStr = \".txt\";\n-                          if(!empty( $attach)){\n-                            $attachment_name = preg_replace('\u002F' . $findStr . '\u002F', \"\", $attach->name, 1);\n-                            $attachment_name = sanitize_file_name($attachment_name);\n-                          }\n-                          if((!empty($attachment_name))){\n-                            ?>\n-                            \u003Ctr class=\"wppm_attachment_tr\">\n-                              \u003Ctd>\n-                                \u003Ca class=\"wppm_attachment_link\" href=\"\u003C?php echo esc_url($download_url) ?>\" target=\"_blank\">\n-                                \u003Cspan class=\"wppm_attachment_file_name\" style=\"padding: 7px;\">\u003C?php echo isset($attach->file_name) ? esc_html($attach->file_name):\"\";?>\u003C\u002Fspan>\u003C\u002Fa>\n-                                \u003C?php if((($comment->created_by == $current_user->ID) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$id,$comment->id)))){ ?>\n-                                  \u003Cspan class=\"wppm_thread_action_btn\" onclick=\"wppm_proj_thread_attachment_remove(this,\u003C?php echo isset($attach->id)? esc_attr($attach->id):''; ?>,\u003C?php echo isset($comment->id)? esc_attr($comment->id):''; ?>,\u003C?php echo isset($comment->proj_id) ? esc_attr($comment->proj_id):'';?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcancel.svg'); ?>\" alt=\"cancel\">\u003C\u002Fspan>\n-                                \u003C?php } ?>\n-                              \u003C\u002Ftd>\n-                            \u003C\u002Ftr>\n-                          \u003C?php }\n-                        endforeach;\n-                      } ?>\n-                      \u003C\u002Ftbody>\n-                    \u003C\u002Ftable>\n-                    \u003Cinput type=\"hidden\" name=\"wppm_proj_thread_attachment_remove_ajax_nonce\" id=\"wppm_proj_thread_attachment_remove\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_remove_proj_thread_attachment' ) ); ?>\">\n-                  \u003C?php do_action('wppm_after_project_comment_attachment',$id,$comment->id);?>\n-                  \u003C?php endif;?>\n-                \u003C\u002Fdiv>\n-              \u003C\u002Fdiv>\n-          \u003C?php } \n-          } ?>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv class=\"wppm_individual_project_widget col-sm-4 wppm_sidebar col-md-3\">\n-        \u003Cdiv class=\"row wppm_widget\" id=\"wppm_project_status_widget\">\n-            \u003Cdiv class=\"wppm-widget-header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>\"> \n-              \u003Ch4 class=\"widget_header\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>\">\u003C?php echo esc_html_e('Status','taskbuilder')?>\u003C\u002Fh4>\n-                \u003C?php $style = ($wppmfunction->has_project_permission('change_project_status',$id) || $current_user->has_cap('manage_options') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') ||  $wppm_current_user_capability == 'wppm_admin')? \"display:flex\":\"display:none\"; ?>\n-                \u003Cspan class=\"wppm_edit_project_details_widget\" style=\"\u003C?php echo esc_attr($style) ?>\" onclick=\"wppm_edit_project_status(\u003C?php echo esc_attr($id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\n-            \u003C\u002Fdiv>\n-            \u003Chr class=\"widget_divider\">\n-            \u003Cdiv class=\"wppm-widget-body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>\">\n-              \u003Cdiv class=\"wppm_sidebar_labels\">\u003Cspan class=\"wppm_label_info\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-label-color'])?>\">\u003C?php echo esc_html_e('Status','taskbuilder')?>: \u003Cspan class=\"wppm_admin_label\" style=\"background-color:\u003C?php echo isset($project_status->bg_color) ? esc_attr($project_status->bg_color):\"\"; ?>;color:\u003C?php echo isset($project_status->color) ? esc_attr($project_status->color): \"\" ?>;\">\u003C?php echo isset($project_status->name) ? esc_attr($project_status->name) : \"\" ?> \u003C\u002Fspan>\u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-          \u003C\u002Fdiv>\n-        \u003Cdiv class=\"row wppm_widget\" id=\"wppm_project_raisedby_widget\">\n-          \u003Cdiv class=\"wppm-widget-header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>\">\n-            \u003Ch4 class=\"widget_header\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>\">\u003C?php echo esc_html_e('Project Creator','taskbuilder')?>\u003C\u002Fspan>\u003C\u002Fh4>\n-            \u003C?php if ($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'|| ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager')) { ?>\n-                    \u003Cspan class=\"wppm_edit_project_details_widget\" onclick=\"wppm_edit_project_creator(\u003C?php echo esc_attr($id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\n-            \u003C?php } ?>\n-          \u003C\u002Fdiv>\n-          \u003Chr class=\"widget_divider\"> \u003C?php\n-          if(isset($project->created_by)){\n-            $user_info = get_userdata($project->created_by);\n-          }else{\n-            $user_info = \"\";\n-          }\n-          ?>\n-          \u003Cdiv class=\"wppm-widget-body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>\">\n-            \u003Cdiv id=\"wppm_project_creator\">\n-              \u003Cdiv style=\"padding:2px 0;\">\n-                  \u003Cspan class=\"wppm_project_user_avatar\">\u003C?php echo isset($project->created_by)? (get_avatar($project->created_by, 25, \"mysteryman\")):\"\"; ?>\u003C\u002Fspan>\n-                  \u003Cspan class=\"wppm_project_user_names\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-text-color'])?>\">\u003C?php echo (!empty($user_info)) ? esc_html($user_info->display_name) : \"\";?>\u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"row wppm_widget\" id=\"wppm_project_users_widget_container\">\n-          \u003Cdiv class=\"wppm-widget-header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>\">\n-            \u003Ch4 class=\"widget_header\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>\">\u003C?php echo esc_html_e('Users','taskbuilder')?>\u003C\u002Fh4>\n-            \u003C?php if ($wppmfunction->has_project_permission('assign_project_users',$id ) || $current_user->has_cap('manage_options') ||  ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || $wppm_current_user_capability == 'wppm_admin') { ?>\n-                      \u003Cspan class=\"wppm_edit_project_details_widget\" onclick=\"wppm_get_users(\u003C?php echo esc_attr($id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\n-            \u003C?php } ?>\n-          \u003C\u002Fdiv>\n-          \u003Chr class=\"widget_divider\">\n-          \u003Cdiv class=\"wppm-widget-body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>\">\n-            \u003Cdiv id=\"wppm_project_users\">\n-              \u003C?php \n-              if(!(empty(array_filter($users)))){\n-                foreach($users as $user) { \n-                  $user_data = get_userdata($user);\n-                  $user = absint($user);\n-                  $project_user = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$id,$user));\n-                  ?>\n-                  \u003Cdiv style=\"padding:2px 0;\">\n-                    \u003Cspan class=\"wppm_project_user_avatar\">\u003C?php echo (get_avatar($user, 25, \"mysteryman\")); ?>\u003C\u002Fspan>\n-                    \u003Cspan class=\"wppm_project_user_names\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>\">\u003C?php echo esc_html($user_data->display_name); ?>\u003C\u002Fspan>\n-                    \u003C?php \n-                    if(!empty($wppm_users_role)){ \n-                      foreach($wppm_users_role as $key=>$role){\n-                        if(!empty($role)){\n-                          foreach($role as $k=>$val){\n-                            if( !empty($project_user) && $key == $project_user->role_id){ ?>\n-                              \u003Cspan class=\"wppm_project_user_role\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-text-color'])?>\">(\u003C?php echo esc_html($role['label']); ?>)\u003C\u002Fspan>\u003C?php \n-                            }\n-                          }\n-                        }\n-                      }\n-                    }\n-                    ?>\n-                  \u003C\u002Fdiv>\n-                \u003C?php \n-                }\n-              } else {\n-                ?>\u003Cspan class=\"wppm_project_users_not_assign_label\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-text-color'])?>\"> \u003C?php echo esc_html_e('None','taskbuilder'); ?>\u003C\u002Fspan>\u003C?php\n-              }\n-              ?>\n-            \u003C\u002Fdiv>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003C?php do_action('wppm_after_project_widget',$project->id);?>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\n-        \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\">\u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\n-        \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\">\u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-      \u003C\u002Fdiv>\n-      \u003Cinput type=\"hidden\" id=\"wppm_proj_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_upload_proj_attach_file'))?>\">\n-      \u003Cinput type=\"file\" id=\"wppm_proj_attachment_upload\" class=\"hidden\" onchange=\"\">\n-  \u003C\u002Fdiv>\n-\u003C\u002Fform>\n-\u003Cstyle>\n-  .wppm_comment_date i:hover{\n-    color: \u003C?php echo esc_attr($appearance_settings['comment-date-hover-color'])?>;\n-  }\n-  #wppm_open_project .wppm-add-new-btn:hover{\n-    background-color: \u003C?php echo esc_attr($appearance_settings['menu-button-hover-color'])?>!important;\n-  }\n-\u003C\u002Fstyle>\n-\u003Cscript>\n-  jQuery( document ).ready( function( jQuery ) { \u003C?php\n-    if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_details',$id) || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || $wppm_current_user_capability == 'wppm_admin')) { ?>\n-      jQuery(\"#wppm_edit_pstart_date\").flatpickr({\n-        enableTime: true,\n-        dateFormat: \"Y-m-d H:i\",\n-        onChange: function(selectedDates, dateStr, instance) {\n-          var data = {\n-            action: 'wppm_set_change_proj_start_date',\n-            proj_id:\u003C?php echo esc_attr($project->id);?>,\n-            date:dateStr,\n-            _ajax_nonce:jQuery('#wppm_edit_pstart_date_ajax_nonce').val()\n-          };\n-          jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-            instance.close();\n-            wppm_open_project(\u003C?php echo esc_attr($project->id);?>);\n-          }); \n-        },\n-      });\n-      jQuery(\"#wppm_edit_pend_date\").flatpickr({\n-        enableTime: true,\n-        dateFormat: \"Y-m-d H:i\",\n-        onChange: function(selectedDates, dateStr, instance) {\n-          var data = {\n-            action: 'wppm_set_change_proj_end_date',\n-            proj_id:\u003C?php echo esc_attr($project->id);?>,\n-            date:dateStr,\n-            _ajax_nonce:jQuery('#wppm_edit_pend_date_ajax_nonce').val()\n-          };\n-          jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-            instance.close();\n-            wppm_open_project(\u003C?php echo esc_attr($project->id);?>);\n-          }); \n-        },\n-      });\n-    \u003C?php } \n-    if((!empty($wppm_rich_text_editor)) && ($wppm_rich_text_editor == 1)){ \n-      $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :\"\";\n-      $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :\"\";   \n-      $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :\"\";   \n-      $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :\"\";   \n-      $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)?  ' alignleft aligncenter alignright ' :\"\";   \n-      $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :\"\"; \n-      $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :\"\";     \n-      $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :\"\";     \n-      $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :\"\"; \n-      $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :\"\";     \n-      $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :\"\"; \n-      $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :\"\"; \n-      $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :\"\"; \n-      $toolbar = trim(\"$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough\");?>\n-\n-      tinymce.remove();\n-      tinymce.init({ \n-        selector:'#wppm_proj_description',\n-        body_id: 'wppm_proj_description',\n-        directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\n-        menubar: false,\n-        statusbar: false,\n-        height : '200',\n-        plugins: [\n-            'lists link image directionality textcolor'\n-        ],\n-        image_advtab: true,\n-        toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>',        \n-        branding: false,\n-        autoresize_bottom_margin: 20,\n-        browser_spellcheck : true,\n-        relative_urls : false,\n-        remove_script_host : false,\n-        convert_urls : true,\n-        setup: function (editor) {\n-        }\n-      }); \u003C?php\n-    } \n-    if($wppm_tinymce_visibility_open_project==1){\n-      if(!empty($wppm_rich_text_editor) && ($wppm_rich_text_editor == 1)){\n-        ?> \n-        tinymce.remove();\n-        tinymce.init({ \n-          selector:'#wppm_proj_comment',\n-          body_id: 'wppm_proj_comment',\n-          directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\n-          menubar: false,\n-          statusbar: false,\n-          height : '200',\n-          width  : '100%',\n-          plugins: [\n-              'lists link image directionality paste textcolor'\n-          ],\n-          image_advtab: true,\n-          toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>',\n-          branding: false,\n-          autoresize_bottom_margin: 20,\n-          browser_spellcheck : true,\n-          relative_urls : false,\n-          remove_script_host : false,\n-          convert_urls : true,\n-          paste_as_text: true,\n-          setup: function (editor) {\n-          }\n-        });\n-      \u003C?php } ?>\n-      jQuery('#wppm_proj_comment_btn').show();\n-  \u003C?php } ?>\n-  });\n-\n-function wppm_add_proj_comment(){\n-  \u003C?php\n-  if(!empty($wppm_rich_text_editor) && ($wppm_rich_text_editor == 1)){\n-  ?> \n-  tinymce.remove();\n-  tinymce.init({ \n-    selector:'#wppm_proj_comment',\n-    body_id: 'wppm_proj_comment',\n-    directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\n-    menubar: false,\n-    statusbar: false,\n-    height : '200',\n-    width  : '100%',\n-    plugins: [\n-        'lists link image directionality paste textcolor'\n-    ],\n-    image_advtab: true,\n-    toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>',\n-    branding: false,\n-    autoresize_bottom_margin: 20,\n-    browser_spellcheck : true,\n-    relative_urls : false,\n-    remove_script_host : false,\n-    convert_urls : true,\n-    paste_as_text: true,\n-    setup: function (editor) {\n-    }\n-  });\n-  \u003C?php } else{ ?>\n-    jQuery('#wppm_proj_comment').css(\"width\", \"100%\");\n-    jQuery('#wppm_proj_comment').css(\"height\", \"160px\");\n-    jQuery('#wppm_proj_comment').css(\"color\", \"#000\");\n-  \u003C?php }?>\n-  jQuery('#wppm_proj_comment_btn').show();\n-}\n-\n-function wppm_cancel_proj_comment(){ \u003C?php\n-  if(!empty($wppm_rich_text_editor) && ($wppm_rich_text_editor == 1)){\n-  ?>\n-    tinyMCE. activeEditor. setContent('');\n-    tinymce.remove('#wppm_proj_comment');\n-    jQuery('#wppm_proj_comment_btn').hide();\n-  \u003C?php } else{ \n-    ?>\n-    jQuery('#wppm_proj_comment').css(\"width\", \"80%\");\n-    jQuery('#wppm_proj_comment').css(\"height\", \"30px\");\n-    jQuery('#wppm_proj_comment').css(\"color\", \"#000\");\n-    jQuery('#wppm_proj_comment').css(\"padding\", \"5px\");\n-    jQuery('#wppm_proj_comment').css(\" margin-bottom\", \"15px\");\n-    jQuery('#wppm_proj_comment').css(\"overflow\", \"hidden\");\n-    jQuery('#wppm_proj_comment').css(\"border\", \"1 px solid #eee\");\n-    jQuery('#wppm_proj_comment').css(\"color\", \"#eee\");\n-    jQuery('#wppm_proj_comment').css(\"margin-top\", \"10px\");\n-    jQuery('#wppm_proj_comment_btn').hide();\n-  \u003C?php }?>\n-}\n-\n-function wppm_submit_proj_comment(proj_id){\n-  var dataform = new FormData(jQuery('#wppm_open_project')[0]);\n-  dataform.append('action','wppm_submit_proj_comment');\n-  \u003C?php\n-  if(!empty($wppm_rich_text_editor) && ($wppm_rich_text_editor == 1)){ ?> \n-    var comment_body = tinyMCE.get('wppm_proj_comment').getContent().trim();\n-  \u003C?php } else{ ?>\n-    var comment_body = jQuery(\"#wppm_proj_comment\").val().trim();\n-  \u003C?php }?>\n-  dataform.append('comment_body',comment_body);\n-  dataform.append('proj_id',proj_id);\n-  jQuery('#wppm_load_individual_project_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-      wppm_open_project(proj_id);\n-  });\n-}\n-\n-function wppm_upload_proj_comment_file(){\n-    jQuery('#wppm_proj_attachment_upload').unbind('change');\n-    jQuery('#wppm_proj_attachment_upload').on('change', function() {\n-      var flag = false;\n-      var file = this.files[0];\n-      jQuery('#wppm_proj_attachment_upload').val('');\n-      var allowedExtension = ['exe', 'php','js'];\n-\t    var file_name_split = file.name.split('.');\n-\t    var file_extension = file_name_split[file_name_split.length-1];\n-      file_extension = file_extension.toLowerCase();\t\n-      if( (jQuery.inArray(file_extension,allowedExtension)  > -1)){\n-        flag = true;\n-        alert(\"\u003C?php echo esc_js(__('Attached file type not allowed!','taskbuilder'))?>\");\n-      };\n-      \u003C?php\n-      $max_upload = (int)(ini_get('upload_max_filesize')); ?>\n-      var current_filesize=file.size\u002F1000000;\n-      if(current_filesize > \u003C?php echo esc_attr($max_upload); ?>){\n-\t\t\t\tflag = true;\n-\t\t\t\talert(\"\u003C?php echo esc_js(__('File size exceed allowed limit!','taskbuilder'))?>\");\n-\t\t\t}\n-      if (!flag){\n-        var html_str = '\u003Cdiv class=\"wppm_attachment\">'+\n-                          '\u003Cdiv class=\"progress\" style=\"float: none !important; width: unset !important;\">'+\n-                              '\u003Cdiv class=\"progress-bar\" role=\"progressbar\" aria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width:0%\">'+\n-                                file.name+\n-                              '\u003C\u002Fdiv>'+\n-                              '\u003Cspan class=\"wppm_attachment_cancel\" onclick=\"wppm_attachment_cancel(this);\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcross_icon.svg'); ?>\" alt=\"delete_icon\">\u003C\u002Fspan>'+\n-                          '\u003C\u002Fdiv>'+\n-                        '\u003C\u002Fdiv>';\n-          jQuery('.wppm_proj_attachment_container').show();\n-          jQuery('.wppm_proj_attachment_container').append(html_str);\n-          var attachment = jQuery('.wppm_proj_attachment_container').find('.wppm_attachment').last();\n-          var data = new FormData();\n-            data.append('file', file);\n-            data.append('arr_name', file.name);\n-            data.append('action', 'wppm_upload_proj_attach_file');\n-            data.append('nonce', jQuery('#wppm_proj_nonce').val().trim());\n-            jQuery.ajax({\n-              type: 'post',\n-              url: wppm_admin.ajax_url,\n-              data: data,\n-              xhr: function(){\n-                var xhr = new window.XMLHttpRequest();\n-                xhr.upload.addEventListener(\"progress\", function(evt){\n-                  if (evt.lengthComputable) {\n-                    var percentComplete = Math.floor((evt.loaded \u002F evt.total) * 100);\n-                    jQuery(attachment).find('.progress-bar').css('width',percentComplete+'%');\n-                  }\n-                }, false);\n-                return xhr;\n-              },\n-              processData: false,\n-              contentType: false,\n-              success: function(response) {\n-                var return_obj=JSON.parse(response);\n-                jQuery(attachment).find('.wppm_attachment_cancel').show();\n-                if( parseInt(return_obj.id) != 0 ){\n-                  jQuery(attachment).append('\u003Cinput type=\"hidden\" class=\"wppm_proj_comment_attachment\" name=\"wppm_proj_comment_attachment[]\" value=\"'+return_obj.id+'\">');\n-                  jQuery(attachment).find('.progress-bar').addClass('progress-bar-success');\n-                }else {\n-                  jQuery(attachment).find('.progress-bar').addClass('progress-bar-danger');\n-                }\n-              }\n-            });    \n-      }\n-    });\n-    jQuery('#wppm_proj_attachment_upload').trigger('click');\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$current_user,$wppmfunction;\r\n+$wppm_project_time = get_option('wppm_project_time');\r\n+$wppm_default_project_date = get_option('wppm_default_project_date');\r\n+$wppm_public_projects_permission = get_option('wppm_public_projects_permission');\r\n+$appearance_settings = get_option(\"wppm-ap-individual-project\");\r\n+$wppm_tinymce_visibility_open_project = get_option('wppm_tinymce_visibility_open_project');\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\r\n+$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\r\n+$wppm_date_setting = get_option('wppm_date_setting');\r\n+$wppm_proj_hide_comment_section = get_option('wppm_proj_hide_comment_section');\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$wppm_deafault_time_duration_project = get_option('wppm_display_time_duration_project');\r\n+$current_date = wp_date('Y-m-d');\r\n+$id = isset($_POST) && isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : 0;\r\n+if (!isset($id)) {exit;}\r\n+$auth_id = $wppmfunction->get_project_meta($id,'project_auth_code',true);\r\n+$auth_id = sanitize_text_field($auth_id);\r\n+$project = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project where id = %d\",$id));\r\n+$orderby_sql = (sanitize_sql_orderby(\"create_time DESC\"));\r\n+\u002F\u002F url authentication.\r\n+$auth_code = isset( $_POST['auth-code'] ) ? sanitize_text_field( $_POST['auth-code'] ) : ''; \u002F\u002F phpcs:ignore\r\n+if ( ! $auth_code ) {\r\n+  $auth_code = isset( $_POST['auth_code'] ) ? sanitize_text_field( $_POST['auth_code'] ) : ''; \u002F\u002F phpcs:ignore\r\n+}\r\n+\r\n+if ( $auth_code && $auth_id == $auth_code ) {\r\n+  $url_auth = true;\r\n+}\r\n+$project_comment = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_comment where proj_id = %d ORDER BY $orderby_sql\",$id));\r\n+if(isset($project->users)){\r\n+  $users = explode(\",\",$project->users);\r\n+}else{\r\n+  $users = \"\";\r\n+}\r\n+$wppm_users_role = get_option('wppm_user_role');\r\n+$current_user_role='';\r\n+if(in_array($current_user->ID,$users)){\r\n+  $current_user_role  = $wpdb->get_var($wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$id,$current_user->ID));\r\n+}\r\n+if(isset($project->status)){\r\n+  $projstatus = absint($project->status);\r\n+  $project_status = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id = %d\",$projstatus));\r\n+}\r\n+if(isset($project->cat_id)){\r\n+  $projcat = absint($project->cat_id);\r\n+  $project_category = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories where id = %d\",$projcat));\r\n+}\r\n+if(!empty($project->description)){\r\n+  $project_description = ! empty( $project->description ) ? $project->description : '';\r\n+}\r\n+if($wppm_project_time == 1){\r\n+  $psDate = new DateTime($project->start_date);\r\n+  $peDate = new DateTime($project->end_date);\r\n+  if($project->start_date=='0000-00-00 00:00:00'){\r\n+    if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+      $proj_start_date = '0000-00-00 00:00:00';\r\n+    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+      $proj_start_date = '00-00-0000 00:00:00';\r\n+    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+      $proj_start_date = '00-00-0000 00:00:00';\r\n+    }else{\r\n+      $proj_start_date = '0000-00-00 00:00:00';\r\n+    }\r\n+  }if($project->end_date=='0000-00-00 00:00:00'){\r\n+    if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+      $proj_end_date = '0000-00-00 00:00:00';\r\n+    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+      $proj_end_date = '00-00-0000 00:00:00';\r\n+    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+      $proj_end_date = '00-00-0000 00:00:00';\r\n+    }else{\r\n+      $proj_end_date = '0000-00-00 00:00:00';\r\n+    }\r\n+  }if($project->start_date!='0000-00-00 00:00:00'){\r\n+     if(!empty($wppm_date_setting)){\r\n+      $proj_start_date = $psDate->format($wppm_date_setting);\r\n+    }else{\r\n+      $proj_start_date = isset($project->start_date)? $project->start_date:\"\";\r\n+    }\r\n+  }\r\n+  if($project->end_date!='0000-00-00 00:00:00'){\r\n+     if(!empty($wppm_date_setting)){\r\n+      $proj_end_date = $peDate->format($wppm_date_setting);\r\n+    }else{\r\n+      $proj_end_date = isset($project->end_date) ? $project->end_date: \"\" ;\r\n+    }\r\n+  }\r\n+} elseif($wppm_project_time == 0){\r\n+  $psDate = isset($project->start_date) ? new DateTime($project->start_date): \"\";\r\n+  $peDate = isset($project->end_date) ? new DateTime($project->end_date):\"\";\r\n+  $proj_start_date = !empty($psDate) ? $psDate->format( 'Y-m-d'):\"\";\r\n+  $proj_end_date =  !empty($peDate) ? $peDate->format( 'Y-m-d'):\"\";\r\n+  if($project->start_date=='0000-00-00 00:00:00'){\r\n+    if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+      $proj_start_date = '0000-00-00';\r\n+    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+      $proj_start_date = '00-00-0000';\r\n+    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+      $proj_start_date = '00-00-0000';\r\n+    }else{\r\n+      $proj_start_date = '0000-00-00';\r\n+    }\r\n+  }\r\n+  if($project->end_date=='0000-00-00 00:00:00'){\r\n+    if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+      $proj_end_date = '0000-00-00';\r\n+    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+      $proj_end_date = '00-00-0000';\r\n+    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+      $proj_end_date = '00-00-0000';\r\n+    }else{\r\n+      $proj_end_date = '0000-00-00';\r\n+    }\r\n+  }else{\r\n+    if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+      $proj_start_date = $psDate->format('Y-m-d');\r\n+      $proj_end_date = $peDate->format('Y-m-d');\r\n+    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+      $proj_start_date = $psDate->format('d-m-Y');\r\n+      $proj_end_date = $peDate->format('d-m-Y');\r\n+    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+      $proj_start_date = $psDate->format('m-d-Y');\r\n+      $proj_end_date = $peDate->format('m-d-Y');\r\n+    }else{\r\n+      $proj_start_date = !empty($psDate) ? $psDate->format( 'Y-m-d'):\"\";\r\n+      $proj_end_date =  !empty($peDate) ? $peDate->format( 'Y-m-d'):\"\";\r\n+    }\r\n+  }\r\n+}\r\n+\r\n+$project_data = $wppmfunction->get_project($id);\r\n+$project_users = explode(\",\",$project_data['users']);\r\n+ if(!empty($id)){\r\n+    $project_id = esc_sql($id);\r\n+    $public_proj_meta = $wpdb->get_var( \"SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta where project_id= '$project_id' AND meta_key='public_project'\");\r\n+}else{\r\n+    $public_proj_meta =\"\";\r\n+}\r\n+\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || in_array($current_user->ID,$project_users) || ((!in_array($current_user->ID,$project_users)) && $public_proj_meta == '1')|| ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')) || ((!empty($auth_code)) && $url_auth==true))) {\r\n+  ?>\r\n+  \u003Cdiv style=\"align-item:center;\" >\u003Ch6>\u003C?php esc_attr_e( 'Unauthorized access!', 'taskbuilder' ); ?>\u003C\u002Fh6>\u003C\u002Fdiv>\r\n+  \u003C?php\r\n+  wp_die();\r\n+}\r\n+\r\n+?>\r\n+\u003Cform id=\"wppm_open_project\" method=\"post\">\r\n+  \u003Cdiv class=\"row\">\r\n+    \u003Cdiv class=\"col-sm-12\">\r\n+      \u003Cspan class=\"wppm-heading-inline\">\u003C?php echo esc_html_e('Project','taskbuilder');?>\u003C\u002Fspan>\r\n+      \u003C?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin'){ ?>\r\n+              \u003Cspan class=\"wppm-add-new-btn btn-primary\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" id=\"wppm_add_new_project_btn\" onclick=\"wppm_add_new_project()\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id=\"wppm_add_new_project_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus_icon.svg'); ?>\" alt=\"plus_icon\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Add New','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+      \u003C?php } ?>\r\n+      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_list\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" onclick=\"wppm_get_project_list()\" >\u003Cspan style=\"margin-right:5px;\">\u003Cimg id =\"wppm_project_list_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist-symbol.svg'); ?>\" alt=\"list-symbol\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Project List','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+       \u003C!-- Dashboard Button -->\r\n+      \u003Ca class=\"wppm-add-new-btn btn-primary\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" href=\"\u003C?php echo esc_url( admin_url('admin.php?page=wppm-dashboard') ); ?>\">\r\n+        \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdashboard.svg'); ?>\" alt=\"dashboard_icon\">\r\n+        \u003C?php esc_html_e('Dashboard','taskbuilder'); ?>\r\n+      \u003C\u002Fa>\r\n+      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_tasks\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" onclick=\"wppm_get_project_tasks(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id =\"wppm_task_list_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftask_list.svg'); ?>\" alt=\"task_list\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Tasks','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_tasks_kanban_view\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>\" onclick=\"wppm_get_project_tasks_kanban_view(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id =\"wppm_task_list_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fkanban-svg.svg'); ?>\" alt=\"task_list\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Kanban View','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+      \u003C?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_project_permission('delete_project',$project->id))  || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))? \"display:inline\":\"display:none\"; ?>\r\n+      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_delete_project_btn\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;\u003C?php echo esc_attr($style) ?>\" onclick=\"wppm_delete_project(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id=\"wppm_delete_project_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdelete2.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Delete','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+      \u003C?php $visibility_style = (($current_user->ID && ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) && ($wppm_public_projects_permission==1))? \"display:inline\":\"display:none\"; ?>\r\n+      \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_project_visibility\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;\u003C?php echo esc_attr($visibility_style) ?>\" onclick=\"wppm_get_project_visibility(\u003C?php echo esc_attr($id) ?>)\">\u003Cspan style=\"margin-right:5px;\">\u003Cimg id =\"wppm_task_list_icon\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwppm_visibility.svg'); ?>\" alt=\"project_visibility\">\u003C\u002Fspan>\u003Cspan>\u003C?php echo esc_html_e('Project Visibility','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+      \u003C?php do_action('wppm_after_open_project_buttons',$project->id);?>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv id=\"wppm_load_individual_project_container\" class=\"row\">\r\n+      \u003Cdiv class=\"col-sm-8 wppm_body col-md-9\">\r\n+        \u003Cdiv class=\"row\">\r\n+          \u003Cdiv class=\"col-sm-12\" id=\"wppm_project_details_container\">\r\n+            \u003Cdiv class=\"row\">\r\n+              \u003Cdiv class=\"col-sm-12\">\r\n+                \u003Cspan class=\"wppm_project_label\"> \u003C?php echo isset($project->project_name) ? esc_html($project->project_name):\"\";\r\n+                      if (($wppmfunction->has_project_permission('change_project_details',$id)) || ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) { ?>\r\n+                        \u003Cspan id=\"wppm_individual_edit_project_subject\" onclick=\"wppm_edit_proj_details(\u003C?php echo esc_attr($id) ?>)\" class=\"btn btn-sm wppm_action_btn\" style=\"background-color:#FFFFFF !important;color:#000000 !important;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\r\n+                \u003C?php } ?>\r\n+                \u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+            \u003Cdiv class=\"row\">\r\n+              \u003Cdiv class=\"col-sm-3\">\r\n+                \u003Cspan class=\"wppm_project_details_label\">\u003C?php echo esc_html_e('Created On:','taskbuilder');?>\u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+              \u003Cdiv class=\"col-sm-9\">\u003C?php\r\n+                $pcDate = isset($project->date_created) ? new DateTime($project->date_created): \"\";\r\n+                if($wppm_project_time !=0){\r\n+                  if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                    $proj_create_date = !empty($pcDate) ? $pcDate->format('Y-m-d H:i:s'):\"\";\r\n+                  } elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                    $proj_create_date = !empty($pcDate) ? $pcDate->format('d-m-Y H:i:s'):\"\";\r\n+                  } elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                    $proj_create_date = !empty($pcDate) ? $pcDate->format('m-d-Y H:i:s'):\"\";\r\n+                  } else {\r\n+                    $proj_create_date = !empty($pcDate) ? $pcDate->format('Y-m-d H:i:s'):\"\";\r\n+                  }\r\n+                } elseif($wppm_project_time == 0){\r\n+                  if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                    $proj_create_date = !empty($pcDate) ? $pcDate->format('Y-m-d'):\"\";\r\n+                  } elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                    $proj_create_date = !empty($pcDate) ? $pcDate->format('d-m-Y'):\"\";\r\n+                  } elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                    $proj_create_date = !empty($pcDate) ? $pcDate->format('m-d-Y'):\"\";\r\n+                  } else {\r\n+                    $proj_create_date = !empty($pcDate) ? $pcDate->format('Y-m-d'):\"\";\r\n+                  }\r\n+                } ?>\r\n+                \u003Cspan class=\"wppm_project_details\">\u003C?php echo isset($proj_create_date) ? esc_html($proj_create_date):\"\" ?>\u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+            \u003C?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0) { ?>\r\n+                    \u003Cdiv class=\"row\">\r\n+                      \u003Cdiv class=\"col-sm-3\">\r\n+                        \u003Cspan class=\"wppm_project_details_label\">\u003C?php echo esc_html_e('Start Date:','taskbuilder');?>\u003C\u002Fspan>\r\n+                      \u003C\u002Fdiv>\r\n+                      \u003Cdiv class=\"col-sm-9\">\r\n+                        \u003Cspan class=\"wppm_project_details\"  id=\"wppm_edit_pstart_date\">\u003C?php echo (isset($proj_start_date))? esc_html($proj_start_date): \"\" ?>\u003C\u002Fspan>\r\n+                      \u003C\u002Fdiv>\r\n+                      \u003Cinput type=\"hidden\" name=\"wppm_edit_pstart_date_ajax_nonce\" id=\"wppm_edit_pstart_date_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_proj_start_date' ) ); ?>\">\r\n+                    \u003C\u002Fdiv>\r\n+                    \u003Cdiv class=\"row\">\r\n+                      \u003Cdiv class=\"col-sm-3\">\r\n+                      \u003Cspan class=\"wppm_project_details_label\">\u003C?php echo esc_html_e('End Date:','taskbuilder');?>\u003C\u002Fspan>\r\n+                      \u003C\u002Fdiv>\r\n+                      \u003Cdiv class=\"col-sm-9\">\r\n+                      \u003C?php \r\n+                        $pstatus = isset($project->status) ? $project->status :\"\";\r\n+                        $style = (!empty($proj_end_date) && $pstatus!=4 && $proj_end_date \u003C $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) ? \"color:#FF0000\":\"color:#2C3E50\"; ?>\r\n+                        \u003Cspan class=\"wppm_project_details\" id=\"wppm_edit_pend_date\" style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo (isset($proj_end_date))? esc_html($proj_end_date):\"\" ?>\u003C\u002Fspan>\r\n+                      \u003C\u002Fdiv>\r\n+                      \u003Cinput type=\"hidden\" name=\"wppm_edit_pend_date_ajax_nonce\" id=\"wppm_edit_pend_date_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_proj_end_date' ) ); ?>\">\r\n+                    \u003C\u002Fdiv>\r\n+            \u003C?php } if($wppm_deafault_time_duration_project==1){ \r\n+                      $wppm_proj_duration = $wppmfunction->wppm_get_duration($project->start_date,$project->end_date);\r\n+                      $pstatus = isset($project->status) ? $project->status :\"\";\r\n+                      $style = (!empty($proj_end_date) && $pstatus!=4 && $proj_end_date \u003C $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) ? \"color:#FF0000\":\"color:#2C3E50\"; ?>\r\n+                    \u003Cdiv class=\"row\">\r\n+                      \u003Cdiv class=\"col-sm-3\">\r\n+                        \u003Cspan class=\"wppm_project_details_label\">\u003C?php echo esc_html_e('Project Duration:','taskbuilder');?>\u003C\u002Fspan>\r\n+                      \u003C\u002Fdiv>\r\n+                      \u003Cdiv class=\"col-sm-9\">\r\n+                        \u003Cspan class=\"wppm_project_details\"  id=\"wppm_edit_proj_duration\" style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo (isset($wppm_proj_duration))? esc_html($wppm_proj_duration): \"\" ?>\u003C\u002Fspan>\r\n+                      \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv> \u003C?php\r\n+            }?>\r\n+            \u003Cdiv class=\"row\">\r\n+              \u003Cdiv class=\"col-sm-3\">\r\n+                \u003Cspan class=\"wppm_project_details_label\">\u003C?php echo esc_html_e('Project Category:','taskbuilder');?>\u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+              \u003Cdiv class=\"col-sm-9\">\r\n+                \u003Cspan class=\"wppm_project_details\">\u003C?php echo (isset($project_category->name))? esc_html($project_category->name):\"\" ?>\u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+            \u003Cdiv class=\"row\">\r\n+              \u003Cdiv class=\"col-sm-3\">\r\n+                \u003Cspan class=\"wppm_project_details_label\">\u003C?php echo esc_html_e('Description:','taskbuilder');?>\u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+              \u003C?php\r\n+              $allowedtags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(),'target'=> array(), 'rel'=>array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\r\n+              ?>\r\n+              \u003Cdiv class=\"col-sm-9 wppm_project_description\">\r\n+                \u003Cspan>\u003C?php  echo (!empty($project_description))?  wp_kses(wpautop($project_description),$allowedtags):\"\" ?>\u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_proj_discussion_container\" style=\"\u003C?php echo ($wppm_proj_hide_comment_section==0 || $current_user_role==3) ? 'display:none;' : 'display:block;' ?>\">\r\n+            \u003Cdiv class=\"row\">\r\n+              \u003Cdiv class=\"col-sm-12\" style=\"margin-top:5px;\">\r\n+                \u003Cspan class=\"wppm_proj_discussion\">\u003C?php echo esc_html_e('Comment','taskbuilder')?>\u003C\u002Fspan>\u003Cbr>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+            \u003Cdiv class=\"row\">\r\n+              \u003Cdiv class=\"col-sm-12\">\r\n+                \u003Ctextarea id=\"wppm_proj_comment\" placeholder=\"\u003C?php echo esc_attr__('Write a comment...','taskbuilder');?>\" onclick=\"wppm_add_proj_comment()\" name=\"wppm_proj_comment\">\u003C\u002Ftextarea>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+            \u003Cdiv class=\"row\" id=\"wppm_proj_comment_btn\">\r\n+              \u003Cdiv class=\"col-sm-6\">\r\n+                \u003Cspan id=\"wppm_proj_attach_file\" onclick=\"wppm_upload_proj_comment_file()\">\u003C?php echo esc_html_e('Attach Files','taskbuilder')?>\u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+              \u003Cdiv class=\"col-sm-6\">\r\n+                \u003Cbutton type=\"button\" id=\"wppm_individual_cancel_proj_comment_btn\" onclick=\"wppm_cancel_proj_comment();\" class=\"wppm-btn-cancel\">\r\n+                  \u003C?php echo esc_html_e('Cancel','taskbuilder')?> \r\n+                \u003C\u002Fbutton>\r\n+                \u003Cbutton type=\"button\" id=\"wppm_individual_submit_proj_comment_btn\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['comment-send-btn-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['comment-send-btn-color'])?>!important;\" onclick=\"wppm_submit_proj_comment(\u003C?php echo esc_attr($id); ?>);\" class=\"wppm-btn\">\r\n+                  \u003C?php echo esc_html_e('SEND','taskbuilder')?> \r\n+                \u003C\u002Fbutton>\r\n+              \u003C\u002Fdiv>\r\n+              \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_submit_proj_comment' ) ); ?>\">\r\n+            \u003C\u002Fdiv>\r\n+            \u003Cdiv class=\"row\">\r\n+              \u003Cdiv class=\"wppm_proj_attachment_container col-sm-12\" style=\"display:none;\">\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"wppm_thread_container\"  style=\"\u003C?php echo ($wppm_proj_hide_comment_section==0 || $current_user_role==3) ? 'display:none;' : 'display:block;' ?>\">\r\n+        \u003C?php \r\n+          if(!empty($project_comment)){\r\n+            foreach($project_comment as $comment){\r\n+              $proj_comment_meta = $wpdb->get_row( \"SELECT * FROM {$wpdb->prefix}wppm_project_comment_meta where proj_id='\".esc_sql($id).\"' AND comment_id='\".esc_sql($comment->id).\"'\");\r\n+              $user = get_userdata( $comment->created_by );\r\n+              $comment_body = !empty($comment->body) ? wp_kses_post(wpautop($comment->body)) : '';\r\n+              $date = wp_date(\"Y-m-d H:i:s\" ,strtotime($comment->create_time));\r\n+              $thread_date = wp_date(\"d F Y, h:i:s A\" ,strtotime($date));\r\n+              $attachment_ids = isset($comment->attachment_ids)? $comment->attachment_ids : '';\r\n+              if($attachment_ids!=\"\"){\r\n+                $attachments = explode(\",\",$attachment_ids);\r\n+              } else {\r\n+                $attachments = array();\r\n+              }\r\n+              ?>\r\n+              \u003Cdiv class=\"wppm_proj_thread\">\r\n+                \u003Cdiv class=\"wppm_thread_avatar\">\r\n+                  \u003C?php echo (get_avatar($comment->created_by, 40));?>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"wppm_thread_body\">\r\n+                  \u003Cdiv class=\"wppm_thread_user_name\">\r\n+                    \u003Cstrong style=\"color:\u003C?php echo esc_attr($appearance_settings['comment-primary-color']);?>\">\u003C?php echo esc_html($user->display_name) ?>\u003C\u002Fstrong> \r\n+                    \u003Cspan>\u003C?php if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_status')){\r\n+                      $comment_log_body = unserialize($comment->body);\r\n+                      $prev_status = $comment_log_body['prev_status'];\r\n+                      $new_status = $comment_log_body['new_status'];\r\n+                      if(isset($prev_status)){\r\n+                        $prev_status = absint($prev_status);\r\n+                        $project_prev_status = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id = %d\",$prev_status));\r\n+                      }\r\n+                      if(isset($new_status)){\r\n+                        $new_status = absint($new_status);\r\n+                        $project_new_status = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id= %d\",$new_status));\r\n+                      }\r\n+                      echo esc_html( sprintf(__( 'Changed status from %1$s to %2$s', 'taskbuilder' ),$project_prev_status->name,$project_new_status->name));\r\n+                    }\r\n+                    if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_creator')){\r\n+                      $comment_log_body = unserialize($comment->body);\r\n+                      $prev_user = $comment_log_body['prev_user'];\r\n+                      $new_user = $comment_log_body['new_user'];\r\n+                      $prev_user_data = get_userdata($prev_user);\r\n+                      $new_user_data = get_userdata($new_user);\r\n+                      echo sprintf( esc_html__( 'Changed creator from %1$s to %2$s', 'taskbuilder' ), esc_html( $prev_user_data->display_name ), esc_html( $new_user_data->display_name ));\r\n+                      }\r\n+                      if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_assign_user')){\r\n+                            esc_html_e(\"Changed the Assignee\",\"taskbuilder\");\r\n+                      }\r\n+                      if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_cat')){\r\n+                        $comment_log_body = unserialize($comment->body);\r\n+                        $prev_cat = $comment_log_body['prev_cat'];\r\n+                        $new_cat = $comment_log_body['new_cat'];\r\n+                        if(!empty($prev_cat)){\r\n+                          $prev_cat = absint($prev_cat);\r\n+                          $project_prev_cat = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories where id= %d\",$prev_cat));\r\n+                        }\r\n+                        if(!empty($new_cat)){\r\n+                          $new_cat = absint($new_cat);\r\n+                          $project_new_cat = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories where id=%d\",$new_cat));\r\n+                        }\r\n+                        $proj_prev_cat_name = !empty($project_prev_cat) ? $project_prev_cat->name: \"None\";\r\n+                        $proj_new_cat_name = !empty($project_new_cat) ? $project_new_cat->name: \"None\";\r\n+                        echo sprintf( esc_html__( 'Changed category from %1$s to %2$s', 'taskbuilder' ), esc_html( $proj_prev_cat_name ), esc_html( $proj_new_cat_name ));\r\n+                      }\r\n+                    ?>\u003C\u002Fspan>\r\n+                    \u003Csmall class=\"wppm_comment_date\" style=\"color:\u003C?php echo esc_attr($appearance_settings['comment-date-color']);?>\">\u003Ci>\u003C?php echo esc_html($thread_date) ?>\u003C\u002Fi>\u003C\u002Fsmall>\r\n+                    \u003Cdiv class=\"wppm_thread_action\">\r\n+                      \u003C?php if(( (($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$id,$comment->id))) && ((empty($proj_comment_meta->comment_type))|| (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='comment')))){ ?>\r\n+                        \u003Cspan title=\"Edit this thread\" onclick=\"wppm_edit_proj_thread(\u003C?php echo esc_attr($comment->id)?>,\u003C?php echo esc_attr($id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\r\n+                        \u003Cspan title=\"Delete this thread\" onclick=\"wppm_delete_proj_thread(\u003C?php echo esc_attr($comment->id) ?>,\u003C?php echo esc_attr($id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\r\n+                      \u003C?php } ?>\r\n+                    \u003C\u002Fdiv>\r\n+                  \u003C\u002Fdiv>\r\n+                  \u003Cdiv class=\"wppm_thread_messege\" style=\"color:\u003C?php echo esc_attr($appearance_settings['comment-secondary-color']);?>\">\r\n+                    \u003C?php \r\n+                    $allowedtags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'target'=> array(), 'rel'=>array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\r\n+                    if(!empty($comment_body) && ((empty($proj_comment_meta->comment_type)) || (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='comment') || $proj_comment_meta->comment_type=='delete_proj_comment')){\r\n+                      echo wp_kses(wpautop($comment_body),$allowedtags) ;\r\n+                    } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_status')){ ?>\r\n+                      \u003Cspan class=\"wppm_admin_label\" style=\"margin-right: 10px; background-color:\u003C?php echo isset($project_prev_status->bg_color) ? esc_attr($project_prev_status->bg_color):\"\"; ?>;color:\u003C?php echo isset($project_prev_status->color) ? esc_attr($project_prev_status->color): \"\" ?>;\">\u003C?php echo isset($project_prev_status->name) ? esc_attr($project_prev_status->name) : \"\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan class=\"wppm_admin_label\" style=\"margin-left:10px; background-color:\u003C?php echo isset($project_new_status->bg_color) ? esc_attr($project_new_status->bg_color):\"\"; ?>;color:\u003C?php echo isset($project_new_status->color) ? esc_attr($project_new_status->color): \"\" ?>;\">\u003C?php echo isset($project_new_status->name) ? esc_attr($project_new_status->name) : \"\" ?>\u003C\u002Fspan>\u003C?php\r\n+                    } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_creator')) { ?>\r\n+                      \u003Cspan style=\"margin-right: 10px;\">\u003C?php echo isset($prev_user_data->display_name) ? esc_attr($prev_user_data->display_name) : \"\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan style=\"margin-left:10px;\">\u003C?php echo isset($new_user_data->display_name) ? esc_attr($new_user_data->display_name) : \"\" ?>\u003C\u002Fspan>\u003C?php\r\n+                    } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_assign_user')) { \r\n+                      $comment_log_body = unserialize($comment->body);\r\n+                      $prev_assign_user = $comment_log_body['prev_assign_user'];\r\n+                      $new_assign_user = $comment_log_body['new_assign_user'];\r\n+                      $prev_assign_user_array = array();\r\n+                      $new_assign_user_array = array();\r\n+                      if(!empty($prev_assign_user)){\r\n+                        $prev_assign_user_array = explode(\",\",$prev_assign_user);\r\n+                      }\r\n+                      if(!empty($new_assign_user)){\r\n+                        $new_assign_user_array = explode(\",\",$new_assign_user);\r\n+                      }\r\n+                      $assign_user_name = array();\r\n+                      $assign_user_name_str = \"\";\r\n+                      if(!empty($prev_assign_user_array)){\r\n+                        foreach($prev_assign_user_array as $val){\r\n+                          $assign_user = get_userdata($val);\r\n+                          $assign_user_name[] = $assign_user->display_name;\r\n+                        }\r\n+                        $assign_user_name_str = implode(\",\",$assign_user_name);\r\n+                      }\r\n+                      $new_assign_user_name = array();\r\n+                      $new_assign_user_name_str = \"\";\r\n+                      if(!empty($new_assign_user_array)){\r\n+                        foreach($new_assign_user_array as $val){\r\n+                          $new_assign_user = get_userdata($val);\r\n+                          $new_assign_user_name[] = $new_assign_user->display_name;\r\n+                        }\r\n+                        $new_assign_user_name_str = implode(\",\",$new_assign_user_name);\r\n+                      }\r\n+                      ?>\r\n+                      \u003Cspan style=\"margin-right: 10px;\">\u003C?php echo !empty($assign_user_name) ? esc_attr( $assign_user_name_str) : \" None\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan style=\"margin-left:10px;\">\u003C?php echo !empty($new_assign_user_name_str) ? esc_attr($new_assign_user_name_str) : \"None\" ?>\u003C\u002Fspan>\u003C?php\r\n+                    }elseif(isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_cat'){ ?>\r\n+                      \u003Cspan style=\"margin-right: 10px;\">\u003C?php echo !empty($project_prev_cat->name) ? esc_attr($project_prev_cat->name) : \" None\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan style=\"margin-left:10px;\">\u003C?php echo !empty($project_new_cat->name) ? esc_attr($project_new_cat->name) : \"None\" ?>\u003C\u002Fspan>\u003C?php\r\n+                    } ?>\r\n+\r\n+                  \u003C\u002Fdiv>\r\n+                  \u003C?php \r\n+                  if(!empty($attachments) && !(isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='delete_proj_comment')):?> \u003Cbr>\r\n+                    \u003Cstrong class=\"wppm_attachment_title\">\u003C?php echo esc_html_e('Attachments','taskbuilder');?>:\u003C\u002Fstrong>\u003Cbr>\r\n+                    \u003Ctable class=\"wppm_attachment_tbl\">\r\n+                      \u003Ctbody>\r\n+                      \u003C?php\r\n+                      if(!empty($attachments)){\r\n+                        foreach( $attachments as $attachment ):\r\n+                          $download_url = site_url('\u002F').'?wppm_attachment='.$attachment.'&pid='.$id.'&pac='.$auth_id;\r\n+                          $attachment = absint($attachment);\r\n+                          $attach = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments where id=%d\",$attachment));\r\n+                          $findStr = \".txt\";\r\n+                          if(!empty( $attach)){\r\n+                            $attachment_name = preg_replace('\u002F' . $findStr . '\u002F', \"\", $attach->name, 1);\r\n+                            $attachment_name = sanitize_file_name($attachment_name);\r\n+                          }\r\n+                          if((!empty($attachment_name))){\r\n+                            ?>\r\n+                            \u003Ctr class=\"wppm_attachment_tr\">\r\n+                              \u003Ctd>\r\n+                                \u003Ca class=\"wppm_attachment_link\" href=\"\u003C?php echo esc_url($download_url) ?>\" target=\"_blank\">\r\n+                                \u003Cspan class=\"wppm_attachment_file_name\" style=\"padding: 7px;\">\u003C?php echo isset($attach->file_name) ? esc_html($attach->file_name):\"\";?>\u003C\u002Fspan>\u003C\u002Fa>\r\n+                                \u003C?php if((($comment->created_by == $current_user->ID) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$id,$comment->id)))){ ?>\r\n+                                  \u003Cspan class=\"wppm_thread_action_btn\" onclick=\"wppm_proj_thread_attachment_remove(this,\u003C?php echo isset($attach->id)? esc_attr($attach->id):''; ?>,\u003C?php echo isset($comment->id)? esc_attr($comment->id):''; ?>,\u003C?php echo isset($comment->proj_id) ? esc_attr($comment->proj_id):'';?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcancel.svg'); ?>\" alt=\"cancel\">\u003C\u002Fspan>\r\n+                                \u003C?php } ?>\r\n+                              \u003C\u002Ftd>\r\n+                            \u003C\u002Ftr>\r\n+                          \u003C?php }\r\n+                        endforeach;\r\n+                      } ?>\r\n+                      \u003C\u002Ftbody>\r\n+                    \u003C\u002Ftable>\r\n+                    \u003Cinput type=\"hidden\" name=\"wppm_proj_thread_attachment_remove_ajax_nonce\" id=\"wppm_proj_thread_attachment_remove\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_remove_proj_thread_attachment' ) ); ?>\">\r\n+                  \u003C?php do_action('wppm_after_project_comment_attachment',$id,$comment->id);?>\r\n+                  \u003C?php endif;?>\r\n+                \u003C\u002Fdiv>\r\n+              \u003C\u002Fdiv>\r\n+          \u003C?php } \r\n+          } ?>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv class=\"wppm_individual_project_widget col-sm-4 wppm_sidebar col-md-3\">\r\n+        \u003Cdiv class=\"row wppm_widget\" id=\"wppm_project_status_widget\">\r\n+            \u003Cdiv class=\"wppm-widget-header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>\"> \r\n+              \u003Ch4 class=\"widget_header\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>\">\u003C?php echo esc_html_e('Status','taskbuilder')?>\u003C\u002Fh4>\r\n+                \u003C?php $style = ($wppmfunction->has_project_permission('change_project_status',$id) || $current_user->has_cap('manage_options') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') ||  $wppm_current_user_capability == 'wppm_admin')? \"display:flex\":\"display:none\"; ?>\r\n+                \u003Cspan class=\"wppm_edit_project_details_widget\" style=\"\u003C?php echo esc_attr($style) ?>\" onclick=\"wppm_edit_project_status(\u003C?php echo esc_attr($id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\r\n+            \u003C\u002Fdiv>\r\n+            \u003Chr class=\"widget_divider\">\r\n+            \u003Cdiv class=\"wppm-widget-body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>\">\r\n+              \u003Cdiv class=\"wppm_sidebar_labels\">\u003Cspan class=\"wppm_label_info\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-label-color'])?>\">\u003C?php echo esc_html_e('Status','taskbuilder')?>: \u003Cspan class=\"wppm_admin_label\" style=\"background-color:\u003C?php echo isset($project_status->bg_color) ? esc_attr($project_status->bg_color):\"\"; ?>;color:\u003C?php echo isset($project_status->color) ? esc_attr($project_status->color): \"\" ?>;\">\u003C?php echo isset($project_status->name) ? esc_attr($project_status->name) : \"\" ?> \u003C\u002Fspan>\u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+          \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"row wppm_widget\" id=\"wppm_project_raisedby_widget\">\r\n+          \u003Cdiv class=\"wppm-widget-header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>\">\r\n+            \u003Ch4 class=\"widget_header\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>\">\u003C?php echo esc_html_e('Project Creator','taskbuilder')?>\u003C\u002Fspan>\u003C\u002Fh4>\r\n+            \u003C?php if ($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'|| ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager')) { ?>\r\n+                    \u003Cspan class=\"wppm_edit_project_details_widget\" onclick=\"wppm_edit_project_creator(\u003C?php echo esc_attr($id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\r\n+            \u003C?php } ?>\r\n+          \u003C\u002Fdiv>\r\n+          \u003Chr class=\"widget_divider\"> \u003C?php\r\n+          if(isset($project->created_by)){\r\n+            $user_info = get_userdata($project->created_by);\r\n+          }else{\r\n+            $user_info = \"\";\r\n+          }\r\n+          ?>\r\n+          \u003Cdiv class=\"wppm-widget-body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>\">\r\n+            \u003Cdiv id=\"wppm_project_creator\">\r\n+              \u003Cdiv style=\"padding:2px 0;\">\r\n+                  \u003Cspan class=\"wppm_project_user_avatar\">\u003C?php echo isset($project->created_by)? (get_avatar($project->created_by, 25, \"mysteryman\")):\"\"; ?>\u003C\u002Fspan>\r\n+                  \u003Cspan class=\"wppm_project_user_names\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-text-color'])?>\">\u003C?php echo (!empty($user_info)) ? esc_html($user_info->display_name) : \"\";?>\u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"row wppm_widget\" id=\"wppm_project_users_widget_container\">\r\n+          \u003Cdiv class=\"wppm-widget-header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>\">\r\n+            \u003Ch4 class=\"widget_header\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>\">\u003C?php echo esc_html_e('Users','taskbuilder')?>\u003C\u002Fh4>\r\n+            \u003C?php if ($wppmfunction->has_project_permission('assign_project_users',$id ) || $current_user->has_cap('manage_options') ||  ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || $wppm_current_user_capability == 'wppm_admin') { ?>\r\n+                      \u003Cspan class=\"wppm_edit_project_details_widget\" onclick=\"wppm_get_users(\u003C?php echo esc_attr($id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\r\n+            \u003C?php } ?>\r\n+          \u003C\u002Fdiv>\r\n+          \u003Chr class=\"widget_divider\">\r\n+          \u003Cdiv class=\"wppm-widget-body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>\">\r\n+            \u003Cdiv id=\"wppm_project_users\">\r\n+              \u003C?php \r\n+              if(!(empty(array_filter($users)))){\r\n+                foreach($users as $user) { \r\n+                  $user_data = get_userdata($user);\r\n+                  $user = absint($user);\r\n+                  $project_user = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$id,$user));\r\n+                  ?>\r\n+                  \u003Cdiv style=\"padding:2px 0;\">\r\n+                    \u003Cspan class=\"wppm_project_user_avatar\">\u003C?php echo (get_avatar($user, 25, \"mysteryman\")); ?>\u003C\u002Fspan>\r\n+                    \u003Cspan class=\"wppm_project_user_names\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>\">\u003C?php echo esc_html($user_data->display_name); ?>\u003C\u002Fspan>\r\n+                    \u003C?php \r\n+                    if(!empty($wppm_users_role)){ \r\n+                      foreach($wppm_users_role as $key=>$role){\r\n+                        if(!empty($role)){\r\n+                          foreach($role as $k=>$val){\r\n+                            if( !empty($project_user) && $key == $project_user->role_id){ ?>\r\n+                              \u003Cspan class=\"wppm_project_user_role\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-text-color'])?>\">(\u003C?php echo esc_html($role['label']); ?>)\u003C\u002Fspan>\u003C?php \r\n+                            }\r\n+                          }\r\n+                        }\r\n+                      }\r\n+                    }\r\n+                    ?>\r\n+                  \u003C\u002Fdiv>\r\n+                \u003C?php \r\n+                }\r\n+              } else {\r\n+                ?>\u003Cspan class=\"wppm_project_users_not_assign_label\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-text-color'])?>\"> \u003C?php echo esc_html_e('None','taskbuilder'); ?>\u003C\u002Fspan>\u003C?php\r\n+              }\r\n+              ?>\r\n+            \u003C\u002Fdiv>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003C?php do_action('wppm_after_project_widget',$project->id);?>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+        \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\">\u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+        \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\">\u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cinput type=\"hidden\" id=\"wppm_proj_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_upload_proj_attach_file'))?>\">\r\n+      \u003Cinput type=\"file\" id=\"wppm_proj_attachment_upload\" class=\"hidden\" onchange=\"\">\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fform>\r\n+\u003Cstyle>\r\n+  .wppm_comment_date i:hover{\r\n+    color: \u003C?php echo esc_attr($appearance_settings['comment-date-hover-color'])?>;\r\n+  }\r\n+  #wppm_open_project .wppm-add-new-btn:hover{\r\n+    background-color: \u003C?php echo esc_attr($appearance_settings['menu-button-hover-color'])?>!important;\r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript>\r\n+  jQuery( document ).ready( function( jQuery ) { \u003C?php\r\n+    if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_details',$id) || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || $wppm_current_user_capability == 'wppm_admin')) { ?>\r\n+      jQuery(\"#wppm_edit_pstart_date\").flatpickr({\r\n+        enableTime: true,\r\n+        dateFormat: \"Y-m-d H:i\",\r\n+        onChange: function(selectedDates, dateStr, instance) {\r\n+          var data = {\r\n+            action: 'wppm_set_change_proj_start_date',\r\n+            proj_id:\u003C?php echo esc_attr($project->id);?>,\r\n+            date:dateStr,\r\n+            _ajax_nonce:jQuery('#wppm_edit_pstart_date_ajax_nonce').val()\r\n+          };\r\n+          jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+            instance.close();\r\n+            wppm_open_project(\u003C?php echo esc_attr($project->id);?>);\r\n+          }); \r\n+        },\r\n+      });\r\n+      jQuery(\"#wppm_edit_pend_date\").flatpickr({\r\n+        enableTime: true,\r\n+        dateFormat: \"Y-m-d H:i\",\r\n+        onChange: function(selectedDates, dateStr, instance) {\r\n+          var data = {\r\n+            action: 'wppm_set_change_proj_end_date',\r\n+            proj_id:\u003C?php echo esc_attr($project->id);?>,\r\n+            date:dateStr,\r\n+            _ajax_nonce:jQuery('#wppm_edit_pend_date_ajax_nonce').val()\r\n+          };\r\n+          jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+            instance.close();\r\n+            wppm_open_project(\u003C?php echo esc_attr($project->id);?>);\r\n+          }); \r\n+        },\r\n+      });\r\n+    \u003C?php } \r\n+    if((!empty($wppm_rich_text_editor)) && ($wppm_rich_text_editor == 1)){ \r\n+      $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :\"\";\r\n+      $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :\"\";   \r\n+      $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :\"\";   \r\n+      $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :\"\";   \r\n+      $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)?  ' alignleft aligncenter alignright ' :\"\";   \r\n+      $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :\"\"; \r\n+      $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :\"\";     \r\n+      $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :\"\";     \r\n+      $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :\"\"; \r\n+      $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :\"\";     \r\n+      $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :\"\"; \r\n+      $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :\"\"; \r\n+      $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :\"\"; \r\n+      $toolbar = trim(\"$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough\");?>\r\n+\r\n+      tinymce.remove();\r\n+      tinymce.init({ \r\n+        selector:'#wppm_proj_description',\r\n+        body_id: 'wppm_proj_description',\r\n+        directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\r\n+        menubar: false,\r\n+        statusbar: false,\r\n+        height : '200',\r\n+        plugins: [\r\n+            'lists link image directionality textcolor'\r\n+        ],\r\n+        image_advtab: true,\r\n+        toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>',        \r\n+        branding: false,\r\n+        autoresize_bottom_margin: 20,\r\n+        browser_spellcheck : true,\r\n+        relative_urls : false,\r\n+        remove_script_host : false,\r\n+        convert_urls : true,\r\n+        setup: function (editor) {\r\n+        }\r\n+      }); \u003C?php\r\n+    } \r\n+    if($wppm_tinymce_visibility_open_project==1){\r\n+      if(!empty($wppm_rich_text_editor) && ($wppm_rich_text_editor == 1)){\r\n+        ?> \r\n+        tinymce.remove();\r\n+        tinymce.init({ \r\n+          selector:'#wppm_proj_comment',\r\n+          body_id: 'wppm_proj_comment',\r\n+          directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\r\n+          menubar: false,\r\n+          statusbar: false,\r\n+          height : '200',\r\n+          width  : '100%',\r\n+          plugins: [\r\n+              'lists link image directionality paste textcolor'\r\n+          ],\r\n+          image_advtab: true,\r\n+          toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>',\r\n+          branding: false,\r\n+          autoresize_bottom_margin: 20,\r\n+          browser_spellcheck : true,\r\n+          relative_urls : false,\r\n+          remove_script_host : false,\r\n+          convert_urls : true,\r\n+          paste_as_text: true,\r\n+          setup: function (editor) {\r\n+          }\r\n+        });\r\n+      \u003C?php } ?>\r\n+      jQuery('#wppm_proj_comment_btn').show();\r\n+  \u003C?php } ?>\r\n+  });\r\n+\r\n+function wppm_add_proj_comment(){\r\n+  \u003C?php\r\n+  if(!empty($wppm_rich_text_editor) && ($wppm_rich_text_editor == 1)){\r\n+  ?> \r\n+  tinymce.remove();\r\n+  tinymce.init({ \r\n+    selector:'#wppm_proj_comment',\r\n+    body_id: 'wppm_proj_comment',\r\n+    directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\r\n+    menubar: false,\r\n+    statusbar: false,\r\n+    height : '200',\r\n+    width  : '100%',\r\n+    plugins: [\r\n+        'lists link image directionality paste textcolor'\r\n+    ],\r\n+    image_advtab: true,\r\n+    toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>',\r\n+    branding: false,\r\n+    autoresize_bottom_margin: 20,\r\n+    browser_spellcheck : true,\r\n+    relative_urls : false,\r\n+    remove_script_host : false,\r\n+    convert_urls : true,\r\n+    paste_as_text: true,\r\n+    setup: function (editor) {\r\n+    }\r\n+  });\r\n+  \u003C?php } else{ ?>\r\n+    jQuery('#wppm_proj_comment').css(\"width\", \"100%\");\r\n+    jQuery('#wppm_proj_comment').css(\"height\", \"160px\");\r\n+    jQuery('#wppm_proj_comment').css(\"color\", \"#000\");\r\n+  \u003C?php }?>\r\n+  jQuery('#wppm_proj_comment_btn').show();\r\n+}\r\n+\r\n+function wppm_cancel_proj_comment(){ \u003C?php\r\n+  if(!empty($wppm_rich_text_editor) && ($wppm_rich_text_editor == 1)){\r\n+  ?>\r\n+    tinyMCE. activeEditor. setContent('');\r\n+    tinymce.remove('#wppm_proj_comment');\r\n+    jQuery('#wppm_proj_comment_btn').hide();\r\n+  \u003C?php } else{ \r\n+    ?>\r\n+    jQuery('#wppm_proj_comment').css(\"width\", \"80%\");\r\n+    jQuery('#wppm_proj_comment').css(\"height\", \"30px\");\r\n+    jQuery('#wppm_proj_comment').css(\"color\", \"#000\");\r\n+    jQuery('#wppm_proj_comment').css(\"padding\", \"5px\");\r\n+    jQuery('#wppm_proj_comment').css(\" margin-bottom\", \"15px\");\r\n+    jQuery('#wppm_proj_comment').css(\"overflow\", \"hidden\");\r\n+    jQuery('#wppm_proj_comment').css(\"border\", \"1 px solid #eee\");\r\n+    jQuery('#wppm_proj_comment').css(\"color\", \"#eee\");\r\n+    jQuery('#wppm_proj_comment').css(\"margin-top\", \"10px\");\r\n+    jQuery('#wppm_proj_comment_btn').hide();\r\n+  \u003C?php }?>\r\n+}\r\n+\r\n+function wppm_submit_proj_comment(proj_id){\r\n+  var dataform = new FormData(jQuery('#wppm_open_project')[0]);\r\n+  dataform.append('action','wppm_submit_proj_comment');\r\n+  \u003C?php\r\n+  if(!empty($wppm_rich_text_editor) && ($wppm_rich_text_editor == 1)){ ?> \r\n+    var comment_body = tinyMCE.get('wppm_proj_comment').getContent().trim();\r\n+  \u003C?php } else{ ?>\r\n+    var comment_body = jQuery(\"#wppm_proj_comment\").val().trim();\r\n+  \u003C?php }?>\r\n+  dataform.append('comment_body',comment_body);\r\n+  dataform.append('proj_id',proj_id);\r\n+  jQuery('#wppm_load_individual_project_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+      wppm_open_project(proj_id);\r\n+  });\r\n+}\r\n+\r\n+function wppm_upload_proj_comment_file(){\r\n+    jQuery('#wppm_proj_attachment_upload').unbind('change');\r\n+    jQuery('#wppm_proj_attachment_upload').on('change', function() {\r\n+      var flag = false;\r\n+      var file = this.files[0];\r\n+      jQuery('#wppm_proj_attachment_upload').val('');\r\n+      var allowedExtension = ['exe', 'php','js'];\r\n+\t    var file_name_split = file.name.split('.');\r\n+\t    var file_extension = file_name_split[file_name_split.length-1];\r\n+      file_extension = file_extension.toLowerCase();\t\r\n+      if( (jQuery.inArray(file_extension,allowedExtension)  > -1)){\r\n+        flag = true;\r\n+        alert(\"\u003C?php echo esc_js(__('Attached file type not allowed!','taskbuilder'))?>\");\r\n+      };\r\n+      \u003C?php\r\n+      $max_upload = (int)(ini_get('upload_max_filesize')); ?>\r\n+      var current_filesize=file.size\u002F1000000;\r\n+      if(current_filesize > \u003C?php echo esc_attr($max_upload); ?>){\r\n+\t\t\t\tflag = true;\r\n+\t\t\t\talert(\"\u003C?php echo esc_js(__('File size exceed allowed limit!','taskbuilder'))?>\");\r\n+\t\t\t}\r\n+      if (!flag){\r\n+        var html_str = '\u003Cdiv class=\"wppm_attachment\">'+\r\n+                          '\u003Cdiv class=\"progress\" style=\"float: none !important; width: unset !important;\">'+\r\n+                              '\u003Cdiv class=\"progress-bar\" role=\"progressbar\" aria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width:0%\">'+\r\n+                                file.name+\r\n+                              '\u003C\u002Fdiv>'+\r\n+                              '\u003Cspan class=\"wppm_attachment_cancel\" onclick=\"wppm_attachment_cancel(this);\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcross_icon.svg'); ?>\" alt=\"delete_icon\">\u003C\u002Fspan>'+\r\n+                          '\u003C\u002Fdiv>'+\r\n+                        '\u003C\u002Fdiv>';\r\n+          jQuery('.wppm_proj_attachment_container').show();\r\n+          jQuery('.wppm_proj_attachment_container').append(html_str);\r\n+          var attachment = jQuery('.wppm_proj_attachment_container').find('.wppm_attachment').last();\r\n+          var data = new FormData();\r\n+            data.append('file', file);\r\n+            data.append('arr_name', file.name);\r\n+            data.append('action', 'wppm_upload_proj_attach_file');\r\n+            data.append('nonce', jQuery('#wppm_proj_nonce').val().trim());\r\n+            jQuery.ajax({\r\n+              type: 'post',\r\n+              url: wppm_admin.ajax_url,\r\n+              data: data,\r\n+              xhr: function(){\r\n+                var xhr = new window.XMLHttpRequest();\r\n+                xhr.upload.addEventListener(\"progress\", function(evt){\r\n+                  if (evt.lengthComputable) {\r\n+                    var percentComplete = Math.floor((evt.loaded \u002F evt.total) * 100);\r\n+                    jQuery(attachment).find('.progress-bar').css('width',percentComplete+'%');\r\n+                  }\r\n+                }, false);\r\n+                return xhr;\r\n+              },\r\n+              processData: false,\r\n+              contentType: false,\r\n+              success: function(response) {\r\n+                var return_obj=JSON.parse(response);\r\n+                jQuery(attachment).find('.wppm_attachment_cancel').show();\r\n+                if( parseInt(return_obj.id) != 0 ){\r\n+                  jQuery(attachment).append('\u003Cinput type=\"hidden\" class=\"wppm_proj_comment_attachment\" name=\"wppm_proj_comment_attachment[]\" value=\"'+return_obj.id+'\">');\r\n+                  jQuery(attachment).find('.progress-bar').addClass('progress-bar-success');\r\n+                }else {\r\n+                  jQuery(attachment).find('.progress-bar').addClass('progress-bar-danger');\r\n+                }\r\n+              }\r\n+            });    \r\n+      }\r\n+    });\r\n+    jQuery('#wppm_proj_attachment_upload').trigger('click');\r\n+}\r\n \u003C\u002Fscript>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_change_project_category.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_change_project_category.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_change_project_category.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_change_project_category.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,39 +1,39 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_bulk_change_project_category', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$proj_ids = isset( $_POST['proj_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['proj_ids'] ) ) ) ) ) : array();\n-if ( ! $proj_ids ) {\n-    wp_send_json_error( 'Missing project ids', 400 );\n-}\n-\n-$proj_category = isset($_POST['wppm_project_category']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_project_category']))) : 0 ;\n-\n-if(!empty($proj_ids)){\n-    foreach($proj_ids as $proj_id){\n-        $project_data = $wppmfunction->get_project($proj_id);\n-        $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-        if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_details',$proj_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {\n-            if( !$proj_category ){\n-                die();\n-            }\n-            if( $proj_category && $proj_category != $project_data['cat_id']){\n-                $wppmfunction->change_category( $proj_id, $proj_category);\n-                $change_category_value = array('prev_cat'=>\"$project_data[cat_id]\",'new_cat'=>\"$proj_category\");\n-                $change_category_obj = serialize($change_category_value);\n-                $proj_id = esc_sql($proj_id);\n-                $log_values = array('proj_id'=>\"$proj_id\",'body'=>$change_category_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>esc_sql($current_user->ID) );\n-                $wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);\n-                $log_id = esc_sql($wpdb->insert_id);\n-                $proj_log_values = array('proj_id'=>\"$proj_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_proj_cat');\n-                $wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\n-            }\n-        }\n-    }\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_bulk_change_project_category', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$proj_ids = isset( $_POST['proj_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['proj_ids'] ) ) ) ) ) : array();\r\n+if ( ! $proj_ids ) {\r\n+    wp_send_json_error( 'Missing project ids', 400 );\r\n+}\r\n+\r\n+$proj_category = isset($_POST['wppm_project_category']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_project_category']))) : 0 ;\r\n+\r\n+if(!empty($proj_ids)){\r\n+    foreach($proj_ids as $proj_id){\r\n+        $project_data = $wppmfunction->get_project($proj_id);\r\n+        $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+        if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_details',$proj_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {\r\n+            if( !$proj_category ){\r\n+                die();\r\n+            }\r\n+            if( $proj_category && $proj_category != $project_data['cat_id']){\r\n+                $wppmfunction->change_category( $proj_id, $proj_category);\r\n+                $change_category_value = array('prev_cat'=>\"$project_data[cat_id]\",'new_cat'=>\"$proj_category\");\r\n+                $change_category_obj = serialize($change_category_value);\r\n+                $proj_id = esc_sql($proj_id);\r\n+                $log_values = array('proj_id'=>\"$proj_id\",'body'=>$change_category_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>esc_sql($current_user->ID) );\r\n+                $wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);\r\n+                $log_id = esc_sql($wpdb->insert_id);\r\n+                $proj_log_values = array('proj_id'=>\"$proj_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_proj_cat');\r\n+                $wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n do_action('wppm_after_set_bulk_change_project_status',$proj_ids, $proj_category);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_change_proj_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_change_proj_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_change_proj_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_change_proj_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,34 +1,34 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_bulk_change_project_status', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$proj_ids = isset( $_POST['proj_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['proj_ids'] ) ) ) ) ) : array();\n-if ( ! $proj_ids ) {\n-    wp_send_json_error( 'Missing project ids', 400 );\n-}\n-\n-$proj_status = isset( $_POST['wppm_project_status']) ? absint(sanitize_text_field(wp_unslash($_POST['wppm_project_status']))) : ''; \n-if(!empty($proj_ids)){\n-    foreach($proj_ids as $proj_id){\n-        $project_data = $wppmfunction->get_project($proj_id);\n-        $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-        if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_status',$proj_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {\n-\n-            $status_id   = isset($_POST['wppm_project_status']) ? absint(sanitize_text_field(wp_unslash($_POST['wppm_project_status']))) : 0 ;\n-            if( !$status_id ){\n-            die();\n-            }\n-            $old_status_id   \t= $project_data['status'];\n-\n-            if($status_id && $status_id!=$old_status_id){\n-                $wppmfunction->change_project_status( $proj_id, $status_id);\n-            }\n-        }\n-    }\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_bulk_change_project_status', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$proj_ids = isset( $_POST['proj_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['proj_ids'] ) ) ) ) ) : array();\r\n+if ( ! $proj_ids ) {\r\n+    wp_send_json_error( 'Missing project ids', 400 );\r\n+}\r\n+\r\n+$proj_status = isset( $_POST['wppm_project_status']) ? absint(sanitize_text_field(wp_unslash($_POST['wppm_project_status']))) : ''; \r\n+if(!empty($proj_ids)){\r\n+    foreach($proj_ids as $proj_id){\r\n+        $project_data = $wppmfunction->get_project($proj_id);\r\n+        $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+        if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('change_project_status',$proj_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager') || $wppm_current_user_capability=='wppm_admin')) {\r\n+\r\n+            $status_id   = isset($_POST['wppm_project_status']) ? absint(sanitize_text_field(wp_unslash($_POST['wppm_project_status']))) : 0 ;\r\n+            if( !$status_id ){\r\n+            die();\r\n+            }\r\n+            $old_status_id   \t= $project_data['status'];\r\n+\r\n+            if($status_id && $status_id!=$old_status_id){\r\n+                $wppmfunction->change_project_status( $proj_id, $status_id);\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n do_action('wppm_after_set_bulk_change_project_status',$proj_ids, $proj_status);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_project_users.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_project_users.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_project_users.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_project_users.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,142 +1,142 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_bulk_project_users', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$proj_ids = isset( $_POST['proj_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['proj_ids'] ) ) ) ) ) : array();\n-if ( ! $proj_ids ) {\n-    wp_send_json_error( 'Missing project ids', 400 );\n-}\n-$users = isset( $_POST['user_names']) ? $wppmfunction->sanitize_array($_POST['user_names']) : ''; \n-if(!empty($proj_ids)){\n-    foreach($proj_ids as $proj_id){\n-        $project_data = $wppmfunction->get_project($proj_id);\n-        if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('assign_project_users',$proj_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-            $wppm_users_role = get_option('wppm_user_role');\n-            $prev_assign_users = $project_data['users'];\n-            if(!empty($prev_assign_users )){\n-                $prev_assign_users = explode(\",\",$prev_assign_users);\n-            }   \n-            $users = (!empty($_POST['user_names']))? $wppmfunction->sanitize_array($_POST['user_names']):\"\";\n-            $prev_assgn_user_meta = $wppmfunction->get_project_meta($proj_id,'prev_assigned_users');\n-            $wppmfunction->delete_project_meta($proj_id,'prev_assigned_users');\n-            $task_users = $wpdb->get_results(\n-                $wpdb->prepare(\n-                    \"SELECT id, users\n-                    FROM {$wpdb->prefix}wppm_task\n-                    WHERE project = %d\",\n-                    absint($proj_id)\n-                )\n-            );\n-            if(!empty($prev_assign_users)) {\n-                foreach($prev_assign_users as $puser){\n-                    $wppmfunction->add_project_meta($proj_id,'prev_assigned_users',$puser);\n-                    if(!empty($users) && !in_array($puser,$users)){\n-                        if(!empty($task_users)){\n-                            foreach($task_users as $tuser){\n-                                if(!empty($tuser)){\n-                                    $wppm_tuser = explode(',',$tuser->users);\n-                                    if (($key = array_search($puser, $wppm_tuser)) !== false) {\n-                                        unset($wppm_tuser[$key]);\n-                                        if(!empty($wppm_tuser)){\n-                                            $wppmtuser = implode(',',$wppm_tuser);\n-                                        $value=array(\n-                                            'users'=>  absint($wppmtuser)\n-                                        );\n-                                        } elseif(empty($wppm_tuser)){\n-                                        $value=array(\n-                                            'users'=> ''\n-                                        );\n-                                        }\n-                                        $wpdb->update($wpdb->prefix.'wppm_task', $value, array('id'=>absint($tuser->id)));\n-                                    }\n-                                }\n-                            }\n-                        }\n-                    }\n-                    elseif(empty($users) && !empty($task_users)){\n-                        foreach($task_users as $tuser){\n-                            if(!empty($tuser)){\n-                                $wppm_tuser = explode(',',$tuser->users);\n-                                if (($key = array_search($puser, $wppm_tuser)) !== false) {\n-                                    unset($wppm_tuser[$key]);\n-                                    if(!empty($wppm_tuser)){\n-                                        $wppmtuser = implode(',',$wppm_tuser);\n-                                        $value=array(\n-                                            'users'=> absint($wppmtuser)\n-                                        );\n-                                    } elseif(empty($wppm_tuser)){\n-                                        $value=array(\n-                                            'users'=> ''\n-                                        );\n-                                    }\n-                                    $wpdb->update($wpdb->prefix.'wppm_task', $value, array('id'=>absint($tuser->id)));\n-                                }\n-                            }\n-                        }\n-                    }\n-                }\n-            }\n-            if(!empty($users)){\n-                $users = array_unique($users);\n-                foreach($users as $user){\n-                    if(!empty($user)){\n-                        $user_role = sanitize_text_field(wp_unslash($_POST['wppm_select_user_role_'.$user]));\n-                        $project_user = $wpdb->get_row(\n-                            $wpdb->prepare(\n-                                \"SELECT *\n-                                FROM {$wpdb->prefix}wppm_project_users\n-                                WHERE proj_id = %d\n-                                AND user_id = %d\",\n-                                absint($proj_id),\n-                                absint($user)\n-                            )\n-                        );\n-                        if(!empty($project_user)){\n-                            $values=array(\n-                                'role_id'=> absint($user_role),\n-                                'assigned_by'=> absint($current_user->ID)\n-                            );\n-                            $wpdb->update($wpdb->prefix.'wppm_project_users', $values, array('id'=>absint($project_user->id)));\n-                        }else{\n-                            $wpdb->insert( \n-                                $wpdb->prefix . 'wppm_project_users', \n-                                array(\n-                                'proj_id' => absint($proj_id),\n-                                'user_id' => absint($user),\n-                                'role_id' => absint($user_role),\n-                                'assigned_by' => absint($current_user->ID)\n-                            ) );\n-                        }\n-                    }\n-                }\n-                $pusers = implode(\",\",$users);\n-                if($project_data['users'] != $pusers){\n-                    $pvalues=array(\n-                        'users'=> esc_sql($pusers)\n-                    );\n-                    $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>absint($proj_id)));\n-                }\n-            }\n-            else{\n-                $pvalues = array(\n-                    'users'=>''\n-                );\n-                $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>absint($proj_id)));\n-            }\n-            $change_assign_user_value = array('prev_assign_user'=>\"$project_data[users]\",'new_assign_user'=>\"$pusers\");\n-            $change_assign_user_obj = serialize($change_assign_user_value);\n-            $log_values = array('proj_id'=>absint($proj_id),'body'=>$change_assign_user_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>absint($current_user->ID));\n-            $wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);\n-            $log_id = absint($wpdb->insert_id);\n-            $proj_log_values = array('proj_id'=>absint($proj_id),'comment_id'=>$log_id,'comment_type'=>'change_assign_user');\n-            $wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\n-            do_action('wppm_set_bulk_project_users', $proj_id);\n-        } \n-    }\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_bulk_project_users', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$proj_ids = isset( $_POST['proj_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['proj_ids'] ) ) ) ) ) : array();\r\n+if ( ! $proj_ids ) {\r\n+    wp_send_json_error( 'Missing project ids', 400 );\r\n+}\r\n+$users = isset( $_POST['user_names']) ? $wppmfunction->sanitize_array($_POST['user_names']) : ''; \r\n+if(!empty($proj_ids)){\r\n+    foreach($proj_ids as $proj_id){\r\n+        $project_data = $wppmfunction->get_project($proj_id);\r\n+        if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('assign_project_users',$proj_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+            $wppm_users_role = get_option('wppm_user_role');\r\n+            $prev_assign_users = $project_data['users'];\r\n+            if(!empty($prev_assign_users )){\r\n+                $prev_assign_users = explode(\",\",$prev_assign_users);\r\n+            }   \r\n+            $users = (!empty($_POST['user_names']))? $wppmfunction->sanitize_array($_POST['user_names']):\"\";\r\n+            $prev_assgn_user_meta = $wppmfunction->get_project_meta($proj_id,'prev_assigned_users');\r\n+            $wppmfunction->delete_project_meta($proj_id,'prev_assigned_users');\r\n+            $task_users = $wpdb->get_results(\r\n+                $wpdb->prepare(\r\n+                    \"SELECT id, users\r\n+                    FROM {$wpdb->prefix}wppm_task\r\n+                    WHERE project = %d\",\r\n+                    absint($proj_id)\r\n+                )\r\n+            );\r\n+            if(!empty($prev_assign_users)) {\r\n+                foreach($prev_assign_users as $puser){\r\n+                    $wppmfunction->add_project_meta($proj_id,'prev_assigned_users',$puser);\r\n+                    if(!empty($users) && !in_array($puser,$users)){\r\n+                        if(!empty($task_users)){\r\n+                            foreach($task_users as $tuser){\r\n+                                if(!empty($tuser)){\r\n+                                    $wppm_tuser = explode(',',$tuser->users);\r\n+                                    if (($key = array_search($puser, $wppm_tuser)) !== false) {\r\n+                                        unset($wppm_tuser[$key]);\r\n+                                        if(!empty($wppm_tuser)){\r\n+                                            $wppmtuser = implode(',',$wppm_tuser);\r\n+                                        $value=array(\r\n+                                            'users'=>  absint($wppmtuser)\r\n+                                        );\r\n+                                        } elseif(empty($wppm_tuser)){\r\n+                                        $value=array(\r\n+                                            'users'=> ''\r\n+                                        );\r\n+                                        }\r\n+                                        $wpdb->update($wpdb->prefix.'wppm_task', $value, array('id'=>absint($tuser->id)));\r\n+                                    }\r\n+                                }\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                    elseif(empty($users) && !empty($task_users)){\r\n+                        foreach($task_users as $tuser){\r\n+                            if(!empty($tuser)){\r\n+                                $wppm_tuser = explode(',',$tuser->users);\r\n+                                if (($key = array_search($puser, $wppm_tuser)) !== false) {\r\n+                                    unset($wppm_tuser[$key]);\r\n+                                    if(!empty($wppm_tuser)){\r\n+                                        $wppmtuser = implode(',',$wppm_tuser);\r\n+                                        $value=array(\r\n+                                            'users'=> absint($wppmtuser)\r\n+                                        );\r\n+                                    } elseif(empty($wppm_tuser)){\r\n+                                        $value=array(\r\n+                                            'users'=> ''\r\n+                                        );\r\n+                                    }\r\n+                                    $wpdb->update($wpdb->prefix.'wppm_task', $value, array('id'=>absint($tuser->id)));\r\n+                                }\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+            if(!empty($users)){\r\n+                $users = array_unique($users);\r\n+                foreach($users as $user){\r\n+                    if(!empty($user)){\r\n+                        $user_role = sanitize_text_field(wp_unslash($_POST['wppm_select_user_role_'.$user]));\r\n+                        $project_user = $wpdb->get_row(\r\n+                            $wpdb->prepare(\r\n+                                \"SELECT *\r\n+                                FROM {$wpdb->prefix}wppm_project_users\r\n+                                WHERE proj_id = %d\r\n+                                AND user_id = %d\",\r\n+                                absint($proj_id),\r\n+                                absint($user)\r\n+                            )\r\n+                        );\r\n+                        if(!empty($project_user)){\r\n+                            $values=array(\r\n+                                'role_id'=> absint($user_role),\r\n+                                'assigned_by'=> absint($current_user->ID)\r\n+                            );\r\n+                            $wpdb->update($wpdb->prefix.'wppm_project_users', $values, array('id'=>absint($project_user->id)));\r\n+                        }else{\r\n+                            $wpdb->insert( \r\n+                                $wpdb->prefix . 'wppm_project_users', \r\n+                                array(\r\n+                                'proj_id' => absint($proj_id),\r\n+                                'user_id' => absint($user),\r\n+                                'role_id' => absint($user_role),\r\n+                                'assigned_by' => absint($current_user->ID)\r\n+                            ) );\r\n+                        }\r\n+                    }\r\n+                }\r\n+                $pusers = implode(\",\",$users);\r\n+                if($project_data['users'] != $pusers){\r\n+                    $pvalues=array(\r\n+                        'users'=> esc_sql($pusers)\r\n+                    );\r\n+                    $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>absint($proj_id)));\r\n+                }\r\n+            }\r\n+            else{\r\n+                $pvalues = array(\r\n+                    'users'=>''\r\n+                );\r\n+                $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>absint($proj_id)));\r\n+            }\r\n+            $change_assign_user_value = array('prev_assign_user'=>\"$project_data[users]\",'new_assign_user'=>\"$pusers\");\r\n+            $change_assign_user_obj = serialize($change_assign_user_value);\r\n+            $log_values = array('proj_id'=>absint($proj_id),'body'=>$change_assign_user_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>absint($current_user->ID));\r\n+            $wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);\r\n+            $log_id = absint($wpdb->insert_id);\r\n+            $proj_log_values = array('proj_id'=>absint($proj_id),'comment_id'=>$log_id,'comment_type'=>'change_assign_user');\r\n+            $wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\r\n+            do_action('wppm_set_bulk_project_users', $proj_id);\r\n+        } \r\n+    }\r\n+}\r\n do_action('wppm_after_set_bulk_project_users',$proj_ids, $users);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_delete_bulk_projects.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_delete_bulk_projects.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_delete_bulk_projects.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_delete_bulk_projects.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,110 +1,110 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_delete_bulk_projects', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$proj_ids = isset( $_POST['proj_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['proj_ids'] ) ) ) ) ) : array();\n-if ( ! $proj_ids ) {\n-    wp_send_json_error( 'Missing project ids', 400 );\n-}\n-if(!empty($proj_ids)){\n-    foreach($proj_ids as $proj_id){\n-        $project_data = $wppmfunction->get_project($proj_id);\n-        if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('delete_project',$proj_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-                $tasks = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task where project = %d\",absint($proj_id)));\n-            \u002F*************delete project********\u002F\n-                $wpdb->delete($wpdb->prefix.'wppm_project',array('id'=>$proj_id));\n-            \u002F*************delete project comment********\u002F\n-            $proj_comm_attachment_ids = $wpdb->get_results(\n-                $wpdb->prepare(\n-                    \"SELECT attachment_ids\n-                    FROM {$wpdb->prefix}wppm_project_comment\n-                    WHERE proj_id = %d\",\n-                    absint($proj_id)\n-                )\n-            );\n-            if(!empty($proj_comm_attachment_ids)){\n-                foreach ($proj_comm_attachment_ids as $proj_attachment_id){\n-                    $proj_attachment_ids_temp=array();\n-                    if($proj_attachment_id->attachment_ids){\n-                        $proj_attachment_ids_temp=  explode(',', $proj_attachment_id->attachment_ids);\n-                    }\n-                    foreach ($proj_attachment_ids_temp as $proj_attachment_id){\n-                        $sql=$wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",absint($proj_attachment_id));\n-                        $att_result=$wpdb->get_row($sql);\n-                        if(!empty($att_result)){\n-                            $sql_query=$wpdb->prepare(\"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",absint($att_result->file_path));\n-                            $proj_attach_result=$wpdb->get_results($sql_query);\n-                            $proj_result_count = count($proj_attach_result);\n-                            if(file_exists($att_result->file_path) && $proj_result_count \u003C 2)\n-                            {\n-                                wp_delete_file($att_result->file_path);\n-                            }\n-                            $proj_attachment_id = absint($proj_attachment_id);\n-                            $wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => \"$proj_attachment_id\"));\n-                        }\n-                    }\n-                }\n-            }\n-            $wpdb->delete($wpdb->prefix.'wppm_project_comment',array('proj_id'=>absint($proj_id)));\n-            $wpdb->delete($wpdb->prefix.'wppm_project_meta',array('project_id'=>absint($proj_id)));\n-            $wpdb->delete($wpdb->prefix.'wppm_project_comment_meta',array('proj_id'=>absint($proj_id)));\n-\n-            \u002F*************delete project's tasks and comments********\u002F\n-            foreach($tasks as $task){\n-                $sql=$wpdb->prepare(\"SELECT attachment_ids FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d\",absint($task->id));\n-                $thread_attachment_ids= $wpdb->get_results( $sql );\n-\n-                \u002F***************************Code for deleting attachment files****************************************************\u002F\n-                if(!empty($thread_attachment_ids)){\n-                    foreach ($thread_attachment_ids as $thread_attachment_id){\n-                        $attachment_ids_temp=array();\n-                        if($thread_attachment_id->attachment_ids){\n-                            $attachment_ids_temp=  explode(',', $thread_attachment_id->attachment_ids);\n-                        }\n-                        \u002F\u002F$attachment_ids=$attachment_ids_temp;\n-                        foreach ($attachment_ids_temp as $attachment_id){\n-                            $sql=$wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",absint($attachment_id));\n-                            $result=$wpdb->get_row($sql);\n-                            if(!empty($result)){\n-                                $sql_query=$wpdb->prepare(\"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",absint($result->file_path));\n-                                $attach_result=$wpdb->get_results($sql_query);\n-                                $result_count = count($attach_result);\n-                                if(file_exists($result->file_path) && $result_count \u003C 2)\n-                                {\n-                                    wp_delete_file($result->file_path);\n-                                }\n-                                $wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => absint($attachment_id)));\n-                            }\n-                        }\n-                    }\n-                }\n-                \u002F***************************Code for deleting checklists****************************************************\u002F\n-                $sql=$wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_checklist WHERE task_id = %d\",absint($task->id));\n-                $checklists = $wpdb->get_results( $sql );\n-                if(!empty($checklists)){\n-                    foreach($checklists as $checklist){\n-                        $chk_array = (array) $checklist;\n-                        $sql=$wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_checklist_items WHERE checklist_id = %d\",absint($chk_array['id']));\n-                        $checklist_items = $wpdb->get_results( $sql );\n-                        if(!empty($checklist_items)){\n-                            foreach($checklist_items as $ch_item){\n-                                $chk_items_array = (array) $ch_item;\n-                                $wpdb->delete($wpdb->prefix.'wppm_checklist_items',array('id'=>absint($chk_items_array['id'])));\n-                            }\n-                        }\n-                        $wpdb->delete($wpdb->prefix.'wppm_checklist',array('id'=>absint($chk_array['id'])));\n-                    }\n-                }\n-                $wpdb->delete($wpdb->prefix.'wppm_task',array('project'=>absint($proj_id)));\n-                $wpdb->delete($wpdb->prefix.'wppm_task_meta',array('task_id'=>absint($task->id)));\n-                $wpdb->delete($wpdb->prefix.'wppm_task_comment',array('task_id'=>absint($task->id)));\n-                $wpdb->delete($wpdb->prefix.'wppm_task_comment_meta',array('task_id'=>absint($task->id)));\n-            }\n-        }\n-    }\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_delete_bulk_projects', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$proj_ids = isset( $_POST['proj_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['proj_ids'] ) ) ) ) ) : array();\r\n+if ( ! $proj_ids ) {\r\n+    wp_send_json_error( 'Missing project ids', 400 );\r\n+}\r\n+if(!empty($proj_ids)){\r\n+    foreach($proj_ids as $proj_id){\r\n+        $project_data = $wppmfunction->get_project($proj_id);\r\n+        if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('delete_project',$proj_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+                $tasks = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task where project = %d\",absint($proj_id)));\r\n+            \u002F*************delete project********\u002F\r\n+                $wpdb->delete($wpdb->prefix.'wppm_project',array('id'=>$proj_id));\r\n+            \u002F*************delete project comment********\u002F\r\n+            $proj_comm_attachment_ids = $wpdb->get_results(\r\n+                $wpdb->prepare(\r\n+                    \"SELECT attachment_ids\r\n+                    FROM {$wpdb->prefix}wppm_project_comment\r\n+                    WHERE proj_id = %d\",\r\n+                    absint($proj_id)\r\n+                )\r\n+            );\r\n+            if(!empty($proj_comm_attachment_ids)){\r\n+                foreach ($proj_comm_attachment_ids as $proj_attachment_id){\r\n+                    $proj_attachment_ids_temp=array();\r\n+                    if($proj_attachment_id->attachment_ids){\r\n+                        $proj_attachment_ids_temp=  explode(',', $proj_attachment_id->attachment_ids);\r\n+                    }\r\n+                    foreach ($proj_attachment_ids_temp as $proj_attachment_id){\r\n+                        $sql=$wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",absint($proj_attachment_id));\r\n+                        $att_result=$wpdb->get_row($sql);\r\n+                        if(!empty($att_result)){\r\n+                            $sql_query=$wpdb->prepare(\"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",absint($att_result->file_path));\r\n+                            $proj_attach_result=$wpdb->get_results($sql_query);\r\n+                            $proj_result_count = count($proj_attach_result);\r\n+                            if(file_exists($att_result->file_path) && $proj_result_count \u003C 2)\r\n+                            {\r\n+                                wp_delete_file($att_result->file_path);\r\n+                            }\r\n+                            $proj_attachment_id = absint($proj_attachment_id);\r\n+                            $wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => \"$proj_attachment_id\"));\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+            $wpdb->delete($wpdb->prefix.'wppm_project_comment',array('proj_id'=>absint($proj_id)));\r\n+            $wpdb->delete($wpdb->prefix.'wppm_project_meta',array('project_id'=>absint($proj_id)));\r\n+            $wpdb->delete($wpdb->prefix.'wppm_project_comment_meta',array('proj_id'=>absint($proj_id)));\r\n+\r\n+            \u002F*************delete project's tasks and comments********\u002F\r\n+            foreach($tasks as $task){\r\n+                $sql=$wpdb->prepare(\"SELECT attachment_ids FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d\",absint($task->id));\r\n+                $thread_attachment_ids= $wpdb->get_results( $sql );\r\n+\r\n+                \u002F***************************Code for deleting attachment files****************************************************\u002F\r\n+                if(!empty($thread_attachment_ids)){\r\n+                    foreach ($thread_attachment_ids as $thread_attachment_id){\r\n+                        $attachment_ids_temp=array();\r\n+                        if($thread_attachment_id->attachment_ids){\r\n+                            $attachment_ids_temp=  explode(',', $thread_attachment_id->attachment_ids);\r\n+                        }\r\n+                        \u002F\u002F$attachment_ids=$attachment_ids_temp;\r\n+                        foreach ($attachment_ids_temp as $attachment_id){\r\n+                            $sql=$wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",absint($attachment_id));\r\n+                            $result=$wpdb->get_row($sql);\r\n+                            if(!empty($result)){\r\n+                                $sql_query=$wpdb->prepare(\"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",absint($result->file_path));\r\n+                                $attach_result=$wpdb->get_results($sql_query);\r\n+                                $result_count = count($attach_result);\r\n+                                if(file_exists($result->file_path) && $result_count \u003C 2)\r\n+                                {\r\n+                                    wp_delete_file($result->file_path);\r\n+                                }\r\n+                                $wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => absint($attachment_id)));\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                }\r\n+                \u002F***************************Code for deleting checklists****************************************************\u002F\r\n+                $sql=$wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_checklist WHERE task_id = %d\",absint($task->id));\r\n+                $checklists = $wpdb->get_results( $sql );\r\n+                if(!empty($checklists)){\r\n+                    foreach($checklists as $checklist){\r\n+                        $chk_array = (array) $checklist;\r\n+                        $sql=$wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_checklist_items WHERE checklist_id = %d\",absint($chk_array['id']));\r\n+                        $checklist_items = $wpdb->get_results( $sql );\r\n+                        if(!empty($checklist_items)){\r\n+                            foreach($checklist_items as $ch_item){\r\n+                                $chk_items_array = (array) $ch_item;\r\n+                                $wpdb->delete($wpdb->prefix.'wppm_checklist_items',array('id'=>absint($chk_items_array['id'])));\r\n+                            }\r\n+                        }\r\n+                        $wpdb->delete($wpdb->prefix.'wppm_checklist',array('id'=>absint($chk_array['id'])));\r\n+                    }\r\n+                }\r\n+                $wpdb->delete($wpdb->prefix.'wppm_task',array('project'=>absint($proj_id)));\r\n+                $wpdb->delete($wpdb->prefix.'wppm_task_meta',array('task_id'=>absint($task->id)));\r\n+                $wpdb->delete($wpdb->prefix.'wppm_task_comment',array('task_id'=>absint($task->id)));\r\n+                $wpdb->delete($wpdb->prefix.'wppm_task_comment_meta',array('task_id'=>absint($task->id)));\r\n+            }\r\n+        }\r\n+    }\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_delete_project.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_delete_project.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_delete_project.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_delete_project.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,102 +1,102 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wppmfunction ,$wpdb;\n-\n-if ( check_ajax_referer( 'wppm_set_delete_project', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$project_id  = isset($_POST['project_id']) ? intval(sanitize_text_field(wp_unslash($_POST['project_id']))) : 0 ;\n-$project = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project where id = %d\",absint($project_id)));\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('delete_project',$project_id) || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-\n-$tasks = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task where project = %d\",absint($project_id)));\n-\u002F*************delete project********\u002F\n-    $wpdb->delete($wpdb->prefix.'wppm_project',array('id'=>\"$project_id\"));\n-\n-\u002F*************delete project comment********\u002F\n-$sql=$wpdb->prepare(\"SELECT attachment_ids FROM {$wpdb->prefix}wppm_project_comment WHERE proj_id = %d\",absint($project_id));\n-$proj_comm_attachment_ids= $wpdb->get_results( $sql );\n-if(!empty($proj_comm_attachment_ids)){\n-    foreach ($proj_comm_attachment_ids as $proj_attachment_id){\n-        $proj_attachment_ids_temp=array();\n-        if($proj_attachment_id->attachment_ids){\n-            $proj_attachment_ids_temp=  explode(',', $proj_attachment_id->attachment_ids);\n-        }\n-        foreach ($proj_attachment_ids_temp as $proj_attachment_id){\n-            $proj_attachment_id = absint($proj_attachment_id);\n-            $sql=$wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",absint($proj_attachment_id));\n-            $att_result=$wpdb->get_row($sql);\n-            if(!empty($att_result)){\n-                $sql_query=$wpdb->prepare(\"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",esc_sql($att_result->file_path));\n-                $proj_attach_result=$wpdb->get_results($sql_query);\n-                $proj_result_count = count($proj_attach_result);\n-                if(file_exists($att_result->file_path) && $proj_result_count \u003C 2)\n-                {\n-                    wp_delete_file($att_result->file_path);\n-                }\n-                $wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => \"$proj_attachment_id\"));\n-            }\n-        }\n-    }\n-}\n-$wpdb->delete($wpdb->prefix.'wppm_project_comment',array('proj_id'=>absint($project_id)));\n-$wpdb->delete($wpdb->prefix.'wppm_project_meta',array('project_id'=>absint($project_id)));\n-$wpdb->delete($wpdb->prefix.'wppm_project_comment_meta',array('proj_id'=>absint($project_id)));\n-\n-\u002F*************delete project's tasks and comments********\u002F\n-foreach($tasks as $task){\n-    $sql=$wpdb->prepare(\"SELECT attachment_ids FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d\",absint($task->id));\n-    $thread_attachment_ids= $wpdb->get_results( $sql );\n-    $tid = absint($task->id);\n-    \u002F***************************Code for deleting attachment files****************************************************\u002F\n-    if(!empty($thread_attachment_ids)){\n-        foreach ($thread_attachment_ids as $thread_attachment_id){\n-            $attachment_ids_temp=array();\n-            if($thread_attachment_id->attachment_ids){\n-                $attachment_ids_temp=  explode(',', $thread_attachment_id->attachment_ids);\n-            }\n-            \u002F\u002F$attachment_ids=$attachment_ids_temp;\n-            foreach ($attachment_ids_temp as $attachment_id){\n-                $sql=$wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",absint($attachment_id));\n-                $result=$wpdb->get_row($sql);\n-                if(!empty($result)){\n-                    $sql_query=$wpdb->prepare(\"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",esc_sql($result->file_path));\n-\t\t\t\t\t$attach_result=$wpdb->get_results($sql_query);\n-                    $result_count = count($attach_result);\n-                    if(file_exists($result->file_path) && $result_count \u003C 2)\n-                    {\n-                        wp_delete_file($result->file_path);\n-                    }\n-                    $wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => absint($attachment_id)));\n-                }\n-            }\n-        }\n-    }\n-    \u002F***************************Code for deleting checklists****************************************************\u002F\n-    $sql=$wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_checklist WHERE task_id = %d\",$tid);\n-    $checklists = $wpdb->get_results( $sql );\n-    if(!empty($checklists)){\n-        foreach($checklists as $checklist){\n-            $chk_array = (array) $checklist;\n-            $chk_id = absint($chk_array['id']);\n-            $sql=$wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_checklist_items WHERE checklist_id = %d\",$chk_id);\n-            $checklist_items = $wpdb->get_results( $sql );\n-            if(!empty($checklist_items)){\n-                foreach($checklist_items as $ch_item){\n-                    $chk_items_array = (array) $ch_item;\n-                    $chk_item_id = absint($chk_items_array['id']);\n-                    $wpdb->delete($wpdb->prefix.'wppm_checklist_items',array('id'=>\"$chk_item_id\"));\n-                }\n-            }\n-            $wpdb->delete($wpdb->prefix.'wppm_checklist',array('id'=> \"$chk_id\"));\n-        }\n-    }\n-    $wpdb->delete($wpdb->prefix.'wppm_task',array('project'=>absint($project_id)));\n-    $wpdb->delete($wpdb->prefix.'wppm_task_meta',array('task_id'=>absint($tid)));\n-    $wpdb->delete($wpdb->prefix.'wppm_task_comment',array('task_id'=>absint($tid)));\n-    $wpdb->delete($wpdb->prefix.'wppm_task_comment_meta',array('task_id'=>absint($tid)));\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wppmfunction ,$wpdb;\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_delete_project', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$project_id  = isset($_POST['project_id']) ? intval(sanitize_text_field(wp_unslash($_POST['project_id']))) : 0 ;\r\n+$project = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project where id = %d\",absint($project_id)));\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('delete_project',$project_id) || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+\r\n+$tasks = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task where project = %d\",absint($project_id)));\r\n+\u002F*************delete project********\u002F\r\n+    $wpdb->delete($wpdb->prefix.'wppm_project',array('id'=>\"$project_id\"));\r\n+\r\n+\u002F*************delete project comment********\u002F\r\n+$sql=$wpdb->prepare(\"SELECT attachment_ids FROM {$wpdb->prefix}wppm_project_comment WHERE proj_id = %d\",absint($project_id));\r\n+$proj_comm_attachment_ids= $wpdb->get_results( $sql );\r\n+if(!empty($proj_comm_attachment_ids)){\r\n+    foreach ($proj_comm_attachment_ids as $proj_attachment_id){\r\n+        $proj_attachment_ids_temp=array();\r\n+        if($proj_attachment_id->attachment_ids){\r\n+            $proj_attachment_ids_temp=  explode(',', $proj_attachment_id->attachment_ids);\r\n+        }\r\n+        foreach ($proj_attachment_ids_temp as $proj_attachment_id){\r\n+            $proj_attachment_id = absint($proj_attachment_id);\r\n+            $sql=$wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",absint($proj_attachment_id));\r\n+            $att_result=$wpdb->get_row($sql);\r\n+            if(!empty($att_result)){\r\n+                $sql_query=$wpdb->prepare(\"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",esc_sql($att_result->file_path));\r\n+                $proj_attach_result=$wpdb->get_results($sql_query);\r\n+                $proj_result_count = count($proj_attach_result);\r\n+                if(file_exists($att_result->file_path) && $proj_result_count \u003C 2)\r\n+                {\r\n+                    wp_delete_file($att_result->file_path);\r\n+                }\r\n+                $wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => \"$proj_attachment_id\"));\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n+$wpdb->delete($wpdb->prefix.'wppm_project_comment',array('proj_id'=>absint($project_id)));\r\n+$wpdb->delete($wpdb->prefix.'wppm_project_meta',array('project_id'=>absint($project_id)));\r\n+$wpdb->delete($wpdb->prefix.'wppm_project_comment_meta',array('proj_id'=>absint($project_id)));\r\n+\r\n+\u002F*************delete project's tasks and comments********\u002F\r\n+foreach($tasks as $task){\r\n+    $sql=$wpdb->prepare(\"SELECT attachment_ids FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d\",absint($task->id));\r\n+    $thread_attachment_ids= $wpdb->get_results( $sql );\r\n+    $tid = absint($task->id);\r\n+    \u002F***************************Code for deleting attachment files****************************************************\u002F\r\n+    if(!empty($thread_attachment_ids)){\r\n+        foreach ($thread_attachment_ids as $thread_attachment_id){\r\n+            $attachment_ids_temp=array();\r\n+            if($thread_attachment_id->attachment_ids){\r\n+                $attachment_ids_temp=  explode(',', $thread_attachment_id->attachment_ids);\r\n+            }\r\n+            \u002F\u002F$attachment_ids=$attachment_ids_temp;\r\n+            foreach ($attachment_ids_temp as $attachment_id){\r\n+                $sql=$wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",absint($attachment_id));\r\n+                $result=$wpdb->get_row($sql);\r\n+                if(!empty($result)){\r\n+                    $sql_query=$wpdb->prepare(\"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",esc_sql($result->file_path));\r\n+\t\t\t\t\t$attach_result=$wpdb->get_results($sql_query);\r\n+                    $result_count = count($attach_result);\r\n+                    if(file_exists($result->file_path) && $result_count \u003C 2)\r\n+                    {\r\n+                        wp_delete_file($result->file_path);\r\n+                    }\r\n+                    $wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => absint($attachment_id)));\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+    \u002F***************************Code for deleting checklists****************************************************\u002F\r\n+    $sql=$wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_checklist WHERE task_id = %d\",$tid);\r\n+    $checklists = $wpdb->get_results( $sql );\r\n+    if(!empty($checklists)){\r\n+        foreach($checklists as $checklist){\r\n+            $chk_array = (array) $checklist;\r\n+            $chk_id = absint($chk_array['id']);\r\n+            $sql=$wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_checklist_items WHERE checklist_id = %d\",$chk_id);\r\n+            $checklist_items = $wpdb->get_results( $sql );\r\n+            if(!empty($checklist_items)){\r\n+                foreach($checklist_items as $ch_item){\r\n+                    $chk_items_array = (array) $ch_item;\r\n+                    $chk_item_id = absint($chk_items_array['id']);\r\n+                    $wpdb->delete($wpdb->prefix.'wppm_checklist_items',array('id'=>\"$chk_item_id\"));\r\n+                }\r\n+            }\r\n+            $wpdb->delete($wpdb->prefix.'wppm_checklist',array('id'=> \"$chk_id\"));\r\n+        }\r\n+    }\r\n+    $wpdb->delete($wpdb->prefix.'wppm_task',array('project'=>absint($project_id)));\r\n+    $wpdb->delete($wpdb->prefix.'wppm_task_meta',array('task_id'=>absint($tid)));\r\n+    $wpdb->delete($wpdb->prefix.'wppm_task_comment',array('task_id'=>absint($tid)));\r\n+    $wpdb->delete($wpdb->prefix.'wppm_task_comment_meta',array('task_id'=>absint($tid)));\r\n+}\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_project_meta.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_project_meta.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_project_meta.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fprojects\u002Fwppm_set_project_meta.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,40 +1,40 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$project_id = intval(sanitize_text_field($project_id));\n-$project_data = $wppmfunction->get_project($project_id);\n-$users = explode(',',$project_data['users']);\n-$users = array_unique($users);\n-if(!empty($users)){\n-  foreach($users as $user){\n-    if(!empty($user)){\n-      $user_role = sanitize_text_field(wp_unslash($_POST['wppm_select_user_role_'.$user]));\n-      $project_user = $wpdb->get_row(\n-        $wpdb->prepare(\n-          \"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",\n-          absint($project_id),\n-          absint($user)\n-        )\n-      );\n-      if(!empty($project_user)){\n-        $project_user_id = absint($project_user->id);\n-        $values=array(\n-          'role_id'=> absint($user_role),\n-          'assigned_by'=>absint($current_user->ID)\n-        );\n-        $wpdb->update($wpdb->prefix.'wppm_project_users', $values, array('id'=>$project_user_id));\n-      }else{\n-        $wpdb->insert( \n-          $wpdb->prefix . 'wppm_project_users', \n-          array(\n-            'proj_id' => absint($project_id),\n-            'user_id' => absint($user),\n-            'role_id' => absint($user_role),\n-            'assigned_by' =>absint($current_user->ID)\n-        ) );\n-      }\n-    }\n-  }\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$project_id = intval(sanitize_text_field($project_id));\r\n+$project_data = $wppmfunction->get_project($project_id);\r\n+$users = explode(',',$project_data['users']);\r\n+$users = array_unique($users);\r\n+if(!empty($users)){\r\n+  foreach($users as $user){\r\n+    if(!empty($user)){\r\n+      $user_role = sanitize_text_field(wp_unslash($_POST['wppm_select_user_role_'.$user]));\r\n+      $project_user = $wpdb->get_row(\r\n+        $wpdb->prepare(\r\n+          \"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",\r\n+          absint($project_id),\r\n+          absint($user)\r\n+        )\r\n+      );\r\n+      if(!empty($project_user)){\r\n+        $project_user_id = absint($project_user->id);\r\n+        $values=array(\r\n+          'role_id'=> absint($user_role),\r\n+          'assigned_by'=>absint($current_user->ID)\r\n+        );\r\n+        $wpdb->update($wpdb->prefix.'wppm_project_users', $values, array('id'=>$project_user_id));\r\n+      }else{\r\n+        $wpdb->insert( \r\n+          $wpdb->prefix . 'wppm_project_users', \r\n+          array(\r\n+            'proj_id' => absint($project_id),\r\n+            'user_id' => absint($user),\r\n+            'role_id' => absint($user_role),\r\n+            'assigned_by' =>absint($current_user->ID)\r\n+        ) );\r\n+      }\r\n+    }\r\n+  }\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,45 +1,45 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-ob_start();\n-?>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_priority_name\">\u003C?php echo esc_html_e('Priority Name','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert priority name. Please make sure priority name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_priority_name\" class=\"form-control\" name=\"wppm_priority_name\" value=\"\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_priority_color\">\u003C?php echo esc_html_e('Color','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Text color of status.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_priority_color\" class=\"wppm_color_picker\" name=\"wppm_priority_color\" value=\"#ffffff\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_priority_bg_color\">\u003C?php echo esc_html_e('Background Color','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Background color of priority.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_priority_bg_color\" class=\"wppm_color_picker\" name=\"wppm_priority_bg_color\" value=\"#1E90FF\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_add_priority' ) ); ?>\">\n-\u003Cscript>\n-  jQuery(document).ready(function(){\n-      jQuery('.wppm_color_picker').wpColorPicker();\n-  });\n-\u003C\u002Fscript>\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_add_priority();\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php \n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n-echo wp_json_encode($output);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_priority_name\">\u003C?php echo esc_html_e('Priority Name','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert priority name. Please make sure priority name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_priority_name\" class=\"form-control\" name=\"wppm_priority_name\" value=\"\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_priority_color\">\u003C?php echo esc_html_e('Color','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Text color of status.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_priority_color\" class=\"wppm_color_picker\" name=\"wppm_priority_color\" value=\"#ffffff\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_priority_bg_color\">\u003C?php echo esc_html_e('Background Color','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Background color of priority.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_priority_bg_color\" class=\"wppm_color_picker\" name=\"wppm_priority_bg_color\" value=\"#1E90FF\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_add_priority' ) ); ?>\">\r\n+\u003Cscript>\r\n+  jQuery(document).ready(function(){\r\n+      jQuery('.wppm_color_picker').wpColorPicker();\r\n+  });\r\n+\u003C\u002Fscript>\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_add_priority();\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php \r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n+echo wp_json_encode($output);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_category.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_category.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_category.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_category.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,17 +1,17 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options')|| ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-if ( check_ajax_referer( 'wppm_delete_category', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$cat_id = isset($_POST) && isset($_POST['cat_id']) ? absint(sanitize_text_field(wp_unslash($_POST['cat_id']))) : 0;\n-$cat_id = absint($cat_id);\n-if (!$cat_id) {exit;}\n-    \n-$wpdb->delete($wpdb->prefix.'wppm_project_categories', array( 'id' => absint($cat_id)));\n-\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options')|| ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+if ( check_ajax_referer( 'wppm_delete_category', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$cat_id = isset($_POST) && isset($_POST['cat_id']) ? absint(sanitize_text_field(wp_unslash($_POST['cat_id']))) : 0;\r\n+$cat_id = absint($cat_id);\r\n+if (!$cat_id) {exit;}\r\n+    \r\n+$wpdb->delete($wpdb->prefix.'wppm_project_categories', array( 'id' => absint($cat_id)));\r\n+\r\n+\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,13 +1,13 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-if ( check_ajax_referer( 'wppm_delete_status', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$status_id = isset($_POST) && isset($_POST['status_id']) ? absint(sanitize_text_field(wp_unslash($_POST['status_id']))) : 0;\n-if (!$status_id) {exit;}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+if ( check_ajax_referer( 'wppm_delete_status', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$status_id = isset($_POST) && isset($_POST['status_id']) ? absint(sanitize_text_field(wp_unslash($_POST['status_id']))) : 0;\r\n+if (!$status_id) {exit;}\r\n $wpdb->delete($wpdb->prefix.'wppm_project_statuses', array( 'id' => absint($status_id)));\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_task_priority.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_task_priority.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_task_priority.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_task_priority.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,15 +1,15 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-if ( check_ajax_referer( 'wppm_delete_task_priority', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$priority_id = isset($_POST) && isset($_POST['priority_id']) ? absint(sanitize_text_field(wp_unslash($_POST['priority_id']))) : 0;\n-if (!$priority_id) {exit;}\n-\n-$wpdb->delete($wpdb->prefix.'wppm_task_priorities', array( 'id' => absint($priority_id)));\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+if ( check_ajax_referer( 'wppm_delete_task_priority', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$priority_id = isset($_POST) && isset($_POST['priority_id']) ? absint(sanitize_text_field(wp_unslash($_POST['priority_id']))) : 0;\r\n+if (!$priority_id) {exit;}\r\n+\r\n+$wpdb->delete($wpdb->prefix.'wppm_task_priorities', array( 'id' => absint($priority_id)));\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_task_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_task_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_task_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_delete_task_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,15 +1,15 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-if ( check_ajax_referer( 'wppm_delete_task_status', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$status_id = isset($_POST) && isset($_POST['status_id']) ? absint(sanitize_text_field(wp_unslash($_POST['status_id']))) : 0;\n-if (!$status_id) {exit;}\n-\n-$wpdb->delete($wpdb->prefix.'wppm_task_statuses', array( 'id' => absint($status_id)));\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+if ( check_ajax_referer( 'wppm_delete_task_status', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$status_id = isset($_POST) && isset($_POST['status_id']) ? absint(sanitize_text_field(wp_unslash($_POST['status_id']))) : 0;\r\n+if (!$status_id) {exit;}\r\n+\r\n+$wpdb->delete($wpdb->prefix.'wppm_task_statuses', array( 'id' => absint($status_id)));\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,28 +1,28 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user;\n-if (!($current_user->ID && $current_user->has_cap('manage_options')|| ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-ob_start();\n-?>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_cat_name\">\u003C?php echo esc_html_e('Category Name','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert category name. Please make sure category name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_cat_name\" class=\"form-control\" name=\"wppm_cat_name\" value=\"\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_add_category' ) ); ?>\">\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_add_category();\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php \n-$footer = ob_get_clean();\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-echo wp_json_encode($output);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options')|| ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_cat_name\">\u003C?php echo esc_html_e('Category Name','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert category name. Please make sure category name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_cat_name\" class=\"form-control\" name=\"wppm_cat_name\" value=\"\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_add_category' ) ); ?>\">\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_add_category();\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php \r\n+$footer = ob_get_clean();\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+echo wp_json_encode($output);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,45 +1,45 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-ob_start();\n-?>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_proj_status_name\">\u003C?php echo esc_html_e('Status Name','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert status name. Please make sure status name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_proj_status_name\" class=\"form-control\" name=\"wppm_proj_status_name\" value=\"\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_proj_status_color\">\u003C?php echo esc_html_e('Color','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Text color of status.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_proj_status_color\" class=\"wppm_color_picker\" name=\"wppm_status_color\" value=\"#ffffff\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_proj_status_bg_color\">\u003C?php echo esc_html_e('Background Color','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Background color of status.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_proj_status_bg_color\" class=\"wppm_color_picker\" name=\"wppm_status_bg_color\" value=\"#1E90FF\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_add_status' ) ); ?>\">\n-\u003Cscript>\n-  jQuery(document).ready(function(){\n-      jQuery('.wppm_color_picker').wpColorPicker();\n-  });\n-\u003C\u002Fscript>\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_add_proj_status();\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php \n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n-echo wp_json_encode($output);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_proj_status_name\">\u003C?php echo esc_html_e('Status Name','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert status name. Please make sure status name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_proj_status_name\" class=\"form-control\" name=\"wppm_proj_status_name\" value=\"\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_proj_status_color\">\u003C?php echo esc_html_e('Color','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Text color of status.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_proj_status_color\" class=\"wppm_color_picker\" name=\"wppm_status_color\" value=\"#ffffff\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_proj_status_bg_color\">\u003C?php echo esc_html_e('Background Color','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Background color of status.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_proj_status_bg_color\" class=\"wppm_color_picker\" name=\"wppm_status_bg_color\" value=\"#1E90FF\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_add_status' ) ); ?>\">\r\n+\u003Cscript>\r\n+  jQuery(document).ready(function(){\r\n+      jQuery('.wppm_color_picker').wpColorPicker();\r\n+  });\r\n+\u003C\u002Fscript>\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_add_proj_status();\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php \r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n+echo wp_json_encode($output);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,47 +1,47 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-} \n-ob_start();\n-?>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_task_status_name\">\u003C?php echo esc_html_e('Status Name','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert status name. Please make sure status name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_task_status_name\" class=\"form-control\" name=\"wppm_task_status_name\" value=\"\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_task_status_color\">\u003C?php echo esc_html_e('Color','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Text color of status.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_task_status_color\" class=\"wppm_color_picker\" name=\"wppm_task_status_color\" value=\"#ffffff\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_task_status_bg_color\">\u003C?php echo esc_html_e('Background Color','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Background color of status.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_task_status_bg_color\" class=\"wppm_color_picker\" name=\"wppm_task_status_bg_color\" value=\"#1E90FF\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_add_task_status' ) ); ?>\">\n-\u003Cscript>\n-  jQuery(document).ready(function(){\n-      jQuery('.wppm_color_picker').wpColorPicker();\n-  });\n-\u003C\u002Fscript>\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_add_task_status();\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php \n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+} \r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_task_status_name\">\u003C?php echo esc_html_e('Status Name','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert status name. Please make sure status name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_task_status_name\" class=\"form-control\" name=\"wppm_task_status_name\" value=\"\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_task_status_color\">\u003C?php echo esc_html_e('Color','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Text color of status.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_task_status_color\" class=\"wppm_color_picker\" name=\"wppm_task_status_color\" value=\"#ffffff\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_task_status_bg_color\">\u003C?php echo esc_html_e('Background Color','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Background color of status.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_task_status_bg_color\" class=\"wppm_color_picker\" name=\"wppm_task_status_bg_color\" value=\"#1E90FF\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_add_task_status' ) ); ?>\">\r\n+\u003Cscript>\r\n+  jQuery(document).ready(function(){\r\n+      jQuery('.wppm_color_picker').wpColorPicker();\r\n+  });\r\n+\u003C\u002Fscript>\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_add_task_status();\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php \r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,89 +1,89 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$wppm_public_projects_permission = get_option('wppm_public_projects_permission');\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-$project_statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses\");\n-$task_statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses\");\n-$wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend');\n-if(!empty($wppm_hide_proj_statuses_from_frontend)){\n-  $wppm_hide_proj_statuses_from_frontend = explode(',', $wppm_hide_proj_statuses_from_frontend);\n-} else {\n-  $wppm_hide_proj_statuses_from_frontend = array();\n-}\n-$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');\n-if(!empty($wppm_hide_task_statuses_from_frontend)){\n-  $wppm_hide_task_statuses_from_frontend = explode(',', $wppm_hide_task_statuses_from_frontend);\n-} else {\n-  $wppm_hide_task_statuses_from_frontend = array();\n-}\n-?>\n-\u003Cform id=\"wppm_frm_advanced_settings\" method=\"post\" action=\"javascript:wppm_set_advanced_settings();\">\n-    \u003Cdiv class=\"wppm-help-container\">\n-      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fhelp\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\n-    \u003C\u002Fdiv>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Public Projects','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable permission for create public project.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cselect class=\"form-control\" name=\"wppm_public_projects_permission\" id=\"wppm_public_projects_permission\">\n-        \u003Coption value=\"1\" \u003C?php selected( $wppm_public_projects_permission, '1' ); ?>>\n-          \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\n-        \u003C\u002Foption>\n-        \u003Coption value=\"0\" \u003C?php selected( $wppm_public_projects_permission, '0' ); ?>>\n-          \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\n-        \u003C\u002Foption>\n-    \u003C\u002Fselect>\n-    \u003Chr>\n-    \u003Cbr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Default hide selected statuses projects from frontend ','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cdiv class=\"checkboxes-group\">\n-        \u003C?php\n-        foreach ( $project_statuses as $status ) :\n-            ?>\n-            \u003Cdiv class=\"inner-group\">\n-                \u003C?php\n-                  $checked = (in_array($status->id, $wppm_hide_proj_statuses_from_frontend)) ? 'checked' : '';\n-                ?>\n-                \u003Cinput name=\"wppm_hide_proj_statuses_from_frontend[]\" type=\"checkbox\" \u003C?php echo esc_attr( $checked ); ?> value=\"\u003C?php echo esc_attr( $status->id ); ?>\">\n-                \u003C?php echo esc_attr( $status->name ); ?>\n-            \u003C\u002Fdiv>\n-            \u003C?php\n-        endforeach;\n-        ?>\n-    \u003C\u002Fdiv>\n-    \u003Chr>\n-    \u003Cbr>\n-     \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e(' Default hide selected statuses tasks from frontend ','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cdiv class=\"checkboxes-group\">\n-        \u003C?php\n-        foreach ( $task_statuses as $status ) :\n-            ?>\n-            \u003Cdiv class=\"inner-group\">\n-                \u003C?php\n-                  $checked = (in_array($status->id, $wppm_hide_task_statuses_from_frontend)) ? 'checked' : '';\n-                ?>\n-                \u003Cinput name=\"wppm_hide_task_statuses_from_frontend[]\" type=\"checkbox\" \u003C?php echo esc_attr( $checked ); ?> value=\"\u003C?php echo esc_attr( $status->id ); ?>\">\n-                \u003C?php echo esc_attr( $status->name ); ?>\n-            \u003C\u002Fdiv>\n-            \u003C?php\n-        endforeach;\n-        ?>\n-    \u003C\u002Fdiv>\n-    \u003Chr>\n-    \u003Cbr>\n-    \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_advanced_settings\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_advanced_settings' ) ); ?>\">\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$wppm_public_projects_permission = get_option('wppm_public_projects_permission');\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+$project_statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses\");\r\n+$task_statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses\");\r\n+$wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend');\r\n+if(!empty($wppm_hide_proj_statuses_from_frontend)){\r\n+  $wppm_hide_proj_statuses_from_frontend = explode(',', $wppm_hide_proj_statuses_from_frontend);\r\n+} else {\r\n+  $wppm_hide_proj_statuses_from_frontend = array();\r\n+}\r\n+$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');\r\n+if(!empty($wppm_hide_task_statuses_from_frontend)){\r\n+  $wppm_hide_task_statuses_from_frontend = explode(',', $wppm_hide_task_statuses_from_frontend);\r\n+} else {\r\n+  $wppm_hide_task_statuses_from_frontend = array();\r\n+}\r\n+?>\r\n+\u003Cform id=\"wppm_frm_advanced_settings\" method=\"post\" action=\"javascript:wppm_set_advanced_settings();\">\r\n+    \u003Cdiv class=\"wppm-help-container\">\r\n+      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fhelp\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Public Projects','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable permission for create public project.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_public_projects_permission\" id=\"wppm_public_projects_permission\">\r\n+        \u003Coption value=\"1\" \u003C?php selected( $wppm_public_projects_permission, '1' ); ?>>\r\n+          \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\r\n+        \u003C\u002Foption>\r\n+        \u003Coption value=\"0\" \u003C?php selected( $wppm_public_projects_permission, '0' ); ?>>\r\n+          \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\r\n+        \u003C\u002Foption>\r\n+    \u003C\u002Fselect>\r\n+    \u003Chr>\r\n+    \u003Cbr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Default hide selected statuses projects from frontend ','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cdiv class=\"checkboxes-group\">\r\n+        \u003C?php\r\n+        foreach ( $project_statuses as $status ) :\r\n+            ?>\r\n+            \u003Cdiv class=\"inner-group\">\r\n+                \u003C?php\r\n+                  $checked = (in_array($status->id, $wppm_hide_proj_statuses_from_frontend)) ? 'checked' : '';\r\n+                ?>\r\n+                \u003Cinput name=\"wppm_hide_proj_statuses_from_frontend[]\" type=\"checkbox\" \u003C?php echo esc_attr( $checked ); ?> value=\"\u003C?php echo esc_attr( $status->id ); ?>\">\r\n+                \u003C?php echo esc_attr( $status->name ); ?>\r\n+            \u003C\u002Fdiv>\r\n+            \u003C?php\r\n+        endforeach;\r\n+        ?>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Chr>\r\n+    \u003Cbr>\r\n+     \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e(' Default hide selected statuses tasks from frontend ','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cdiv class=\"checkboxes-group\">\r\n+        \u003C?php\r\n+        foreach ( $task_statuses as $status ) :\r\n+            ?>\r\n+            \u003Cdiv class=\"inner-group\">\r\n+                \u003C?php\r\n+                  $checked = (in_array($status->id, $wppm_hide_task_statuses_from_frontend)) ? 'checked' : '';\r\n+                ?>\r\n+                \u003Cinput name=\"wppm_hide_task_statuses_from_frontend[]\" type=\"checkbox\" \u003C?php echo esc_attr( $checked ); ?> value=\"\u003C?php echo esc_attr( $status->id ); ?>\">\r\n+                \u003C?php echo esc_attr( $status->name ); ?>\r\n+            \u003C\u002Fdiv>\r\n+            \u003C?php\r\n+        endforeach;\r\n+        ?>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Chr>\r\n+    \u003Cbr>\r\n+    \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_advanced_settings\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_advanced_settings' ) ); ?>\">\r\n \u003C\u002Fform>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,68 +1,68 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$settings = get_option(\"wppm-ap-grid-view\");\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-?>\n-\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-grid_view\">\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Menu button', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Hover color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"menu-button-bg-color\" value=\"\u003C?php echo esc_attr( $settings['menu-button-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"menu-button-hover-color\" value=\"\u003C?php echo esc_attr( $settings['menu-button-hover-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"menu-button-text-color\" value=\"\u003C?php echo esc_attr( $settings['menu-button-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Kanban card', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"grid-background-color\" value=\"\u003C?php echo esc_attr( $settings['grid-background-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"grid-header-text-color\" value=\"\u003C?php echo esc_attr( $settings['grid-header-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_grid_view\">\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_grid_view' ) ); ?>\">\n-    \u003Cdiv class=\"setting-footer-actions\">\n-        \u003Cbutton \n-            class=\"wppm-submit-btn\"\n-            onclick=\"wppm_set_ap_grid_view();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\n-            \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-        \u003Cbutton \n-            class=\"wppm_reset_btn\" id=\"wppm_reset_ap_grid_view_btn\"\n-            onclick=\"wppm_reset_ap_grid_view(this);\">\n-        \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-        \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_grid_view_ajax_nonce\" id=\"wppm_reset_ap_grid_view_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_grid_view' ) ); ?>\">\n-        \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \n-    \u003C\u002Fdiv>\n-\u003C\u002Fform>\n-\u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\n-\u003Cstyle>\n-    .wppm-ap-table td {padding: 5px;}\n-    .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\n-\u003C\u002Fstyle>\n-\u003C?php\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$settings = get_option(\"wppm-ap-grid-view\");\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+?>\r\n+\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-grid_view\">\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Menu button', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Hover color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"menu-button-bg-color\" value=\"\u003C?php echo esc_attr( $settings['menu-button-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"menu-button-hover-color\" value=\"\u003C?php echo esc_attr( $settings['menu-button-hover-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"menu-button-text-color\" value=\"\u003C?php echo esc_attr( $settings['menu-button-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Kanban card', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"grid-background-color\" value=\"\u003C?php echo esc_attr( $settings['grid-background-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"grid-header-text-color\" value=\"\u003C?php echo esc_attr( $settings['grid-header-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_grid_view\">\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_grid_view' ) ); ?>\">\r\n+    \u003Cdiv class=\"setting-footer-actions\">\r\n+        \u003Cbutton \r\n+            class=\"wppm-submit-btn\"\r\n+            onclick=\"wppm_set_ap_grid_view();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\r\n+            \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+        \u003Cbutton \r\n+            class=\"wppm_reset_btn\" id=\"wppm_reset_ap_grid_view_btn\"\r\n+            onclick=\"wppm_reset_ap_grid_view(this);\">\r\n+        \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+        \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_grid_view_ajax_nonce\" id=\"wppm_reset_ap_grid_view_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_grid_view' ) ); ?>\">\r\n+        \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \r\n+    \u003C\u002Fdiv>\r\n+\u003C\u002Fform>\r\n+\u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\r\n+\u003Cstyle>\r\n+    .wppm-ap-table td {padding: 5px;}\r\n+    .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\r\n+\u003C\u002Fstyle>\r\n+\u003C?php\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,129 +1,129 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-$settings = get_option(\"wppm-ap-individual-project\");\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-?>\n-\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-individual_pl\">\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Menu buttons', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Hover color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"menu-button-bg-color\" value=\"\u003C?php echo esc_attr( $settings['menu-button-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"menu-button-hover-color\" value=\"\u003C?php echo esc_attr( $settings['menu-button-hover-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"menu-button-text-color\" value=\"\u003C?php echo esc_attr( $settings['menu-button-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Comment thread', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Primary color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Secondary color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-primary-color\" value=\"\u003C?php echo esc_attr( $settings['comment-primary-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-secondary-color\" value=\"\u003C?php echo esc_attr( $settings['comment-secondary-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Comment Date', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Hover color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-date-color\" value=\"\u003C?php echo esc_attr( $settings['comment-date-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-date-hover-color\" value=\"\u003C?php echo esc_attr( $settings['comment-date-hover-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Comment send button', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-send-btn-bg-color\" value=\"\u003C?php echo esc_attr( $settings['comment-send-btn-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-send-btn-color\" value=\"\u003C?php echo esc_attr( $settings['comment-send-btn-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Widget Header', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-header-bg-color\" value=\"\u003C?php echo esc_attr( $settings['widget-header-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-header-text-color\" value=\"\u003C?php echo esc_attr( $settings['widget-header-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Widget Body', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Label color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-body-bg-color\" value=\"\u003C?php echo esc_attr( $settings['widget-body-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-body-label-color\" value=\"\u003C?php echo esc_attr( $settings['widget-body-label-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-body-text-color\" value=\"\u003C?php echo esc_attr( $settings['widget-body-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_individual_proj\">\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_individual_proj' ) ); ?>\">\n-    \u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\n-    \u003Cstyle>\n-        .wppm-ap-table td {padding: 5px;}\n-        .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\n-    \u003C\u002Fstyle>\n-\u003C\u002Fform>\n-\u003Cdiv class=\"setting-footer-actions\">\n-    \u003Cbutton \n-        class=\"wppm-submit-btn\"\n-        onclick=\"wppm_set_ap_individual_proj();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\n-        \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-    \u003Cbutton \n-        class=\"wppm_reset_btn\" id=\"wppm_reset_ap_individual_proj_btn\"\n-        onclick=\"wppm_reset_ap_individual_proj(this);\">\n-    \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-    \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_individual_proj_ajax_nonce\" id=\"wppm_reset_ap_individual_proj_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_individual_proj' ) ); ?>\">\n-    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \n-\u003C\u002Fdiv>\n-\u003C?php\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+$settings = get_option(\"wppm-ap-individual-project\");\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+?>\r\n+\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-individual_pl\">\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Menu buttons', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Hover color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"menu-button-bg-color\" value=\"\u003C?php echo esc_attr( $settings['menu-button-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"menu-button-hover-color\" value=\"\u003C?php echo esc_attr( $settings['menu-button-hover-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"menu-button-text-color\" value=\"\u003C?php echo esc_attr( $settings['menu-button-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Comment thread', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Primary color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Secondary color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-primary-color\" value=\"\u003C?php echo esc_attr( $settings['comment-primary-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-secondary-color\" value=\"\u003C?php echo esc_attr( $settings['comment-secondary-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Comment Date', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Hover color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-date-color\" value=\"\u003C?php echo esc_attr( $settings['comment-date-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-date-hover-color\" value=\"\u003C?php echo esc_attr( $settings['comment-date-hover-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Comment send button', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-send-btn-bg-color\" value=\"\u003C?php echo esc_attr( $settings['comment-send-btn-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-send-btn-color\" value=\"\u003C?php echo esc_attr( $settings['comment-send-btn-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Widget Header', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-header-bg-color\" value=\"\u003C?php echo esc_attr( $settings['widget-header-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-header-text-color\" value=\"\u003C?php echo esc_attr( $settings['widget-header-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Widget Body', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Label color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-body-bg-color\" value=\"\u003C?php echo esc_attr( $settings['widget-body-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-body-label-color\" value=\"\u003C?php echo esc_attr( $settings['widget-body-label-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-body-text-color\" value=\"\u003C?php echo esc_attr( $settings['widget-body-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_individual_proj\">\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_individual_proj' ) ); ?>\">\r\n+    \u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\r\n+    \u003Cstyle>\r\n+        .wppm-ap-table td {padding: 5px;}\r\n+        .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\r\n+    \u003C\u002Fstyle>\r\n+\u003C\u002Fform>\r\n+\u003Cdiv class=\"setting-footer-actions\">\r\n+    \u003Cbutton \r\n+        class=\"wppm-submit-btn\"\r\n+        onclick=\"wppm_set_ap_individual_proj();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\r\n+        \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+    \u003Cbutton \r\n+        class=\"wppm_reset_btn\" id=\"wppm_reset_ap_individual_proj_btn\"\r\n+        onclick=\"wppm_reset_ap_individual_proj(this);\">\r\n+    \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+    \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_individual_proj_ajax_nonce\" id=\"wppm_reset_ap_individual_proj_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_individual_proj' ) ); ?>\">\r\n+    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \r\n+\u003C\u002Fdiv>\r\n+\u003C?php\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,112 +1,112 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$settings = get_option(\"wppm-ap-individual-task\");\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-?>\n-\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-individual_tl\">\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Comment thread', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Primary color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Secondary color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-primary-color\" value=\"\u003C?php echo esc_attr( $settings['comment-primary-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-secondary-color\" value=\"\u003C?php echo esc_attr( $settings['comment-secondary-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Comment Date', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Hover color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-date-color\" value=\"\u003C?php echo esc_attr( $settings['comment-date-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-date-hover-color\" value=\"\u003C?php echo esc_attr( $settings['comment-date-hover-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Comment send button', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-send-btn-bg-color\" value=\"\u003C?php echo esc_attr( $settings['comment-send-btn-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-send-btn-color\" value=\"\u003C?php echo esc_attr( $settings['comment-send-btn-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Widget Header', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-header-bg-color\" value=\"\u003C?php echo esc_attr( $settings['widget-header-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-header-text-color\" value=\"\u003C?php echo esc_attr( $settings['widget-header-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Widget Body', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Label color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-body-bg-color\" value=\"\u003C?php echo esc_attr( $settings['widget-body-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-body-label-color\" value=\"\u003C?php echo esc_attr( $settings['widget-body-label-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-body-text-color\" value=\"\u003C?php echo esc_attr( $settings['widget-body-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_individual_task\">\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_individual_task' ) ); ?>\">\n-    \u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\n-    \u003Cstyle>\n-        .wppm-ap-table td {padding: 5px;}\n-        .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\n-    \u003C\u002Fstyle>\n-\u003C\u002Fform>\n-\u003Cdiv class=\"setting-footer-actions\">\n-    \u003Cbutton \n-        class=\"wppm-submit-btn\"\n-        onclick=\"wppm_set_ap_individual_task();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\n-        \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-    \u003Cbutton \n-        class=\"wppm_reset_btn\" id=\"wppm_reset_ap_individual_task_btn\"\n-        onclick=\"wppm_reset_ap_individual_task(this);\">\n-    \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-    \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_individual_task_ajax_nonce\" id=\"wppm_reset_ap_individual_task_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_individual_task' ) ); ?>\">\n-    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \n-\u003C\u002Fdiv>\n-\u003C?php\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$settings = get_option(\"wppm-ap-individual-task\");\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+?>\r\n+\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-individual_tl\">\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Comment thread', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Primary color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Secondary color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-primary-color\" value=\"\u003C?php echo esc_attr( $settings['comment-primary-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-secondary-color\" value=\"\u003C?php echo esc_attr( $settings['comment-secondary-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Comment Date', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Hover color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-date-color\" value=\"\u003C?php echo esc_attr( $settings['comment-date-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-date-hover-color\" value=\"\u003C?php echo esc_attr( $settings['comment-date-hover-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Comment send button', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-send-btn-bg-color\" value=\"\u003C?php echo esc_attr( $settings['comment-send-btn-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"comment-send-btn-color\" value=\"\u003C?php echo esc_attr( $settings['comment-send-btn-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Widget Header', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-header-bg-color\" value=\"\u003C?php echo esc_attr( $settings['widget-header-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-header-text-color\" value=\"\u003C?php echo esc_attr( $settings['widget-header-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Widget Body', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Label color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-body-bg-color\" value=\"\u003C?php echo esc_attr( $settings['widget-body-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-body-label-color\" value=\"\u003C?php echo esc_attr( $settings['widget-body-label-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"widget-body-text-color\" value=\"\u003C?php echo esc_attr( $settings['widget-body-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_individual_task\">\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_individual_task' ) ); ?>\">\r\n+    \u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\r\n+    \u003Cstyle>\r\n+        .wppm-ap-table td {padding: 5px;}\r\n+        .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\r\n+    \u003C\u002Fstyle>\r\n+\u003C\u002Fform>\r\n+\u003Cdiv class=\"setting-footer-actions\">\r\n+    \u003Cbutton \r\n+        class=\"wppm-submit-btn\"\r\n+        onclick=\"wppm_set_ap_individual_task();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\r\n+        \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+    \u003Cbutton \r\n+        class=\"wppm_reset_btn\" id=\"wppm_reset_ap_individual_task_btn\"\r\n+        onclick=\"wppm_reset_ap_individual_task(this);\">\r\n+    \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+    \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_individual_task_ajax_nonce\" id=\"wppm_reset_ap_individual_task_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_individual_task' ) ); ?>\">\r\n+    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \r\n+\u003C\u002Fdiv>\r\n+\u003C?php\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,95 +1,95 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$settings = get_option(\"wppm-ap-modal\");\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-?>\n-\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-modal_popup\">\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Popup header', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"header-bg-color\" value=\"\u003C?php echo esc_attr( $settings['header-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"header-text-color\" value=\"\u003C?php echo esc_attr( $settings['header-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Popup body', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Label color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"body-bg-color\" value=\"\u003C?php echo esc_attr( $settings['body-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"body-label-color\" value=\"\u003C?php echo esc_attr( $settings['body-label-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"body-text-color\" value=\"\u003C?php echo esc_attr( $settings['body-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Popup footer', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"footer-bg-color\" value=\"\u003C?php echo esc_attr( $settings['footer-bg-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Action button', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"action-btn-bg-color\" value=\"\u003C?php echo esc_attr( $settings['action-btn-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"action-btn-text-color\" value=\"\u003C?php echo esc_attr( $settings['action-btn-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_modal_popup\">\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_modal_popup' ) ); ?>\">\n-    \u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\n-    \u003Cstyle>\n-        .wppm-ap-table td {padding: 5px;}\n-        .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\n-    \u003C\u002Fstyle>\n-\u003C\u002Fform>\n-\u003Cdiv class=\"setting-footer-actions\">\n-    \u003Cbutton \n-        class=\"wppm-submit-btn\"\n-        onclick=\"wppm_set_ap_modal_popup();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\n-        \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-    \u003Cbutton \n-        class=\"wppm_reset_btn\" id=\"wppm_reset_ap_modal_popup_btn\"\n-        onclick=\"wppm_reset_ap_modal_popup(this);\">\n-    \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-    \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_modal_popup_nonce\" id=\"wppm_reset_ap_modal_popup_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_modal_popup' ) ); ?>\">\n-    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \n-\u003C\u002Fdiv>\n-\u003C?php\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+?>\r\n+\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-modal_popup\">\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Popup header', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"header-bg-color\" value=\"\u003C?php echo esc_attr( $settings['header-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"header-text-color\" value=\"\u003C?php echo esc_attr( $settings['header-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Popup body', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Label color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"body-bg-color\" value=\"\u003C?php echo esc_attr( $settings['body-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"body-label-color\" value=\"\u003C?php echo esc_attr( $settings['body-label-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"body-text-color\" value=\"\u003C?php echo esc_attr( $settings['body-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Popup footer', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"footer-bg-color\" value=\"\u003C?php echo esc_attr( $settings['footer-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Action button', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"action-btn-bg-color\" value=\"\u003C?php echo esc_attr( $settings['action-btn-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"action-btn-text-color\" value=\"\u003C?php echo esc_attr( $settings['action-btn-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_modal_popup\">\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_modal_popup' ) ); ?>\">\r\n+    \u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\r\n+    \u003Cstyle>\r\n+        .wppm-ap-table td {padding: 5px;}\r\n+        .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\r\n+    \u003C\u002Fstyle>\r\n+\u003C\u002Fform>\r\n+\u003Cdiv class=\"setting-footer-actions\">\r\n+    \u003Cbutton \r\n+        class=\"wppm-submit-btn\"\r\n+        onclick=\"wppm_set_ap_modal_popup();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\r\n+        \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+    \u003Cbutton \r\n+        class=\"wppm_reset_btn\" id=\"wppm_reset_ap_modal_popup_btn\"\r\n+        onclick=\"wppm_reset_ap_modal_popup(this);\">\r\n+    \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+    \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_modal_popup_nonce\" id=\"wppm_reset_ap_modal_popup_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_modal_popup' ) ); ?>\">\r\n+    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \r\n+\u003C\u002Fdiv>\r\n+\u003C?php\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_appearance_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_appearance_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_appearance_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_appearance_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,75 +1,75 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$current_tab = isset( $_POST['current_tab'] ) ? sanitize_text_field( ( $_POST['current_tab'] ) ) : 'project-list'; \u002F\u002F phpcs:ignore\n-  $tabs        = apply_filters(\n-    'wppm_appearance_tabs',\n-    array(\n-      'project-list'           => array(\n-        'slug'     => 'project_list',\n-        'label'    => esc_attr__( 'Project List', 'taskbuilder' ),\n-        'callback' => 'wppm_get_ap_proj_list',\n-      ),\n-      'task-list'       => array(\n-        'slug'     => 'task_list',\n-        'label'    => esc_attr__( 'Task List', 'taskbuilder' ),\n-        'callback' => 'wppm_get_ap_task_list',\n-      ),\n-      'individual-project' => array(\n-        'slug'     => 'individual_proj',\n-        'label'    => esc_attr__( 'Individual Project', 'taskbuilder' ),\n-        'callback' => 'wppm_get_ap_individual_proj',\n-      ),\n-      'individual-task' => array(\n-        'slug'     => 'individual_task',\n-        'label'    => esc_attr__( 'Individual Task', 'taskbuilder' ),\n-        'callback' => 'wppm_get_ap_individual_task',\n-      ),\n-      'modal-popup'       => array(\n-        'slug'     => 'modal_popup',\n-        'label'    => esc_attr__( 'Modal Popup', 'taskbuilder' ),\n-        'callback' => 'wppm_get_ap_modal_popup',\n-      ),\n-      'grid-view'   => array(\n-        'slug'     => 'grid_view',\n-        'label'    => esc_attr__( 'Grid View', 'taskbuilder' ),\n-        'callback' => 'wppm_get_ap_grid_view',\n-      ),\n-      'settings'   => array(\n-        'slug'     => 'settings',\n-        'label'    => esc_attr__( 'Settings', 'taskbuilder' ),\n-        'callback' => 'wppm_get_ap_settings',\n-      )\n-    )\n-  );\n-?>\n-\u003Cdiv class=\"wppm-setting-tab-container\">\n-  \u003C?php\n-  foreach ( $tabs as $key => $tab ) :\n-    $active = $current_tab === $key ? 'active' : ''\n-    ?>\u003Cbutton \n-        class=\"\u003C?php echo esc_attr( $key . ' ' . $active ); ?>\"\n-        onclick=\"\u003C?php echo esc_attr( $tab['callback'] ); ?>('\u003C?php echo esc_js( $key ); ?>');\">\n-        \u003C?php echo esc_html( $tab['label'] ); ?>\n-      \u003C\u002Fbutton>\n-    \u003C?php\n-  endforeach;\n-  ?>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"row\">\n-  \u003Cdiv class=\"col-sm-12 wppm-setting-section-body\">\n-  \u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003Cscript>\n-  jQuery(document).ready(function(){\n-      wppm_get_ap_proj_list('project-list');\n-  });\n-\u003C\u002Fscript>\n-\u003C?php\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$current_tab = isset( $_POST['current_tab'] ) ? sanitize_text_field( ( $_POST['current_tab'] ) ) : 'project-list'; \u002F\u002F phpcs:ignore\r\n+  $tabs        = apply_filters(\r\n+    'wppm_appearance_tabs',\r\n+    array(\r\n+      'project-list'           => array(\r\n+        'slug'     => 'project_list',\r\n+        'label'    => esc_attr__( 'Project List', 'taskbuilder' ),\r\n+        'callback' => 'wppm_get_ap_proj_list',\r\n+      ),\r\n+      'task-list'       => array(\r\n+        'slug'     => 'task_list',\r\n+        'label'    => esc_attr__( 'Task List', 'taskbuilder' ),\r\n+        'callback' => 'wppm_get_ap_task_list',\r\n+      ),\r\n+      'individual-project' => array(\r\n+        'slug'     => 'individual_proj',\r\n+        'label'    => esc_attr__( 'Individual Project', 'taskbuilder' ),\r\n+        'callback' => 'wppm_get_ap_individual_proj',\r\n+      ),\r\n+      'individual-task' => array(\r\n+        'slug'     => 'individual_task',\r\n+        'label'    => esc_attr__( 'Individual Task', 'taskbuilder' ),\r\n+        'callback' => 'wppm_get_ap_individual_task',\r\n+      ),\r\n+      'modal-popup'       => array(\r\n+        'slug'     => 'modal_popup',\r\n+        'label'    => esc_attr__( 'Modal Popup', 'taskbuilder' ),\r\n+        'callback' => 'wppm_get_ap_modal_popup',\r\n+      ),\r\n+      'grid-view'   => array(\r\n+        'slug'     => 'grid_view',\r\n+        'label'    => esc_attr__( 'Grid View', 'taskbuilder' ),\r\n+        'callback' => 'wppm_get_ap_grid_view',\r\n+      ),\r\n+      'settings'   => array(\r\n+        'slug'     => 'settings',\r\n+        'label'    => esc_attr__( 'Settings', 'taskbuilder' ),\r\n+        'callback' => 'wppm_get_ap_settings',\r\n+      )\r\n+    )\r\n+  );\r\n+?>\r\n+\u003Cdiv class=\"wppm-setting-tab-container\">\r\n+  \u003C?php\r\n+  foreach ( $tabs as $key => $tab ) :\r\n+    $active = $current_tab === $key ? 'active' : ''\r\n+    ?>\u003Cbutton \r\n+        class=\"\u003C?php echo esc_attr( $key . ' ' . $active ); ?>\"\r\n+        onclick=\"\u003C?php echo esc_attr( $tab['callback'] ); ?>('\u003C?php echo esc_js( $key ); ?>');\">\r\n+        \u003C?php echo esc_html( $tab['label'] ); ?>\r\n+      \u003C\u002Fbutton>\r\n+    \u003C?php\r\n+  endforeach;\r\n+  ?>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"row\">\r\n+  \u003Cdiv class=\"col-sm-12 wppm-setting-section-body\">\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003Cscript>\r\n+  jQuery(document).ready(function(){\r\n+      wppm_get_ap_proj_list('project-list');\r\n+  });\r\n+\u003C\u002Fscript>\r\n+\u003C?php\r\n wp_die();?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,96 +1,96 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$settings = get_option(\"wppm-ap-project-list\");\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-?>\n-\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-pl\">\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List header', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-background-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List item (odd)', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wpsc-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-odd-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-odd-background-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-odd-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-odd-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List item (even)', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-even-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-even-background-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-even-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-even-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List item (hover)', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-hover-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-hover-background-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-hover-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-hover-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_proj_list\">\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_proj_list' ) ); ?>\">\n-    \u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\n-    \u003Cstyle>\n-        .wppm-ap-table td {padding: 5px;}\n-        .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\n-    \u003C\u002Fstyle>\n-\n-\u003C\u002Fform>\n-\u003Cdiv class=\"setting-footer-actions\">\n-    \u003Cbutton \n-        class=\"wppm-submit-btn\"\n-        onclick=\"wppm_set_ap_proj_list();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\n-        \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-    \u003Cbutton \n-        class=\"wppm_reset_btn\" id=\"wppm_reset_ap_proj_list_btn\"\n-        onclick=\"wppm_reset_ap_proj_list(this);\">\n-    \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-    \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_proj_list_nonce\" id=\"wppm_reset_ap_proj_list_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_proj_list' ) ); ?>\">\n-    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \n-\u003C\u002Fdiv>\n-\u003C?php\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$settings = get_option(\"wppm-ap-project-list\");\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+?>\r\n+\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-pl\">\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List header', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-background-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List item (odd)', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wpsc-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-odd-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-odd-background-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-odd-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-odd-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List item (even)', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-even-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-even-background-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-even-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-even-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List item (hover)', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-hover-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-hover-background-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-hover-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-hover-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_proj_list\">\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_proj_list' ) ); ?>\">\r\n+    \u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\r\n+    \u003Cstyle>\r\n+        .wppm-ap-table td {padding: 5px;}\r\n+        .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\r\n+    \u003C\u002Fstyle>\r\n+\r\n+\u003C\u002Fform>\r\n+\u003Cdiv class=\"setting-footer-actions\">\r\n+    \u003Cbutton \r\n+        class=\"wppm-submit-btn\"\r\n+        onclick=\"wppm_set_ap_proj_list();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\r\n+        \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+    \u003Cbutton \r\n+        class=\"wppm_reset_btn\" id=\"wppm_reset_ap_proj_list_btn\"\r\n+        onclick=\"wppm_reset_ap_proj_list(this);\">\r\n+    \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+    \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_proj_list_nonce\" id=\"wppm_reset_ap_proj_list_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_proj_list' ) ); ?>\">\r\n+    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \r\n+\u003C\u002Fdiv>\r\n+\u003C?php\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,82 +1,82 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-$settings = get_option(\"wppm-ap-settings\");\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-?>\n-\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-settings\">\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Tab', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"tab-background-color\" value=\"\u003C?php echo esc_attr( $settings['tab-background-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"tab-text-color\" value=\"\u003C?php echo esc_attr( $settings['tab-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Add new button', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'hover color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"add-new-button-bg-color\" value=\"\u003C?php echo esc_attr( $settings['add-new-button-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"add-new-button-text-color\" value=\"\u003C?php echo esc_attr( $settings['add-new-button-text-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"add-new-button-hover-color\" value=\"\u003C?php echo esc_attr( $settings['add-new-button-hover-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Save changes button', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"save-changes-button-bg-color\" value=\"\u003C?php echo esc_attr( $settings['save-changes-button-bg-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"save-changes-button-text-color\" value=\"\u003C?php echo esc_attr( $settings['save-changes-button-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_settings\">\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_settings' ) ); ?>\">\n-    \u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\n-    \u003Cstyle>\n-        .wppm-ap-table td {padding: 5px;}\n-        .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\n-    \u003C\u002Fstyle>\n-\u003C\u002Fform>\n-\u003Cdiv class=\"setting-footer-actions\">\n-    \u003Cbutton \n-        class=\"wppm-submit-btn\"\n-        onclick=\"wppm_set_ap_settings();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\n-        \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-    \u003Cbutton \n-        class=\"wppm_reset_btn\" id=\"wppm_reset_ap_settings_btn\"\n-        onclick=\"wppm_reset_ap_settings();\">\n-    \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-    \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_settings_nonce\" id=\"wppm_reset_ap_settings_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_settings' ) ); ?>\">\n-    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \n-\u003C\u002Fdiv>\n-\u003C?php\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+$settings = get_option(\"wppm-ap-settings\");\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+?>\r\n+\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-settings\">\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Tab', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"tab-background-color\" value=\"\u003C?php echo esc_attr( $settings['tab-background-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"tab-text-color\" value=\"\u003C?php echo esc_attr( $settings['tab-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Add new button', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'hover color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"add-new-button-bg-color\" value=\"\u003C?php echo esc_attr( $settings['add-new-button-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"add-new-button-text-color\" value=\"\u003C?php echo esc_attr( $settings['add-new-button-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"add-new-button-hover-color\" value=\"\u003C?php echo esc_attr( $settings['add-new-button-hover-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Save changes button', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"save-changes-button-bg-color\" value=\"\u003C?php echo esc_attr( $settings['save-changes-button-bg-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"save-changes-button-text-color\" value=\"\u003C?php echo esc_attr( $settings['save-changes-button-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_settings\">\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_settings' ) ); ?>\">\r\n+    \u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\r\n+    \u003Cstyle>\r\n+        .wppm-ap-table td {padding: 5px;}\r\n+        .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\r\n+    \u003C\u002Fstyle>\r\n+\u003C\u002Fform>\r\n+\u003Cdiv class=\"setting-footer-actions\">\r\n+    \u003Cbutton \r\n+        class=\"wppm-submit-btn\"\r\n+        onclick=\"wppm_set_ap_settings();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\r\n+        \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+    \u003Cbutton \r\n+        class=\"wppm_reset_btn\" id=\"wppm_reset_ap_settings_btn\"\r\n+        onclick=\"wppm_reset_ap_settings();\">\r\n+    \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+    \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_settings_nonce\" id=\"wppm_reset_ap_settings_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_settings' ) ); ?>\">\r\n+    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \r\n+\u003C\u002Fdiv>\r\n+\u003C?php\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,112 +1,112 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-$settings = get_option(\"wppm-ap-task-list\");\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-?>\n-\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-tl\">\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List header button', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Hover color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-button-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-button-background-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-button-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-button-text-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-button-hover-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-button-hover-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List header', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-background-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List item (odd)', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wpsc-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-odd-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-odd-background-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-odd-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-odd-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List item (even)', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-even-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-even-background-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-even-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-even-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List item (hover)', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Ctable class=\"wppm-ap-table\">\n-            \u003Ctr>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-            \u003Ctr>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-hover-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-hover-background-color'] ); ?>\">\u003C\u002Ftd>\n-                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-hover-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-hover-text-color'] ); ?>\">\u003C\u002Ftd>\n-            \u003C\u002Ftr>\n-        \u003C\u002Ftable>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_task_list\">\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_task_list' ) ); ?>\">\n-    \u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\n-    \u003Cstyle>\n-        .wppm-ap-table td {padding: 5px;}\n-        .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\n-    \u003C\u002Fstyle>\n-\u003C\u002Fform>\n-\u003Cdiv class=\"setting-footer-actions\">\n-    \u003Cbutton \n-        class=\"wppm-submit-btn\"\n-        onclick=\"wppm_set_ap_task_list();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\n-        \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-    \u003Cbutton \n-        class=\"wppm_reset_btn\" id=\"wppm_reset_ap_task_list_btn\"\n-        onclick=\"wppm_reset_ap_task_list(this);\">\n-    \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\n-    \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_task_list_ajax_nonce\" id=\"wppm_reset_ap_task_list_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_task_list' ) ); ?>\">\n-    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \n-\u003C\u002Fdiv>\n-\u003C?php\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+$settings = get_option(\"wppm-ap-task-list\");\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+?>\r\n+\u003Cform action=\"#\" onsubmit=\"return false;\" class=\"wppm-frm-ap-tl\">\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List header button', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Hover color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-button-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-button-background-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-button-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-button-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-button-hover-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-button-hover-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List header', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-background-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-header-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-header-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List item (odd)', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wpsc-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-odd-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-odd-background-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-odd-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-odd-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List item (even)', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-even-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-even-background-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-even-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-even-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'List item (hover)', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Ctable class=\"wppm-ap-table\">\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Background color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+                \u003Ctd>\u003C?php esc_attr_e( 'Text color', 'taskbuilder' ); ?>\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+            \u003Ctr>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-hover-background-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-hover-background-color'] ); ?>\">\u003C\u002Ftd>\r\n+                \u003Ctd>\u003Cinput class=\"wppm-color-picker\" type=\"text\" name=\"list-item-hover-text-color\" value=\"\u003C?php echo esc_attr( $settings['list-item-hover-text-color'] ); ?>\">\u003C\u002Ftd>\r\n+            \u003C\u002Ftr>\r\n+        \u003C\u002Ftable>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_ap_task_list\">\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_ap_task_list' ) ); ?>\">\r\n+    \u003Cscript>jQuery('.wppm-color-picker').wpColorPicker();\u003C\u002Fscript>\r\n+    \u003Cstyle>\r\n+        .wppm-ap-table td {padding: 5px;}\r\n+        .wppm-ap-table table, .wppm-ap-table td {border: 1px solid #c3c3c3;}\r\n+    \u003C\u002Fstyle>\r\n+\u003C\u002Fform>\r\n+\u003Cdiv class=\"setting-footer-actions\">\r\n+    \u003Cbutton \r\n+        class=\"wppm-submit-btn\"\r\n+        onclick=\"wppm_set_ap_task_list();\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\r\n+        \u003C?php esc_attr_e( 'Save Changes', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+    \u003Cbutton \r\n+        class=\"wppm_reset_btn\" id=\"wppm_reset_ap_task_list_btn\"\r\n+        onclick=\"wppm_reset_ap_task_list(this);\">\r\n+    \u003C?php esc_attr_e( 'Reset default', 'taskbuilder' ); ?>\u003C\u002Fbutton>\r\n+    \u003Cinput type=\"hidden\" name=\"wppm_reset_ap_task_list_ajax_nonce\" id=\"wppm_reset_ap_task_list_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_reset_ap_task_list' ) ); ?>\">\r\n+    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \r\n+\u003C\u002Fdiv>\r\n+\u003C?php\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,169 +1,169 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-} \n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-$orderby_sql = sanitize_sql_orderby( \"load_order ASC\");\n-$categories = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories ORDER BY $orderby_sql\");\n-$cat_arr = array();\n-$cat_arr = $wpdb->get_results(\"SELECT id FROM {$wpdb->prefix}wppm_project_categories\");\n-if(!empty($cat_arr)){\n-\tforeach($cat_arr as $key=>$val){\n-\t\t$categories_array= json_decode(wp_json_encode($val));\n-\t\t$cat_ids[] = $categories_array->id;\n-\t}\n-\t$cat_ids = $wppmfunction->sanitize_array($cat_ids);\n-}\n-?>\n-\u003Cdiv id=\"wppm_category_container\">\n-\t\u003Cdiv class=\"wppm-help-container\">\n-      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs\u002Fproject-categories\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\n-    \u003C\u002Fdiv>\n-\t\u003Cspan class=\"wppm-title\">\n-\t\t\u003C?php echo esc_html_e('Project Categories','taskbuilder');?>\n-\t\u003C\u002Fspan>\n-\t\u003Cspan class=\"wppm-add-new-btn wppm_btn btn-primary\" onclick=\"wppm_get_add_category()\" style=\"margin-left:10px;background-color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-bg-color'])?>;color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-text-color'])?>;\">\u003C?php echo esc_html_e('+Add New','taskbuilder');?>\u003C\u002Fspan>\n-\t\u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\n-\t\u003Cul class=\"wppm-sortable\">\n-\t\t\u003C?php if(!empty($categories)){\n-\t\t\t\tforeach ($categories as $key=>$value){ ?>\n-\t\t\t\t\u003Cli class=\"ui-state-default\" data-id=\"\u003C?php echo intval(esc_attr($value->id))?>\">\n-\t\t\t\t\t\u003Cdiv class=\"wppm-flex-container\" style=\"border:1px solid #ddd\">\n-\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-handle\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ffilter.svg'); ?>\" alt=\"filter\">\u003C\u002Fdiv>\n-\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-label\">\u003C?php echo esc_html($value->name) ?>\u003C\u002Fdiv>\n-\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-edit\" onclick=\"wppm_get_edit_category(\u003C?php echo esc_attr($value->id) ?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fdiv>\n-\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-delete\" onclick=\"wppm_delete_category(\u003C?php echo esc_attr($value->id) ?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fdiv>\n-\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\u003C\u002Fli>\n-\t\t\t\t\u003C?php } \n-\t\t\t}\n-\t\t?>\n-\t\u003C\u002Ful>\n-\t\u003Cinput type=\"hidden\" name=\"wppm_cat_order_ajax_nonce\" id=\"wppm_cat_order_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_category_order' ) ); ?>\">\n-\t\u003Cinput type=\"hidden\" name=\"wppm_delete_cat_ajax_nonce\" id=\"wppm_delete_cat_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_delete_category' ) ); ?>\">\n-\u003Cdiv>\n-\u003Cstyle>\n-\t#wppm_category_container .wppm-add-new-btn:hover{\n-\tbackground-color: \u003C?php echo esc_attr($wppm_ap_settings['add-new-button-hover-color'])?>!important;\n-}\n-\u003C\u002Fstyle>\n-\u003Cscript>\n-\tjQuery(function(){\n-    \tjQuery( \".wppm-sortable\" ).sortable({ handle: '.wppm-sortable-handle' });\n-\t\tjQuery( \".wppm-sortable\" ).on(\"sortupdate\",function(event,ui){\n-\t\t\tvar keys = jQuery(this).sortable( \"toArray\", {attribute: 'data-id'} );\n-\t\t\tvar order = \u003C?php echo (!empty($cat_ids)) ? wp_json_encode($cat_ids):\"0\" ?>;\n-\t\t\tvar result = {};\n-\t\t\tfor (var i = 0; i \u003C keys.length; i++){\n-\t\t\t\tresult[keys[i]] = order[i];\n-\t\t\t}\n-\t\t\tvar data = {\n-\t\t\t\taction: 'wppm_set_category_order',\n-\t\t\t\tload_orders : result,\n-\t\t\t\t_ajax_nonce:jQuery('#wppm_cat_order_ajax_nonce').val()\n-\t\t\t};\n-\t\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\t\tvar response = JSON.parse(response_str);\n-\t\t\t\tif (response.sucess_status==1) {\n-\t\t\t\t\tjQuery('#wppm_alert_success').show();\n-\t\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-\t\t\t\t}\n-\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 2000);\n-\t\t  \t});\n-\t\t});\n-\t});\n-\n-\tfunction wppm_get_add_category(){\n-\t\twppm_modal_open('Add Category'); \n-\t\tvar data = {\n-\t\t\taction: 'wppm_get_add_category'\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\tjQuery('#wppm_popup_body').html(response.body);\n-\t\t\tjQuery('#wppm_popup_footer').html(response.footer);\n-\t\t\tjQuery('#wppm_cat_name').focus();\n-\t\t});\n-\t}\n-\n-\tfunction wppm_set_add_category(){\n-\t\tvar cat_name = jQuery('#wppm_cat_name').val().trim();\n-\t\tif (cat_name.length == 0) {\n-\t\t\tjQuery('#wppm_cat_name').val('').focus();\n-\t\t\treturn;\n-\t\t}\n-\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\n-\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\n-\t\tvar data = {\n-\t\t\taction: 'wppm_set_add_category',\n-\t\t\tcat_name : cat_name,\n-\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\twppm_modal_close();\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\twppm_get_category_settings();\n-\t\t\tif (response.sucess_status=='1') {\n-\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-\t\t\t\twppm_get_category_settings();\n-\t\t\t} else {\n-\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\n-\t\t\t}\n-\t\t});\n-\t}\n-\n-\tfunction wppm_get_edit_category(cat_id){\n-\t\twppm_modal_open(wppm_admin.edit_category);\n-\t\tvar data = {\n-\t\t\taction : 'wppm_get_edit_category',\n-\t\t\tcat_id:cat_id\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\tjQuery('#wppm_popup_body').html(response.body);\n-\t\t\tjQuery('#wppm_popup_footer').html(response.footer);\n-\t\t\tjQuery('#wppm_cat_name').focus();\n-\t\t});\n-\t}\n-\n-\tfunction wppm_set_edit_category(cat_id){\n-\t\tvar cat_name = jQuery('#wppm_edit_cat_name').val().trim();\n-\t\tif (cat_name.length == 0) {\n-\t\t\tjQuery('#wppm_edit_cat_name').val('').focus();\n-\t\t\treturn;\n-\t\t}\n-\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\n-\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\n-\t\tvar data = {\n-\t\t\taction : 'wppm_set_edit_category',\n-\t\t\tcat_id:cat_id,\n-\t\t\tcat_name:cat_name,\n-\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\twppm_modal_close();\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\twppm_get_category_settings();\n-\t\t\tif (response.sucess_status=='1') {\n-\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-\t\t\t\twppm_get_category_settings();\n-\t\t\t} else {\n-\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\n-\t\t\t}\n-\t\t});\n-\t}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+} \r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+$orderby_sql = sanitize_sql_orderby( \"load_order ASC\");\r\n+$categories = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories ORDER BY $orderby_sql\");\r\n+$cat_arr = array();\r\n+$cat_arr = $wpdb->get_results(\"SELECT id FROM {$wpdb->prefix}wppm_project_categories\");\r\n+if(!empty($cat_arr)){\r\n+\tforeach($cat_arr as $key=>$val){\r\n+\t\t$categories_array= json_decode(wp_json_encode($val));\r\n+\t\t$cat_ids[] = $categories_array->id;\r\n+\t}\r\n+\t$cat_ids = $wppmfunction->sanitize_array($cat_ids);\r\n+}\r\n+?>\r\n+\u003Cdiv id=\"wppm_category_container\">\r\n+\t\u003Cdiv class=\"wppm-help-container\">\r\n+      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs\u002Fproject-categories\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\r\n+    \u003C\u002Fdiv>\r\n+\t\u003Cspan class=\"wppm-title\">\r\n+\t\t\u003C?php echo esc_html_e('Project Categories','taskbuilder');?>\r\n+\t\u003C\u002Fspan>\r\n+\t\u003Cspan class=\"wppm-add-new-btn wppm_btn btn-primary\" onclick=\"wppm_get_add_category()\" style=\"margin-left:10px;background-color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-bg-color'])?>;color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-text-color'])?>;\">\u003C?php echo esc_html_e('+Add New','taskbuilder');?>\u003C\u002Fspan>\r\n+\t\u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\r\n+\t\u003Cul class=\"wppm-sortable\">\r\n+\t\t\u003C?php if(!empty($categories)){\r\n+\t\t\t\tforeach ($categories as $key=>$value){ ?>\r\n+\t\t\t\t\u003Cli class=\"ui-state-default\" data-id=\"\u003C?php echo intval(esc_attr($value->id))?>\">\r\n+\t\t\t\t\t\u003Cdiv class=\"wppm-flex-container\" style=\"border:1px solid #ddd\">\r\n+\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-handle\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ffilter.svg'); ?>\" alt=\"filter\">\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-label\">\u003C?php echo esc_html($value->name) ?>\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-edit\" onclick=\"wppm_get_edit_category(\u003C?php echo esc_attr($value->id) ?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-delete\" onclick=\"wppm_delete_category(\u003C?php echo esc_attr($value->id) ?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fdiv>\r\n+\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\u003C\u002Fli>\r\n+\t\t\t\t\u003C?php } \r\n+\t\t\t}\r\n+\t\t?>\r\n+\t\u003C\u002Ful>\r\n+\t\u003Cinput type=\"hidden\" name=\"wppm_cat_order_ajax_nonce\" id=\"wppm_cat_order_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_category_order' ) ); ?>\">\r\n+\t\u003Cinput type=\"hidden\" name=\"wppm_delete_cat_ajax_nonce\" id=\"wppm_delete_cat_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_delete_category' ) ); ?>\">\r\n+\u003Cdiv>\r\n+\u003Cstyle>\r\n+\t#wppm_category_container .wppm-add-new-btn:hover{\r\n+\tbackground-color: \u003C?php echo esc_attr($wppm_ap_settings['add-new-button-hover-color'])?>!important;\r\n+}\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript>\r\n+\tjQuery(function(){\r\n+    \tjQuery( \".wppm-sortable\" ).sortable({ handle: '.wppm-sortable-handle' });\r\n+\t\tjQuery( \".wppm-sortable\" ).on(\"sortupdate\",function(event,ui){\r\n+\t\t\tvar keys = jQuery(this).sortable( \"toArray\", {attribute: 'data-id'} );\r\n+\t\t\tvar order = \u003C?php echo (!empty($cat_ids)) ? wp_json_encode($cat_ids):\"0\" ?>;\r\n+\t\t\tvar result = {};\r\n+\t\t\tfor (var i = 0; i \u003C keys.length; i++){\r\n+\t\t\t\tresult[keys[i]] = order[i];\r\n+\t\t\t}\r\n+\t\t\tvar data = {\r\n+\t\t\t\taction: 'wppm_set_category_order',\r\n+\t\t\t\tload_orders : result,\r\n+\t\t\t\t_ajax_nonce:jQuery('#wppm_cat_order_ajax_nonce').val()\r\n+\t\t\t};\r\n+\t\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\t\tif (response.sucess_status==1) {\r\n+\t\t\t\t\tjQuery('#wppm_alert_success').show();\r\n+\t\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+\t\t\t\t}\r\n+\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 2000);\r\n+\t\t  \t});\r\n+\t\t});\r\n+\t});\r\n+\r\n+\tfunction wppm_get_add_category(){\r\n+\t\twppm_modal_open('Add Category'); \r\n+\t\tvar data = {\r\n+\t\t\taction: 'wppm_get_add_category'\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\tjQuery('#wppm_popup_body').html(response.body);\r\n+\t\t\tjQuery('#wppm_popup_footer').html(response.footer);\r\n+\t\t\tjQuery('#wppm_cat_name').focus();\r\n+\t\t});\r\n+\t}\r\n+\r\n+\tfunction wppm_set_add_category(){\r\n+\t\tvar cat_name = jQuery('#wppm_cat_name').val().trim();\r\n+\t\tif (cat_name.length == 0) {\r\n+\t\t\tjQuery('#wppm_cat_name').val('').focus();\r\n+\t\t\treturn;\r\n+\t\t}\r\n+\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\r\n+\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\r\n+\t\tvar data = {\r\n+\t\t\taction: 'wppm_set_add_category',\r\n+\t\t\tcat_name : cat_name,\r\n+\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\twppm_modal_close();\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\twppm_get_category_settings();\r\n+\t\t\tif (response.sucess_status=='1') {\r\n+\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t\twppm_get_category_settings();\r\n+\t\t\t} else {\r\n+\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t}\r\n+\t\t});\r\n+\t}\r\n+\r\n+\tfunction wppm_get_edit_category(cat_id){\r\n+\t\twppm_modal_open(wppm_admin.edit_category);\r\n+\t\tvar data = {\r\n+\t\t\taction : 'wppm_get_edit_category',\r\n+\t\t\tcat_id:cat_id\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\tjQuery('#wppm_popup_body').html(response.body);\r\n+\t\t\tjQuery('#wppm_popup_footer').html(response.footer);\r\n+\t\t\tjQuery('#wppm_cat_name').focus();\r\n+\t\t});\r\n+\t}\r\n+\r\n+\tfunction wppm_set_edit_category(cat_id){\r\n+\t\tvar cat_name = jQuery('#wppm_edit_cat_name').val().trim();\r\n+\t\tif (cat_name.length == 0) {\r\n+\t\t\tjQuery('#wppm_edit_cat_name').val('').focus();\r\n+\t\t\treturn;\r\n+\t\t}\r\n+\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\r\n+\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\r\n+\t\tvar data = {\r\n+\t\t\taction : 'wppm_set_edit_category',\r\n+\t\t\tcat_id:cat_id,\r\n+\t\t\tcat_name:cat_name,\r\n+\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\twppm_modal_close();\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\twppm_get_category_settings();\r\n+\t\t\tif (response.sucess_status=='1') {\r\n+\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t\twppm_get_category_settings();\r\n+\t\t\t} else {\r\n+\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t}\r\n+\t\t});\r\n+\t}\r\n \u003C\u002Fscript>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,78 +1,78 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-} \n-\n-$wppm_create_tasks_coworkers_permission = get_option('wppm_allow_coworkers_create_task');\n-$wppm_allow_coworkers_add_checklist = get_option('wppm_allow_coworkers_add_checklist');\n-$wppm_allow_coworkers_assign_users = get_option('wppm_allow_coworkers_assign_users');\n-$wppm_allow_coworkers_change_status = get_option('wppm_allow_coworkers_change_status');\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-?>\n-\u003Cform id=\"wppm_frm_coworkers_permission_settings\" method=\"post\" action=\"javascript:wppm_set_coworkers_permission_settings();\">\n-    \u003Cdiv class=\"wppm-help-container\">\n-      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs-category\u002Fsettings\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\n-    \u003C\u002Fdiv>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Allow co-workers to create tasks','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable permission for co-workers to create tasks.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cselect class=\"form-control\" name=\"wppm_create_tasks_coworkers_permission\" id=\"wppm_create_tasks_coworkers_permission\">\n-      \u003Coption value=\"1\" \u003C?php selected( $wppm_create_tasks_coworkers_permission, '1' ); ?>>\n-        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-      \u003Coption value=\"0\" \u003C?php selected( $wppm_create_tasks_coworkers_permission, '0' ); ?>>\n-        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-\n-    \u003C\u002Fselect>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Allow co-workers to add checklists','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable permission for co-workers to add checklists.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cselect class=\"form-control\" name=\"wppm_allow_coworkers_add_checklist\" id=\"wppm_allow_coworkers_add_checklist\">\n-      \u003Coption value=\"1\" \u003C?php selected( $wppm_allow_coworkers_add_checklist, '1' ); ?>>\n-        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-      \u003Coption value=\"0\" \u003C?php selected( $wppm_allow_coworkers_add_checklist, '0' ); ?>>\n-        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-    \u003C\u002Fselect>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Allow co-workers to change task status','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable permission for co-workers to change task status.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cselect class=\"form-control\" name=\"wppm_allow_coworkers_change_task_status\" id=\"wppm_allow_coworkers_change_task_status\">\n-      \u003Coption value=\"1\" \u003C?php selected( $wppm_allow_coworkers_change_status, '1' ); ?>>\n-        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-      \u003Coption value=\"0\" \u003C?php selected( $wppm_allow_coworkers_change_status, '0' ); ?>>\n-        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-    \u003C\u002Fselect>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Allow co-workers to assign task users','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable permission for co-workers to assign task users.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cselect class=\"form-control\" name=\"wppm_allow_coworkers_assign_users\" id=\"wppm_allow_coworkers_assign_users\">\n-      \u003Coption value=\"1\" \u003C?php selected( $wppm_allow_coworkers_assign_users, '1' ); ?>>\n-        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-      \u003Coption value=\"0\" \u003C?php selected( $wppm_allow_coworkers_assign_users, '0' ); ?>>\n-        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-    \u003C\u002Fselect>\n-    \u003Chr>\n-    \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_coworkers_permission_settings\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_coworkers_permission_settings' ) ); ?>\">\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+} \r\n+\r\n+$wppm_create_tasks_coworkers_permission = get_option('wppm_allow_coworkers_create_task');\r\n+$wppm_allow_coworkers_add_checklist = get_option('wppm_allow_coworkers_add_checklist');\r\n+$wppm_allow_coworkers_assign_users = get_option('wppm_allow_coworkers_assign_users');\r\n+$wppm_allow_coworkers_change_status = get_option('wppm_allow_coworkers_change_status');\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+?>\r\n+\u003Cform id=\"wppm_frm_coworkers_permission_settings\" method=\"post\" action=\"javascript:wppm_set_coworkers_permission_settings();\">\r\n+    \u003Cdiv class=\"wppm-help-container\">\r\n+      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs-category\u002Fsettings\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Allow co-workers to create tasks','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable permission for co-workers to create tasks.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_create_tasks_coworkers_permission\" id=\"wppm_create_tasks_coworkers_permission\">\r\n+      \u003Coption value=\"1\" \u003C?php selected( $wppm_create_tasks_coworkers_permission, '1' ); ?>>\r\n+        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+      \u003Coption value=\"0\" \u003C?php selected( $wppm_create_tasks_coworkers_permission, '0' ); ?>>\r\n+        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+\r\n+    \u003C\u002Fselect>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Allow co-workers to add checklists','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable permission for co-workers to add checklists.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_allow_coworkers_add_checklist\" id=\"wppm_allow_coworkers_add_checklist\">\r\n+      \u003Coption value=\"1\" \u003C?php selected( $wppm_allow_coworkers_add_checklist, '1' ); ?>>\r\n+        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+      \u003Coption value=\"0\" \u003C?php selected( $wppm_allow_coworkers_add_checklist, '0' ); ?>>\r\n+        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+    \u003C\u002Fselect>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Allow co-workers to change task status','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable permission for co-workers to change task status.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_allow_coworkers_change_task_status\" id=\"wppm_allow_coworkers_change_task_status\">\r\n+      \u003Coption value=\"1\" \u003C?php selected( $wppm_allow_coworkers_change_status, '1' ); ?>>\r\n+        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+      \u003Coption value=\"0\" \u003C?php selected( $wppm_allow_coworkers_change_status, '0' ); ?>>\r\n+        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+    \u003C\u002Fselect>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Allow co-workers to assign task users','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable permission for co-workers to assign task users.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_allow_coworkers_assign_users\" id=\"wppm_allow_coworkers_assign_users\">\r\n+      \u003Coption value=\"1\" \u003C?php selected( $wppm_allow_coworkers_assign_users, '1' ); ?>>\r\n+        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+      \u003Coption value=\"0\" \u003C?php selected( $wppm_allow_coworkers_assign_users, '0' ); ?>>\r\n+        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+    \u003C\u002Fselect>\r\n+    \u003Chr>\r\n+    \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_coworkers_permission_settings\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_coworkers_permission_settings' ) ); ?>\">\r\n \u003C\u002Fform>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,32 +1,32 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options')|| ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-\n-$cat_id = isset($_POST) && isset($_POST['cat_id']) ? absint(sanitize_text_field(wp_unslash($_POST['cat_id']))) : 0;\n-if (!$cat_id) {exit;}\n-$category = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories WHERE id = %d\", $cat_id));\n-ob_start();\n-?>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_edit_cat_name\">\u003C?php echo esc_html_e('Category Name','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert category name.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_edit_cat_name\" class=\"form-control\" name=\"wppm_edit_cat_name\" value=\"\u003C?php echo esc_html($category->name);?>\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_category' ) ); ?>\">\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_edit_category(\u003C?php echo (esc_attr($cat_id))?>);\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php \n-$footer = ob_get_clean();\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options')|| ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+\r\n+$cat_id = isset($_POST) && isset($_POST['cat_id']) ? absint(sanitize_text_field(wp_unslash($_POST['cat_id']))) : 0;\r\n+if (!$cat_id) {exit;}\r\n+$category = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_categories WHERE id = %d\", $cat_id));\r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_edit_cat_name\">\u003C?php echo esc_html_e('Category Name','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert category name.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_edit_cat_name\" class=\"form-control\" name=\"wppm_edit_cat_name\" value=\"\u003C?php echo esc_html($category->name);?>\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_category' ) ); ?>\">\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_edit_category(\u003C?php echo (esc_attr($cat_id))?>);\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php \r\n+$footer = ob_get_clean();\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,50 +1,50 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-} \n-$priority_id = isset($_POST) && isset($_POST['priority_id']) ? absint(sanitize_text_field(wp_unslash($_POST['priority_id']))) : 0;\n-if (!$priority_id) {exit;}\n-$priority = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities WHERE id = %d\", $priority_id));\n-ob_start();\n-?>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_edit_priority_name\">\u003C?php echo esc_html_e('Priority Name','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert priority name. Please make sure priority name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_edit_priority_name\" class=\"form-control\" name=\"wppm_edit_priority_name\" value=\"\u003C?php echo esc_attr($priority->name)?>\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_edit_priority_color\">\u003C?php echo esc_html_e('Color','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Text color of priority.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_edit_priority_color\" class=\"wppm_edit_color_picker\" name=\"wppm_edit_priority_color\" value=\"\u003C?php echo esc_attr($priority->color)?>\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_edit_priority_bg_color\">\u003C?php echo esc_html_e('Background Color','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Background color of priority.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_edit_priority_bg_color\" class=\"wppm_edit_color_picker\" name=\"wppm_edit_priority_bg_color\" value=\"\u003C?php echo esc_attr($priority->bg_color)?>\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cscript>\n-  jQuery(document).ready(function(){\n-      jQuery('.wppm_edit_color_picker').wpColorPicker();\n-  });\n-\u003C\u002Fscript>\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_edit_priority(\u003C?php echo (esc_attr($priority_id))?>);\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_priority' ) ); ?>\">\n-\u003C?php \n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+} \r\n+$priority_id = isset($_POST) && isset($_POST['priority_id']) ? absint(sanitize_text_field(wp_unslash($_POST['priority_id']))) : 0;\r\n+if (!$priority_id) {exit;}\r\n+$priority = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities WHERE id = %d\", $priority_id));\r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_edit_priority_name\">\u003C?php echo esc_html_e('Priority Name','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert priority name. Please make sure priority name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_edit_priority_name\" class=\"form-control\" name=\"wppm_edit_priority_name\" value=\"\u003C?php echo esc_attr($priority->name)?>\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_edit_priority_color\">\u003C?php echo esc_html_e('Color','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Text color of priority.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_edit_priority_color\" class=\"wppm_edit_color_picker\" name=\"wppm_edit_priority_color\" value=\"\u003C?php echo esc_attr($priority->color)?>\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_edit_priority_bg_color\">\u003C?php echo esc_html_e('Background Color','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Background color of priority.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_edit_priority_bg_color\" class=\"wppm_edit_color_picker\" name=\"wppm_edit_priority_bg_color\" value=\"\u003C?php echo esc_attr($priority->bg_color)?>\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cscript>\r\n+  jQuery(document).ready(function(){\r\n+      jQuery('.wppm_edit_color_picker').wpColorPicker();\r\n+  });\r\n+\u003C\u002Fscript>\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_edit_priority(\u003C?php echo (esc_attr($priority_id))?>);\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_priority' ) ); ?>\">\r\n+\u003C?php \r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,49 +1,49 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-\n-$status_id = isset($_POST) && isset($_POST['status_id']) ? absint(sanitize_text_field(wp_unslash($_POST['status_id']))) : 0;\n-if (!$status_id) {exit;}\n-$status = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses WHERE id = %d\", $status_id));\n-ob_start();\n-?>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_edit_status_name\">\u003C?php echo esc_html_e('Status Name','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert status name. Please make sure status name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_edit_status_name\" class=\"form-control\" name=\"wppm_edit_status_name\" value=\"\u003C?php echo esc_attr($status->name)?>\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_edit_status_color\">\u003C?php  echo esc_html_e('Color','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php  echo esc_html_e('Text color of status.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_edit_status_color\" class=\"wppm_edit_color_picker\" name=\"wppm_edit_status_color\" value=\"\u003C?php echo esc_attr($status->color)?>\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_edit_status_bg_color\">\u003C?php echo esc_html_e('Background Color','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Background color of status.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_edit_status_bg_color\" class=\"wppm_edit_color_picker\" name=\"wppm_edit_status_bg_color\" value=\"\u003C?php echo esc_attr($status->bg_color)?>\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_status' ) ); ?>\">\n-\u003Cscript>\n-  jQuery(document).ready(function(){\n-      jQuery('.wppm_edit_color_picker').wpColorPicker();\n-  });\n-\u003C\u002Fscript>\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_edit_status(\u003C?php echo (esc_js($status_id))?>);\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php \n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n-echo wp_json_encode($output);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+\r\n+$status_id = isset($_POST) && isset($_POST['status_id']) ? absint(sanitize_text_field(wp_unslash($_POST['status_id']))) : 0;\r\n+if (!$status_id) {exit;}\r\n+$status = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses WHERE id = %d\", $status_id));\r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_edit_status_name\">\u003C?php echo esc_html_e('Status Name','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert status name. Please make sure status name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_edit_status_name\" class=\"form-control\" name=\"wppm_edit_status_name\" value=\"\u003C?php echo esc_attr($status->name)?>\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_edit_status_color\">\u003C?php  echo esc_html_e('Color','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php  echo esc_html_e('Text color of status.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_edit_status_color\" class=\"wppm_edit_color_picker\" name=\"wppm_edit_status_color\" value=\"\u003C?php echo esc_attr($status->color)?>\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_edit_status_bg_color\">\u003C?php echo esc_html_e('Background Color','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Background color of status.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_edit_status_bg_color\" class=\"wppm_edit_color_picker\" name=\"wppm_edit_status_bg_color\" value=\"\u003C?php echo esc_attr($status->bg_color)?>\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_status' ) ); ?>\">\r\n+\u003Cscript>\r\n+  jQuery(document).ready(function(){\r\n+      jQuery('.wppm_edit_color_picker').wpColorPicker();\r\n+  });\r\n+\u003C\u002Fscript>\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_popup_action\" onclick=\"wppm_set_edit_status(\u003C?php echo (esc_js($status_id))?>);\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php \r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n+echo wp_json_encode($output);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,50 +1,50 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-} \n-$status_id = isset($_POST) && isset($_POST['status_id']) ? absint(sanitize_text_field(wp_unslash($_POST['status_id']))) : 0;\n-if (!$status_id) {exit;}\n-$status = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", $status_id));\n-ob_start();\n-?>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_edit_task_status_name\">\u003C?php echo esc_html_e('Status Name','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert status name. Please make sure status name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_edit_task_status_name\" class=\"form-control\" name=\"wppm_edit_task_status_name\" value=\"\u003C?php echo esc_attr($status->name)?>\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_edit_task_status_color\">\u003C?php echo esc_html_e('Color','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Text color of status.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_edit_task_status_color\" class=\"wppm_edit_color_picker\" name=\"wppm_edit_task_status_color\" value=\"\u003C?php echo esc_attr($status->color)?>\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cdiv class=\"form-group\">\n-  \u003Clabel for=\"wppm_edit_task_status_bg_color\">\u003C?php echo esc_html_e('Background Color','taskbuilder');?>\u003C\u002Flabel>\n-  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Background color of status.','taskbuilder');?>\u003C\u002Fp>\n-  \u003Cinput id=\"wppm_edit_task_status_bg_color\" class=\"wppm_edit_color_picker\" name=\"wppm_edit_task_status_bg_color\" value=\"\u003C?php echo esc_attr($status->bg_color)?>\" \u002F>\n-\u003C\u002Fdiv>\n-\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_task_status' ) ); ?>\">\n-\u003Cscript>\n-  jQuery(document).ready(function(){\n-      jQuery('.wppm_edit_color_picker').wpColorPicker();\n-  });\n-\u003C\u002Fscript>\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\" onclick=\"wppm_set_edit_task_status(\u003C?php echo (esc_attr($status_id))?>);\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php \n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n-echo wp_json_encode($output);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+} \r\n+$status_id = isset($_POST) && isset($_POST['status_id']) ? absint(sanitize_text_field(wp_unslash($_POST['status_id']))) : 0;\r\n+if (!$status_id) {exit;}\r\n+$status = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", $status_id));\r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_edit_task_status_name\">\u003C?php echo esc_html_e('Status Name','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Insert status name. Please make sure status name you are entering should not already exist.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_edit_task_status_name\" class=\"form-control\" name=\"wppm_edit_task_status_name\" value=\"\u003C?php echo esc_attr($status->name)?>\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_edit_task_status_color\">\u003C?php echo esc_html_e('Color','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Text color of status.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_edit_task_status_color\" class=\"wppm_edit_color_picker\" name=\"wppm_edit_task_status_color\" value=\"\u003C?php echo esc_attr($status->color)?>\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cdiv class=\"form-group\">\r\n+  \u003Clabel for=\"wppm_edit_task_status_bg_color\">\u003C?php echo esc_html_e('Background Color','taskbuilder');?>\u003C\u002Flabel>\r\n+  \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Background color of status.','taskbuilder');?>\u003C\u002Fp>\r\n+  \u003Cinput id=\"wppm_edit_task_status_bg_color\" class=\"wppm_edit_color_picker\" name=\"wppm_edit_task_status_bg_color\" value=\"\u003C?php echo esc_attr($status->bg_color)?>\" \u002F>\r\n+\u003C\u002Fdiv>\r\n+\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_task_status' ) ); ?>\">\r\n+\u003Cscript>\r\n+  jQuery(document).ready(function(){\r\n+      jQuery('.wppm_edit_color_picker').wpColorPicker();\r\n+  });\r\n+\u003C\u002Fscript>\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\" onclick=\"wppm_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\" onclick=\"wppm_set_edit_task_status(\u003C?php echo (esc_attr($status_id))?>);\">\u003C?php echo esc_html_e('Submit','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php \r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n+echo wp_json_encode($output);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,237 +1,237 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$wppm_default_task_list_view = get_option('wppm_default_task_list_view');\n-$wppm_default_project_date = get_option('wppm_default_project_date');\n-$wppm_default_task_date = get_option('wppm_default_task_date');\n-$wppm_project_time = get_option('wppm_project_time');\n-$wppm_task_time = get_option('wppm_task_time');\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-$wppm_edit_tasks_permission = get_option('wppm_default_edit_tasks_permission');\n-$wppm_date_setting = get_option('wppm_date_setting');\n-$project_statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses\");\n-$task_statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses\");\n-$default_proj_status = get_option('wppm_default_project_status');\n-$default_task_status = get_option('wppm_default_task_status');\n-$wppm_tinymce_visibility_open_task = get_option('wppm_tinymce_visibility_open_task');\n-$wppm_tinymce_visibility_open_project = get_option('wppm_tinymce_visibility_open_project');\n-$wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj');\n-$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');\n-$wppm_proj_hide_comment_section = get_option('wppm_proj_hide_comment_section');\n-$wppm_task_hide_comment_section = get_option('wppm_task_hide_comment_section');\n-$wppm_deafault_time_duration_project = get_option('wppm_display_time_duration_project');\n-$wppm_deafault_time_duration_task = get_option('wppm_display_time_duration_task');\n-?>\n-\u003Cform id=\"wppm_frm_general_settings\" method=\"post\" action=\"javascript:wppm_set_general_settings();\">\n-    \u003Cdiv class=\"wppm-help-container\">\n-      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs\u002Fgeneral-setting\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\n-    \u003C\u002Fdiv>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Task List View','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('This selected view get applied on task list table','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"radio\" name=\"wppm_task_list_view\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_default_task_list_view))==1) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('List View','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Cinput type=\"radio\" name=\"wppm_task_list_view\" value=\"0\" \u003C?php echo ((esc_attr($wppm_default_task_list_view))==0)?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Card View','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Show project duration instead of start and end dates in the project list.','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide time duration of project.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"radio\" name=\"wppm_display_time_duration_project\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_deafault_time_duration_project))==1) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Cinput type=\"radio\" name=\"wppm_display_time_duration_project\" value=\"0\" \u003C?php echo ((esc_attr($wppm_deafault_time_duration_project))==0)?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Chr>\n-     \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Show task duration instead of start and end dates in the task list.','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide time duration of task.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"radio\" name=\"wppm_display_time_duration_task\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_deafault_time_duration_task))==1) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Cinput type=\"radio\" name=\"wppm_display_time_duration_task\" value=\"0\" \u003C?php echo ((esc_attr($wppm_deafault_time_duration_task))==0)?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Time in project start date and end date','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide time in start and end date of project.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cselect class=\"form-control\" name=\"wppm_project_time\" id=\"wppm_project_time\">\n-      \u003Coption value=\"1\" \u003C?php selected( $wppm_project_time, '1' ); ?>>\n-        \u003C?php esc_html_e( 'Show', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-      \u003Coption value=\"0\" \u003C?php selected( $wppm_project_time, '0' ); ?>>\n-        \u003C?php esc_html_e( 'Hide', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-    \u003C\u002Fselect>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Time in task start date and end date','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide time in start and end date of task.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cselect class=\"form-control\" name=\"wppm_task_time\" id=\"wppm_task_time\">\n-      \u003Coption value=\"1\" \u003C?php selected( $wppm_task_time, '1' ); ?>>\n-        \u003C?php esc_html_e( 'Show', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-      \u003Coption value=\"0\" \u003C?php selected( $wppm_task_time, '0' ); ?>>\n-        \u003C?php esc_html_e( 'Hide', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-    \u003C\u002Fselect>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Project start date and end date','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide start date and end date of project.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"radio\" name=\"wppm_default_project_date\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_default_project_date))==1) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Cinput type=\"radio\" name=\"wppm_default_project_date\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_default_project_date))==0) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Task start date and end date','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide start date and end date of task.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"radio\" name=\"wppm_default_task_date\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_default_task_date))==1) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Cinput type=\"radio\" name=\"wppm_default_task_date\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_default_task_date))==0) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Default date format','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cselect class=\"form-control\" name=\"wppm_date_setting\" id=\"wppm_date_setting\">\n-      \u003C?php\n-      $date_formats = array( 'Y-m-d H:i:s','d-m-Y H:i:s','m-d-Y H:i:s','Y-m-d','d-m-Y','m-d-Y' );\n-      foreach ( $date_formats as $format ) :\n-      ?>\u003Coption value=\"\u003C?php echo esc_attr( $format ); ?>\"\n-            \u003C?php selected( $wppm_date_setting, $format ); ?>>\n-            \u003C?php echo esc_html( $format ); ?>\n-        \u003C\u002Foption>\n-      \u003C?php endforeach; ?>\n-    \u003C\u002Fselect>\n-    \u003Cbr>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Allow co-workers to edit tasks','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable permission for co-workers to edit tasks.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cselect class=\"form-control\" name=\"wppm_edit_tasks_permission\" id=\"wppm_edit_tasks_permission\">\n-      \u003Coption value=\"1\" \u003C?php selected( $wppm_edit_tasks_permission, '1' ); ?>>\n-        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-      \u003Coption value=\"0\" \u003C?php selected( $wppm_edit_tasks_permission, '0' ); ?>>\n-        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-    \u003C\u002Fselect>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Default project status','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Selected status will get applied to project after creating it.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cselect class=\"form-control\" name=\"wppm_default_proj_status\" id=\"wppm_default_proj_status\">\n-      \u003C?php foreach ( $project_statuses as $status ) : ?>\n-\t\t  \u003Coption value=\"\u003C?php echo esc_attr( $status->id ); ?>\"\n-        \u003C?php selected( $default_proj_status, $status->id ); ?>>\n-        \u003C?php echo esc_html( $status->name ); ?>\n-\t\t  \u003C\u002Foption>\n-\t    \u003C?php endforeach; ?>\n-    \u003C\u002Fselect>\n-    \u003Cbr>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Default task status','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Selected status will get applied to task after creating it.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cselect class=\"form-control\" name=\"wppm_default_task_status\" id=\"wppm_default_task_status\">\n-      \u003C?php foreach ($task_statuses as $status) :\n-        ?>\n-        \u003Coption \u003C?php echo esc_attr($default_task_status)==esc_attr($status->id) ?'selected=\"selected\"':''?> value=\"\u003C?php echo esc_attr($status->id)?>\">\u003C?php echo (esc_attr($status->name))?>\u003C\u002Foption>\n-      \u003C?php endforeach;?>\n-    \u003C\u002Fselect>\n-    \u003Cbr>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Default Show TinyMCE editor in open project ','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide TinyMCE editor in open project.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"radio\" name=\"wppm_tinymce_visibility_open_project\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_tinymce_visibility_open_project))==1) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Cinput type=\"radio\" name=\"wppm_tinymce_visibility_open_project\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_tinymce_visibility_open_project))==0) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Default Show TinyMCE editor in open task ','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide TinyMCE editor in open task.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"radio\" name=\"wppm_tinymce_visibility_open_task\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_tinymce_visibility_open_task))==1) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Cinput type=\"radio\" name=\"wppm_tinymce_visibility_open_task\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_tinymce_visibility_open_task))==0) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Default Show\u002Fhide completed status\\'s projects from project list ','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide completed status\\'s projects from project list.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"radio\" name=\"wppm_hide_completed_status_proj\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_hide_completed_status_proj))==1) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Cinput type=\"radio\" name=\"wppm_hide_completed_status_proj\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_hide_completed_status_proj))==0) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Chr>\n-    \u003Cspan>\n-    \u003Clabel>\u003C?php echo esc_html_e('Default Show\u002Fhide completed status\\'s tasks from task list ','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide completed status\\'s tasks from task list.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"radio\" name=\"wppm_hide_completed_status_task\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_hide_completed_status_task))==1) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Cinput type=\"radio\" name=\"wppm_hide_completed_status_task\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_hide_completed_status_task))==0) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Chr>\n-    \u003Cspan>  \n-      \u003Clabel>\u003C?php echo esc_html_e('Default show comment section in open project ','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide comment section in open project.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"radio\" name=\"wppm_proj_comment_section\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_proj_hide_comment_section))==1) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Cinput type=\"radio\" name=\"wppm_proj_comment_section\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_proj_hide_comment_section))==0) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Default show comment section in open task ','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide comment section in open task.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"radio\" name=\"wppm_task_comment_section\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_task_hide_comment_section))==1) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Cinput type=\"radio\" name=\"wppm_task_comment_section\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_task_hide_comment_section))==0) ?'checked=\"checked\"':'';?>>\n-    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\n-    \u003Cbr>\n-    \u003Chr>\n-    \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_general_settings\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_general_settings' ) ); ?>\">\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$wppm_default_task_list_view = get_option('wppm_default_task_list_view');\r\n+$wppm_default_project_date = get_option('wppm_default_project_date');\r\n+$wppm_default_task_date = get_option('wppm_default_task_date');\r\n+$wppm_project_time = get_option('wppm_project_time');\r\n+$wppm_task_time = get_option('wppm_task_time');\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+$wppm_edit_tasks_permission = get_option('wppm_default_edit_tasks_permission');\r\n+$wppm_date_setting = get_option('wppm_date_setting');\r\n+$project_statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses\");\r\n+$task_statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses\");\r\n+$default_proj_status = get_option('wppm_default_project_status');\r\n+$default_task_status = get_option('wppm_default_task_status');\r\n+$wppm_tinymce_visibility_open_task = get_option('wppm_tinymce_visibility_open_task');\r\n+$wppm_tinymce_visibility_open_project = get_option('wppm_tinymce_visibility_open_project');\r\n+$wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj');\r\n+$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');\r\n+$wppm_proj_hide_comment_section = get_option('wppm_proj_hide_comment_section');\r\n+$wppm_task_hide_comment_section = get_option('wppm_task_hide_comment_section');\r\n+$wppm_deafault_time_duration_project = get_option('wppm_display_time_duration_project');\r\n+$wppm_deafault_time_duration_task = get_option('wppm_display_time_duration_task');\r\n+?>\r\n+\u003Cform id=\"wppm_frm_general_settings\" method=\"post\" action=\"javascript:wppm_set_general_settings();\">\r\n+    \u003Cdiv class=\"wppm-help-container\">\r\n+      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs\u002Fgeneral-setting\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Task List View','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('This selected view get applied on task list table','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_task_list_view\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_default_task_list_view))==1) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('List View','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_task_list_view\" value=\"0\" \u003C?php echo ((esc_attr($wppm_default_task_list_view))==0)?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Card View','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Show project duration instead of start and end dates in the project list.','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide time duration of project.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_display_time_duration_project\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_deafault_time_duration_project))==1) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_display_time_duration_project\" value=\"0\" \u003C?php echo ((esc_attr($wppm_deafault_time_duration_project))==0)?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Chr>\r\n+     \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Show task duration instead of start and end dates in the task list.','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide time duration of task.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_display_time_duration_task\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_deafault_time_duration_task))==1) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_display_time_duration_task\" value=\"0\" \u003C?php echo ((esc_attr($wppm_deafault_time_duration_task))==0)?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Time in project start date and end date','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide time in start and end date of project.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_project_time\" id=\"wppm_project_time\">\r\n+      \u003Coption value=\"1\" \u003C?php selected( $wppm_project_time, '1' ); ?>>\r\n+        \u003C?php esc_html_e( 'Show', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+      \u003Coption value=\"0\" \u003C?php selected( $wppm_project_time, '0' ); ?>>\r\n+        \u003C?php esc_html_e( 'Hide', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+    \u003C\u002Fselect>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Time in task start date and end date','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide time in start and end date of task.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_task_time\" id=\"wppm_task_time\">\r\n+      \u003Coption value=\"1\" \u003C?php selected( $wppm_task_time, '1' ); ?>>\r\n+        \u003C?php esc_html_e( 'Show', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+      \u003Coption value=\"0\" \u003C?php selected( $wppm_task_time, '0' ); ?>>\r\n+        \u003C?php esc_html_e( 'Hide', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+    \u003C\u002Fselect>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Project start date and end date','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide start date and end date of project.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_default_project_date\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_default_project_date))==1) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_default_project_date\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_default_project_date))==0) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Task start date and end date','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide start date and end date of task.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_default_task_date\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_default_task_date))==1) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_default_task_date\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_default_task_date))==0) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Default date format','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_date_setting\" id=\"wppm_date_setting\">\r\n+      \u003C?php\r\n+      $date_formats = array( 'Y-m-d H:i:s','d-m-Y H:i:s','m-d-Y H:i:s','Y-m-d','d-m-Y','m-d-Y' );\r\n+      foreach ( $date_formats as $format ) :\r\n+      ?>\u003Coption value=\"\u003C?php echo esc_attr( $format ); ?>\"\r\n+            \u003C?php selected( $wppm_date_setting, $format ); ?>>\r\n+            \u003C?php echo esc_html( $format ); ?>\r\n+        \u003C\u002Foption>\r\n+      \u003C?php endforeach; ?>\r\n+    \u003C\u002Fselect>\r\n+    \u003Cbr>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Allow co-workers to edit tasks','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable permission for co-workers to edit tasks.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_edit_tasks_permission\" id=\"wppm_edit_tasks_permission\">\r\n+      \u003Coption value=\"1\" \u003C?php selected( $wppm_edit_tasks_permission, '1' ); ?>>\r\n+        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+      \u003Coption value=\"0\" \u003C?php selected( $wppm_edit_tasks_permission, '0' ); ?>>\r\n+        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+    \u003C\u002Fselect>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Default project status','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Selected status will get applied to project after creating it.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_default_proj_status\" id=\"wppm_default_proj_status\">\r\n+      \u003C?php foreach ( $project_statuses as $status ) : ?>\r\n+\t\t  \u003Coption value=\"\u003C?php echo esc_attr( $status->id ); ?>\"\r\n+        \u003C?php selected( $default_proj_status, $status->id ); ?>>\r\n+        \u003C?php echo esc_html( $status->name ); ?>\r\n+\t\t  \u003C\u002Foption>\r\n+\t    \u003C?php endforeach; ?>\r\n+    \u003C\u002Fselect>\r\n+    \u003Cbr>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Default task status','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Selected status will get applied to task after creating it.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_default_task_status\" id=\"wppm_default_task_status\">\r\n+      \u003C?php foreach ($task_statuses as $status) :\r\n+        ?>\r\n+        \u003Coption \u003C?php echo esc_attr($default_task_status)==esc_attr($status->id) ?'selected=\"selected\"':''?> value=\"\u003C?php echo esc_attr($status->id)?>\">\u003C?php echo (esc_attr($status->name))?>\u003C\u002Foption>\r\n+      \u003C?php endforeach;?>\r\n+    \u003C\u002Fselect>\r\n+    \u003Cbr>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Default Show TinyMCE editor in open project ','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide TinyMCE editor in open project.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_tinymce_visibility_open_project\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_tinymce_visibility_open_project))==1) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_tinymce_visibility_open_project\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_tinymce_visibility_open_project))==0) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Default Show TinyMCE editor in open task ','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide TinyMCE editor in open task.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_tinymce_visibility_open_task\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_tinymce_visibility_open_task))==1) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_tinymce_visibility_open_task\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_tinymce_visibility_open_task))==0) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Default Show\u002Fhide completed status\\'s projects from project list ','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide completed status\\'s projects from project list.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_hide_completed_status_proj\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_hide_completed_status_proj))==1) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_hide_completed_status_proj\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_hide_completed_status_proj))==0) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+    \u003Clabel>\u003C?php echo esc_html_e('Default Show\u002Fhide completed status\\'s tasks from task list ','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide completed status\\'s tasks from task list.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_hide_completed_status_task\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_hide_completed_status_task))==1) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_hide_completed_status_task\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_hide_completed_status_task))==0) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Chr>\r\n+    \u003Cspan>  \r\n+      \u003Clabel>\u003C?php echo esc_html_e('Default show comment section in open project ','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide comment section in open project.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_proj_comment_section\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_proj_hide_comment_section))==1) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_proj_comment_section\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_proj_hide_comment_section))==0) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Default show comment section in open task ','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default show\u002Fhide comment section in open task.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_task_comment_section\" style=\"margin-top: 0px;\" value=\"1\" \u003C?php echo ((esc_attr($wppm_task_hide_comment_section))==1) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Show','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Cinput type=\"radio\" name=\"wppm_task_comment_section\" style=\"margin-top: 0px;\" value=\"0\" \u003C?php echo ((esc_attr($wppm_task_hide_comment_section))==0) ?'checked=\"checked\"':'';?>>\r\n+    \u003Cspan style=\"padding-left: 10px;\">\u003C?php echo esc_html_e('Hide','taskbuilder');?>\u003C\u002Fspan>\r\n+    \u003Cbr>\r\n+    \u003Chr>\r\n+    \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_general_settings\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_general_settings' ) ); ?>\">\r\n \u003C\u002Fform>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_page_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_page_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_page_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_page_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,94 +1,94 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-$settings = get_option( 'wppm-page-settings' );\n-?>\n-\n-\u003Cform action=\"javascript:wppm_set_page_settings()\"; id=\"wppm-frm-ps\" class=\"wppm-frm-ps\">\n-    \u003Cdiv class=\"wppm-help-container\">\n-        \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs\u002Fpage-setting\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Task url page', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Cselect id=\"wppm-task-page\" class=\"wppm-select-wp-page\" name=\"task-url-page\">\n-            \u003C?php\n-            if ( !empty($settings['task-url-page'] )) {\n-                $page = get_post( $settings['task-url-page'] );\n-                if(!empty($page)){\n-                ?>\n-                \u003Coption value=\"\u003C?php echo isset( $page->ID) ? esc_attr( $page->ID ):\"\"; ?>\">\u003C?php echo isset($page->post_title) ? esc_attr( $page->post_title ) : \"\" ; ?>\u003C\u002Foption>\n-                \u003C?php }\n-            } else {\n-                ?>\n-                \u003Coption value=\"0\">\u003C\u002Foption>\n-                \u003C?php\n-            }\n-            ?>\n-        \u003C\u002Fselect>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm-input-group\">\n-        \u003Cdiv class=\"label-container\">\n-            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Project url page', 'taskbuilder' ); ?>\u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-        \u003Cselect id=\"wppm-project-page\" class=\"wppm-select-wp-page\" name=\"project-url-page\">\n-            \u003C?php\n-            if ( !empty($settings['project-url-page']) ) {\n-                $page = get_post( $settings['project-url-page'] )\n-                ?>\n-                \u003Coption value=\"\u003C?php echo isset($page->ID ) ? esc_attr( $page->ID ):\"\"; ?>\">\u003C?php echo isset($page->post_title) ? esc_attr( $page->post_title ):\"\"; ?>\u003C\u002Foption>\n-                \u003C?php\n-            } else {\n-                ?>\n-                \u003Coption value=\"0\">\u003C\u002Foption>\n-                \u003C?php\n-            }\n-            ?>\n-        \u003C\u002Fselect>\n-    \u003C\u002Fdiv>\n-    \u003Cscript>\n-        jQuery('.wppm-select-wp-page').selectWoo({\n-            ajax: {\n-                url: wppm_admin.ajax_url,\n-                dataType: 'json',\n-                delay: 250,\n-                data: function (params) {\n-                    return {\n-                        q: params.term, \u002F\u002F search term\n-                        page: params.page,\n-                        action: 'wppm_search_wp_pages',\n-                        _ajax_nonce: '\u003C?php echo esc_attr( wp_create_nonce( 'wppm_search_wp_pages' ) ); ?>'\n-                    };\n-                },\n-                processResults: function (data, params) {\n-                    var terms = [];\n-                    if ( data ) {\n-                        jQuery.each( data, function( id, text ) {\n-                            terms.push( { id: text.id, text: text.title } );\n-                        });\n-                    }\n-                    return {\n-                        results: terms\n-                    };\n-                },\n-                cache: true\n-            },\n-            escapeMarkup: function (markup) { return markup; }, \u002F\u002F let our custom formatter work\n-            minimumInputLength: 1,\n-            allowClear: true,\n-            placeholder: \"\"\n-        });\n-    \u003C\u002Fscript>\n-    \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_page_settings\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_page_settings' ) ); ?>\">\n-\u003C\u002Fform>\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+$settings = get_option( 'wppm-page-settings' );\r\n+?>\r\n+\r\n+\u003Cform action=\"javascript:wppm_set_page_settings()\"; id=\"wppm-frm-ps\" class=\"wppm-frm-ps\">\r\n+    \u003Cdiv class=\"wppm-help-container\">\r\n+        \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs\u002Fpage-setting\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Task url page', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cselect id=\"wppm-task-page\" class=\"wppm-select-wp-page\" name=\"task-url-page\">\r\n+            \u003C?php\r\n+            if ( !empty($settings['task-url-page'] )) {\r\n+                $page = get_post( $settings['task-url-page'] );\r\n+                if(!empty($page)){\r\n+                ?>\r\n+                \u003Coption value=\"\u003C?php echo isset( $page->ID) ? esc_attr( $page->ID ):\"\"; ?>\">\u003C?php echo isset($page->post_title) ? esc_attr( $page->post_title ) : \"\" ; ?>\u003C\u002Foption>\r\n+                \u003C?php }\r\n+            } else {\r\n+                ?>\r\n+                \u003Coption value=\"0\">\u003C\u002Foption>\r\n+                \u003C?php\r\n+            }\r\n+            ?>\r\n+        \u003C\u002Fselect>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm-input-group\">\r\n+        \u003Cdiv class=\"label-container\">\r\n+            \u003Clabel for=\"\">\u003C?php esc_attr_e( 'Project url page', 'taskbuilder' ); ?>\u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cselect id=\"wppm-project-page\" class=\"wppm-select-wp-page\" name=\"project-url-page\">\r\n+            \u003C?php\r\n+            if ( !empty($settings['project-url-page']) ) {\r\n+                $page = get_post( $settings['project-url-page'] )\r\n+                ?>\r\n+                \u003Coption value=\"\u003C?php echo isset($page->ID ) ? esc_attr( $page->ID ):\"\"; ?>\">\u003C?php echo isset($page->post_title) ? esc_attr( $page->post_title ):\"\"; ?>\u003C\u002Foption>\r\n+                \u003C?php\r\n+            } else {\r\n+                ?>\r\n+                \u003Coption value=\"0\">\u003C\u002Foption>\r\n+                \u003C?php\r\n+            }\r\n+            ?>\r\n+        \u003C\u002Fselect>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cscript>\r\n+        jQuery('.wppm-select-wp-page').selectWoo({\r\n+            ajax: {\r\n+                url: wppm_admin.ajax_url,\r\n+                dataType: 'json',\r\n+                delay: 250,\r\n+                data: function (params) {\r\n+                    return {\r\n+                        q: params.term, \u002F\u002F search term\r\n+                        page: params.page,\r\n+                        action: 'wppm_search_wp_pages',\r\n+                        _ajax_nonce: '\u003C?php echo esc_attr( wp_create_nonce( 'wppm_search_wp_pages' ) ); ?>'\r\n+                    };\r\n+                },\r\n+                processResults: function (data, params) {\r\n+                    var terms = [];\r\n+                    if ( data ) {\r\n+                        jQuery.each( data, function( id, text ) {\r\n+                            terms.push( { id: text.id, text: text.title } );\r\n+                        });\r\n+                    }\r\n+                    return {\r\n+                        results: terms\r\n+                    };\r\n+                },\r\n+                cache: true\r\n+            },\r\n+            escapeMarkup: function (markup) { return markup; }, \u002F\u002F let our custom formatter work\r\n+            minimumInputLength: 1,\r\n+            allowClear: true,\r\n+            placeholder: \"\"\r\n+        });\r\n+    \u003C\u002Fscript>\r\n+    \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_page_settings\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_page_settings' ) ); ?>\">\r\n+\u003C\u002Fform>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_print_task_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_print_task_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_print_task_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_print_task_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,23 +1,23 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-$wppm_print_settings = get_option('wppm_print_settings');\n-$wppm_font_size = isset($wppm_print_settings['wppm_print_body_font_size']) ? $wppm_print_settings['wppm_print_body_font_size'] : '10';  \n-?>\n-\u003Cform id=\"wppm_print_task_settings\" method=\"post\" action=\"javascript:wppm_set_print_task_settings();\">\n-  \u003Ch4 style=\"margin-bottom:20px;\">\u003C?php echo esc_html_e('Print Task Settings','taskbuilder');?>\u003C\u002Fh4>\n-   \u003Cdiv class=\"form-group\">\n-    \u003Clabel for=\"wppm_print_body_font_size\">\u003C?php echo esc_html_e('Body Font Size(px)','taskbuilder');?>\u003C\u002Flabel>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Set the body font size for the print view.','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"text\" class=\"form-control\" name=\"wppm_print_body_font_size\" id=\"wppm_print_body_font_size\" value=\"\u003C?php echo esc_attr($wppm_font_size);?>\" \u002F>\n-  \u003C\u002Fdiv>\n-  \u003Chr>\n-  \u003C?php do_action('wppm_get_print_general_settings');?>\n-  \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-  \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"loading_icon\">\u003C\u002Fspan>  \n-  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_print_task_settings\" \u002F>\n-  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_print_task_settings' ) ); ?>\">\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+$wppm_print_settings = get_option('wppm_print_settings');\r\n+$wppm_font_size = isset($wppm_print_settings['wppm_print_body_font_size']) ? $wppm_print_settings['wppm_print_body_font_size'] : '10';  \r\n+?>\r\n+\u003Cform id=\"wppm_print_task_settings\" method=\"post\" action=\"javascript:wppm_set_print_task_settings();\">\r\n+  \u003Ch4 style=\"margin-bottom:20px;\">\u003C?php echo esc_html_e('Print Task Settings','taskbuilder');?>\u003C\u002Fh4>\r\n+   \u003Cdiv class=\"form-group\">\r\n+    \u003Clabel for=\"wppm_print_body_font_size\">\u003C?php echo esc_html_e('Body Font Size(px)','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Set the body font size for the print view.','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"text\" class=\"form-control\" name=\"wppm_print_body_font_size\" id=\"wppm_print_body_font_size\" value=\"\u003C?php echo esc_attr($wppm_font_size);?>\" \u002F>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Chr>\r\n+  \u003C?php do_action('wppm_get_print_general_settings');?>\r\n+  \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+  \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"loading_icon\">\u003C\u002Fspan>  \r\n+  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_print_task_settings\" \u002F>\r\n+  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_print_task_settings' ) ); ?>\">\r\n \u003C\u002Fform>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,180 +1,180 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb, $wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-} \n-$orderby_sql = (sanitize_sql_orderby( \"load_order ASC\"));\n-$priorities = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities ORDER BY $orderby_sql\");\n-$priority_arr = $wpdb->get_results(\"SELECT id FROM {$wpdb->prefix}wppm_task_priorities\");\n-$priority_ids = array();\n-if(!empty($priority_arr)){\t\n-\tforeach($priority_arr as $key=>$val){\n-\t\t$priorities_array= json_decode(wp_json_encode($val));\n-\t\t$priority_ids[] = $priorities_array->id;\n-\t}\n-\t$priority_ids = $wppmfunction->sanitize_array($priority_ids);\n-}\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-?>\n-\u003Cdiv id=\"wppm_task_priorities_container\">\n-\t\u003Cdiv class=\"wppm-help-container\">\n-      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs\u002Ftask-priorities\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\n-    \u003C\u002Fdiv>\n-\t\u003Cspan class=\"wppm-title\">\n-\t\t\u003C?php echo esc_html_e('Task Priorities','taskbuilder');?>\n-\t\u003C\u002Fspan>\n-\t\u003Cspan style=\"margin-left:10px;background-color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-bg-color'])?>;color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-text-color'])?>;\" class=\"wppm-add-new-btn wppm_btn btn-primary\" onclick=\"wppm_add_task_priority();\">\u003C?php echo esc_html_e('+Add New','taskbuilder');?>\u003C\u002Fspan>\n-\t\u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\n-\t\u003Cul class=\"wppm-sortable\">\n-\t\t\u003C?php \n-\t\tif(!empty($priorities)){\n-\t\t\tforeach ($priorities as $priority){\n-\t\t\t\t$color=$priority->color;\n-\t\t\t\t$background_color=$priority->bg_color;\n-\t\t\t?>\n-\t\t\t\u003Cli class=\"ui-state-default\" data-id=\"\u003C?php echo esc_attr($priority->id)?>\">\n-\t\t\t\t\u003Cdiv class=\"wppm-flex-container\"style=\"background-color:\u003C?php echo esc_attr($background_color)?>;color:\u003C?php echo esc_attr($color)?>;\">\n-\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-handle\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ffilter.svg'); ?>\" alt=\"filter\">\u003C\u002Fdiv>\n-\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-label\">\u003C?php echo esc_html($priority->name) ?>\u003C\u002Fdiv>\n-\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-edit\" data-toggle=\"tooltip\" title=\"Edit\" data-placement=\"top\" onclick=\"wppm_get_edit_task_priority(\u003C?php echo esc_attr($priority->id)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fdiv>\n-\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-delete\" data-toggle=\"tooltip\" title=\"Delete\" data-placement=\"top\" onclick=\"wppm_delete_task_priority(\u003C?php echo esc_attr($priority->id)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fdiv>\n-\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\u003C\u002Fli>\n-\n-\t\t\u003C?php } \n-\t\t}\n-\t\t?>\n-\t\u003C\u002Ful>\n-\t\u003Cinput type=\"hidden\" name=\"wppm_prio_order_ajax_nonce\" id=\"wppm_prio_order_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_priority_order' ) ); ?>\">\n-\t\u003Cinput type=\"hidden\" name=\"wppm_delete_tprio_ajax_nonce\" id=\"wppm_delete_tprio_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_delete_task_priority' ) ); ?>\">\n-\u003Cdiv>\n-\u003Cstyle>\n-\t#wppm_task_priorities_container .wppm-add-new-btn:hover{\n-\t\tbackground-color: \u003C?php echo esc_attr($wppm_ap_settings['add-new-button-hover-color'])?>!important;\n-\t}\n-\u003C\u002Fstyle>\n-\u003Cscript>\n-\tjQuery(function(){\n-    jQuery( \".wppm-sortable\" ).sortable({ handle: '.wppm-sortable-handle' });\n-\t\tjQuery( \".wppm-sortable\" ).on(\"sortupdate\",function(event,ui){\n-\t\t\tvar keys = jQuery(this).sortable( \"toArray\", {attribute: 'data-id'} );\n-\t\t\tvar priority_order = \u003C?php echo wp_json_encode($priority_ids); ?>;\n-\t\t\tvar result = {};\n-\t\t\tfor (var i = 0; i \u003C keys.length; i++){\n-\t\t\t\tresult[keys[i]] = priority_order[i];\n-\t\t\t}\n-\t\t\tvar data = {\n-\t\t\t\taction: 'wppm_set_priority_order',\n-\t\t\t\tload_orders : result,\n-\t\t\t\t_ajax_nonce : jQuery('#wppm_prio_order_ajax_nonce').val()\n-\t\t\t};\n-\t\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\t\tvar response = JSON.parse(response_str);\n-\t\t\t\tif (response.sucess_status==1) {\n-\t\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-\t\t\t\t}\n-\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-\t\t  \t});\n-\t\t});\n-\t});\n-\n-\tfunction wppm_set_add_priority(){\n-\t\tvar priority_name = jQuery('#wppm_priority_name').val().trim();\n-\t\tif (priority_name.length == 0) {\n-\t\t\tjQuery('#wppm_priority_name').val('').focus();\n-\t\t\treturn;\n-\t\t}\n-\t\tvar priority_color = jQuery('#wppm_priority_color').val().trim();\n-\t\tif (priority_color.length == 0) {\n-\t\t\tpriority_color = '#ffffff';\n-\t\t}\n-\t\tvar priority_bg_color = jQuery('#wppm_priority_bg_color').val().trim();\n-\t\tif (priority_bg_color.length == 0) {\n-\t\t\tpriority_bg_color = '#1E90FF';\n-\t\t}\n-\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\n-\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\n-\t\tvar data = {\n-\t\t\taction: 'wppm_set_add_priority',\n-\t\t\tpriority_name : priority_name,\n-\t\t\tpriority_color: priority_color,\n-\t\t\tpriority_bg_color: priority_bg_color,\n-\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\twppm_modal_close();\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\twppm_get_task_prioriy_settings();\n-\t\t\tif (response.sucess_status=='1') {\n-\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-\t\t\t\twppm_get_task_prioriy_settings();\n-\t\t\t} else {\n-\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\n-\t\t\t}\n-\t\t})\n-\t}\n-\n-\tfunction wppm_get_edit_task_priority(priority_id){\n-\t\twppm_modal_open(wppm_admin.edit_status);\n-\t\tvar data = {\n-\t\t\taction : 'wppm_get_edit_priority',\n-\t\t\tpriority_id:priority_id\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\tjQuery('#wppm_popup_body').html(response.body);\n-\t\t\tjQuery('#wppm_popup_footer').html(response.footer);\n-\t\t\tjQuery('#wppm_proj_status_name').focus();\n-\t\t})\n-\t}\n-\n-\tfunction wppm_set_edit_priority(priority_id){\n-\t\tvar priority_name = jQuery('#wppm_edit_priority_name').val().trim();\n-\t\tif (priority_name.length == 0) {\n-\t\t\tjQuery('#wppm_edit_priority_name').val('').focus();\n-\t\t\treturn;\n-\t\t}\n-\t\tvar priority_color = jQuery('#wppm_edit_priority_color').val().trim();\n-\t\tif (priority_color.length == 0) {\n-\t\t\tpriority_color = '#ffffff';\n-\t\t}\n-\t\tvar priority_bg_color = jQuery('#wppm_edit_priority_bg_color').val().trim();\n-\t\tif (priority_bg_color.length == 0) {\n-\t\t\tpriority_bg_color = '#1E90FF';\n-\t\t}\n-\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\n-\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\n-\t\tvar data = {\n-\t\t\taction : 'wppm_set_edit_priority',\n-\t\t\tpriority_id:priority_id,\n-\t\t\tpriority_name:priority_name,\n-\t\t\tpriority_color: priority_color,\n-\t\t\tpriority_bg_color: priority_bg_color,\n-\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\twppm_modal_close();\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\twppm_get_task_prioriy_settings();\n-\t\t\tif (response.sucess_status=='1') {\n-\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-\t\t\t\twppm_get_task_prioriy_settings();\n-\t\t\t} else {\n-\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\n-\t\t\t}\n-\t\t});\n-\t}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb, $wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+} \r\n+$orderby_sql = (sanitize_sql_orderby( \"load_order ASC\"));\r\n+$priorities = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities ORDER BY $orderby_sql\");\r\n+$priority_arr = $wpdb->get_results(\"SELECT id FROM {$wpdb->prefix}wppm_task_priorities\");\r\n+$priority_ids = array();\r\n+if(!empty($priority_arr)){\t\r\n+\tforeach($priority_arr as $key=>$val){\r\n+\t\t$priorities_array= json_decode(wp_json_encode($val));\r\n+\t\t$priority_ids[] = $priorities_array->id;\r\n+\t}\r\n+\t$priority_ids = $wppmfunction->sanitize_array($priority_ids);\r\n+}\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+?>\r\n+\u003Cdiv id=\"wppm_task_priorities_container\">\r\n+\t\u003Cdiv class=\"wppm-help-container\">\r\n+      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs\u002Ftask-priorities\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\r\n+    \u003C\u002Fdiv>\r\n+\t\u003Cspan class=\"wppm-title\">\r\n+\t\t\u003C?php echo esc_html_e('Task Priorities','taskbuilder');?>\r\n+\t\u003C\u002Fspan>\r\n+\t\u003Cspan style=\"margin-left:10px;background-color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-bg-color'])?>;color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-text-color'])?>;\" class=\"wppm-add-new-btn wppm_btn btn-primary\" onclick=\"wppm_add_task_priority();\">\u003C?php echo esc_html_e('+Add New','taskbuilder');?>\u003C\u002Fspan>\r\n+\t\u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\r\n+\t\u003Cul class=\"wppm-sortable\">\r\n+\t\t\u003C?php \r\n+\t\tif(!empty($priorities)){\r\n+\t\t\tforeach ($priorities as $priority){\r\n+\t\t\t\t$color=$priority->color;\r\n+\t\t\t\t$background_color=$priority->bg_color;\r\n+\t\t\t?>\r\n+\t\t\t\u003Cli class=\"ui-state-default\" data-id=\"\u003C?php echo esc_attr($priority->id)?>\">\r\n+\t\t\t\t\u003Cdiv class=\"wppm-flex-container\"style=\"background-color:\u003C?php echo esc_attr($background_color)?>;color:\u003C?php echo esc_attr($color)?>;\">\r\n+\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-handle\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ffilter.svg'); ?>\" alt=\"filter\">\u003C\u002Fdiv>\r\n+\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-label\">\u003C?php echo esc_html($priority->name) ?>\u003C\u002Fdiv>\r\n+\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-edit\" data-toggle=\"tooltip\" title=\"Edit\" data-placement=\"top\" onclick=\"wppm_get_edit_task_priority(\u003C?php echo esc_attr($priority->id)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fdiv>\r\n+\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-delete\" data-toggle=\"tooltip\" title=\"Delete\" data-placement=\"top\" onclick=\"wppm_delete_task_priority(\u003C?php echo esc_attr($priority->id)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fdiv>\r\n+\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\u003C\u002Fli>\r\n+\r\n+\t\t\u003C?php } \r\n+\t\t}\r\n+\t\t?>\r\n+\t\u003C\u002Ful>\r\n+\t\u003Cinput type=\"hidden\" name=\"wppm_prio_order_ajax_nonce\" id=\"wppm_prio_order_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_priority_order' ) ); ?>\">\r\n+\t\u003Cinput type=\"hidden\" name=\"wppm_delete_tprio_ajax_nonce\" id=\"wppm_delete_tprio_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_delete_task_priority' ) ); ?>\">\r\n+\u003Cdiv>\r\n+\u003Cstyle>\r\n+\t#wppm_task_priorities_container .wppm-add-new-btn:hover{\r\n+\t\tbackground-color: \u003C?php echo esc_attr($wppm_ap_settings['add-new-button-hover-color'])?>!important;\r\n+\t}\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript>\r\n+\tjQuery(function(){\r\n+    jQuery( \".wppm-sortable\" ).sortable({ handle: '.wppm-sortable-handle' });\r\n+\t\tjQuery( \".wppm-sortable\" ).on(\"sortupdate\",function(event,ui){\r\n+\t\t\tvar keys = jQuery(this).sortable( \"toArray\", {attribute: 'data-id'} );\r\n+\t\t\tvar priority_order = \u003C?php echo wp_json_encode($priority_ids); ?>;\r\n+\t\t\tvar result = {};\r\n+\t\t\tfor (var i = 0; i \u003C keys.length; i++){\r\n+\t\t\t\tresult[keys[i]] = priority_order[i];\r\n+\t\t\t}\r\n+\t\t\tvar data = {\r\n+\t\t\t\taction: 'wppm_set_priority_order',\r\n+\t\t\t\tload_orders : result,\r\n+\t\t\t\t_ajax_nonce : jQuery('#wppm_prio_order_ajax_nonce').val()\r\n+\t\t\t};\r\n+\t\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\t\tif (response.sucess_status==1) {\r\n+\t\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+\t\t\t\t}\r\n+\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+\t\t  \t});\r\n+\t\t});\r\n+\t});\r\n+\r\n+\tfunction wppm_set_add_priority(){\r\n+\t\tvar priority_name = jQuery('#wppm_priority_name').val().trim();\r\n+\t\tif (priority_name.length == 0) {\r\n+\t\t\tjQuery('#wppm_priority_name').val('').focus();\r\n+\t\t\treturn;\r\n+\t\t}\r\n+\t\tvar priority_color = jQuery('#wppm_priority_color').val().trim();\r\n+\t\tif (priority_color.length == 0) {\r\n+\t\t\tpriority_color = '#ffffff';\r\n+\t\t}\r\n+\t\tvar priority_bg_color = jQuery('#wppm_priority_bg_color').val().trim();\r\n+\t\tif (priority_bg_color.length == 0) {\r\n+\t\t\tpriority_bg_color = '#1E90FF';\r\n+\t\t}\r\n+\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\r\n+\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\r\n+\t\tvar data = {\r\n+\t\t\taction: 'wppm_set_add_priority',\r\n+\t\t\tpriority_name : priority_name,\r\n+\t\t\tpriority_color: priority_color,\r\n+\t\t\tpriority_bg_color: priority_bg_color,\r\n+\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\twppm_modal_close();\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\twppm_get_task_prioriy_settings();\r\n+\t\t\tif (response.sucess_status=='1') {\r\n+\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t\twppm_get_task_prioriy_settings();\r\n+\t\t\t} else {\r\n+\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t}\r\n+\t\t})\r\n+\t}\r\n+\r\n+\tfunction wppm_get_edit_task_priority(priority_id){\r\n+\t\twppm_modal_open(wppm_admin.edit_status);\r\n+\t\tvar data = {\r\n+\t\t\taction : 'wppm_get_edit_priority',\r\n+\t\t\tpriority_id:priority_id\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\tjQuery('#wppm_popup_body').html(response.body);\r\n+\t\t\tjQuery('#wppm_popup_footer').html(response.footer);\r\n+\t\t\tjQuery('#wppm_proj_status_name').focus();\r\n+\t\t})\r\n+\t}\r\n+\r\n+\tfunction wppm_set_edit_priority(priority_id){\r\n+\t\tvar priority_name = jQuery('#wppm_edit_priority_name').val().trim();\r\n+\t\tif (priority_name.length == 0) {\r\n+\t\t\tjQuery('#wppm_edit_priority_name').val('').focus();\r\n+\t\t\treturn;\r\n+\t\t}\r\n+\t\tvar priority_color = jQuery('#wppm_edit_priority_color').val().trim();\r\n+\t\tif (priority_color.length == 0) {\r\n+\t\t\tpriority_color = '#ffffff';\r\n+\t\t}\r\n+\t\tvar priority_bg_color = jQuery('#wppm_edit_priority_bg_color').val().trim();\r\n+\t\tif (priority_bg_color.length == 0) {\r\n+\t\t\tpriority_bg_color = '#1E90FF';\r\n+\t\t}\r\n+\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\r\n+\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\r\n+\t\tvar data = {\r\n+\t\t\taction : 'wppm_set_edit_priority',\r\n+\t\t\tpriority_id:priority_id,\r\n+\t\t\tpriority_name:priority_name,\r\n+\t\t\tpriority_color: priority_color,\r\n+\t\t\tpriority_bg_color: priority_bg_color,\r\n+\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\twppm_modal_close();\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\twppm_get_task_prioriy_settings();\r\n+\t\t\tif (response.sucess_status=='1') {\r\n+\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t\twppm_get_task_prioriy_settings();\r\n+\t\t\t} else {\r\n+\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t}\r\n+\t\t});\r\n+\t}\r\n \u003C\u002Fscript>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,186 +1,186 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-?>\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb, $wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-} \n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-$orderby_sql = (sanitize_sql_orderby( \"load_order ASC\"));\n-$statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses ORDER BY $orderby_sql\");\n-$status_arr = $wpdb->get_results(\"SELECT id FROM {$wpdb->prefix}wppm_project_statuses\");\n-$status_ids =array();\n-if(!empty($status_arr)){\n-\tforeach($status_arr as $key=>$val){\n-\t\t$statuses_array= json_decode(wp_json_encode($val));\n-\t\t$status_ids[] = $statuses_array->id;\n-\t}\n-\t$status_ids = $wppmfunction->sanitize_array($status_ids);\n-}\n-?>\n-\u003Cdiv id=\"wppm_proj_statuses_container\">\n-\t\u003Cdiv class=\"wppm-help-container\">\n-      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs\u002Fproject-statuses\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\n-    \u003C\u002Fdiv>\n-\t\u003Cspan class=\"wppm-title\">\n-\t\t\u003C?php echo esc_html_e('Project Statuses','taskbuilder');?>\n-\t\u003C\u002Fspan>\n-\t\u003Cspan style=\"margin-left:10px;background-color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-bg-color'])?>;color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-text-color'])?>;\" class=\"wppm-add-new-btn wppm_btn btn-primary\" onclick=\"wppm_get_add_proj_status();\">\u003C?php echo esc_html_e('+Add New','taskbuilder');?>\u003C\u002Fspan>\n-\t\u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\n-\n-\t\u003Cul class=\"wppm-sortable\">\n-\t\t\u003C?php \n-\t\tif($statuses){\n-\t\t\tforeach ($statuses as $status){\n-\t\t\t\t$color=$status->color;\n-\t\t\t\t$background_color=$status->bg_color;\n-\t\t\t\t?>\n-\t\t\t\t\u003Cli class=\"ui-state-default\" data-id=\"\u003C?php echo esc_attr($status->id) ?>\">\n-\t\t\t\t\t\u003Cdiv class=\"wppm-flex-container\"style=\"background-color:\u003C?php echo esc_attr($background_color)?>;color:\u003C?php echo esc_attr($color)?>;\">\n-\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-handle\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ffilter.svg'); ?>\" alt=\"filter\">\u003C\u002Fdiv>\n-\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-label\">\u003C?php echo esc_html($status->name) ?>\u003C\u002Fdiv>\n-\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-edit\" onclick=\"wppm_get_edit_proj_status(\u003C?php echo esc_attr($status->id)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fdiv>\n-\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-delete\" onclick=\"wppm_delete_proj_status(\u003C?php echo esc_attr($status->id)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fdiv>\n-\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\u003C\u002Fli>\n-\t\t\u003C?php } \n-\t\t}\n-\t\t?>\n-\t\u003C\u002Ful>\n-\t\u003Cinput type=\"hidden\" name=\"wppm_status_order_ajax_nonce\" id=\"wppm_status_order_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_status_order' ) ); ?>\">\n-\t\u003Cinput type=\"hidden\" name=\"wppm_delete_pstatus_ajax_nonce\" id=\"wppm_delete_pstatus_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_delete_status' ) ); ?>\">\n-\n-\u003Cdiv>\n-\u003Cstyle>\n-\t#wppm_proj_statuses_container .wppm-add-new-btn:hover{\n-\t\tbackground-color: \u003C?php echo esc_attr($wppm_ap_settings['add-new-button-hover-color'])?>!important;\n-\t}\n-\u003C\u002Fstyle>\n-\u003Cscript>\n-\tjQuery(function(){\n-    jQuery( \".wppm-sortable\" ).sortable({ handle: '.wppm-sortable-handle' });\n-\t\tjQuery( \".wppm-sortable\" ).on(\"sortupdate\",function(event,ui){\n-\t\t\tvar keys = jQuery(this).sortable( \"toArray\", {attribute: 'data-id'} );\n-\t\t\tvar status_order = \u003C?php echo wp_json_encode($status_ids); ?>;\n-\t\t\tvar result = {};\n-\t\t\tfor (var i = 0; i \u003C keys.length; i++){\n-\t\t\t\tresult[keys[i]] = status_order[i];\n-\t\t\t}\n-\t\t\tvar data = {\n-\t\t\t\taction: 'wppm_set_status_order',\n-\t\t\t\tload_orders : result,\n-\t\t\t\t_ajax_nonce : jQuery('#wppm_status_order_ajax_nonce').val()\n-\t\t\t};\n-\t\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\t\tvar response = JSON.parse(response_str);\n-\t\t\t\tif (response.sucess_status==1) {\n-\t\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-\t\t\t\t}\n-\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-\t\t  \t});\n-\t\t});\n-\t});\n-\n-\tfunction wppm_set_add_proj_status(){\n-\t\tvar status_name = jQuery('#wppm_proj_status_name').val().trim();\n-\t\tif (status_name.length == 0) {\n-\t\t\tjQuery('#wppm_proj_status_name').val('').focus();\n-\t\t\treturn;\n-\t\t}\n-\t\tvar status_color = jQuery('#wppm_proj_status_color').val().trim();\n-\t\tif (status_color.length == 0) {\n-\t\t\tstatus_color = '#ffffff';\n-\t\t}\n-\t\tvar status_bg_color = jQuery('#wppm_proj_status_bg_color').val().trim();\n-\t\tif (status_bg_color.length == 0) {\n-\t\t\tstatus_bg_color = '#1E90FF';\n-\t\t}\n-\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\n-\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\n-\t\tvar data = {\n-\t\t\taction: 'wppm_set_add_status',\n-\t\t\tstatus_name : status_name,\n-\t\t\tstatus_color: status_color,\n-\t\t\tstatus_bg_color: status_bg_color,\n-\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\twppm_modal_close();\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\twppm_get_proj_status_settings();\n-\t\t\tif (response.sucess_status=='1') {\n-\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-\t\t\t\twppm_get_proj_status_settings();\n-\t\t\t} else {\n-\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\n-\t\t\t}\n-\t\t})\n-\t}\n-\n-\tfunction wppm_get_edit_proj_status(status_id){\n-\t\twppm_modal_open(wppm_admin.edit_status);\n-\t\tvar data = {\n-\t\t\taction : 'wppm_get_edit_proj_status',\n-\t\t\tstatus_id:status_id\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\tjQuery('#wppm_popup_body').html(response.body);\n-\t\t\tjQuery('#wppm_popup_footer').html(response.footer);\n-\t\t\tjQuery('#wppm_proj_status_name').focus();\n-\t\t})\n-\t}\n-\n-\tfunction wppm_set_edit_status(status_id){\n-\t\tvar status_name = jQuery('#wppm_edit_status_name').val().trim();\n-\t\tif (status_name.length == 0) {\n-\t\t\tjQuery('#wppm_edit_status_name').val('').focus();\n-\t\t\treturn;\n-\t\t}\n-\t\tvar status_color = jQuery('#wppm_edit_status_color').val().trim();\n-\t\tif (status_color.length == 0) {\n-\t\t\tstatus_color = '#ffffff';\n-\t\t}\n-\t\tvar status_bg_color = jQuery('#wppm_edit_status_bg_color').val().trim();\n-\t\tif (status_bg_color.length == 0) {\n-\t\t\tstatus_bg_color = '#1E90FF';\n-\t\t}\n-\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\n-\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\n-\t\tvar data = {\n-\t\t\taction : 'wppm_set_edit_status',\n-\t\t\tstatus_id:status_id,\n-\t\t\tstatus_name:status_name,\n-\t\t\tstatus_color: status_color,\n-\t\t\tstatus_bg_color: status_bg_color,\n-\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\twppm_modal_close();\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\twppm_get_proj_status_settings();\n-\t\t\tif (response.sucess_status=='1') {\n-\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-\t\t\t\twppm_get_proj_status_settings();\n-\t\t\t} else {\n-\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\n-\t\t\t}\n-\t\t});\n-\t}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+?>\r\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb, $wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+} \r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+$orderby_sql = (sanitize_sql_orderby( \"load_order ASC\"));\r\n+$statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project_statuses ORDER BY $orderby_sql\");\r\n+$status_arr = $wpdb->get_results(\"SELECT id FROM {$wpdb->prefix}wppm_project_statuses\");\r\n+$status_ids =array();\r\n+if(!empty($status_arr)){\r\n+\tforeach($status_arr as $key=>$val){\r\n+\t\t$statuses_array= json_decode(wp_json_encode($val));\r\n+\t\t$status_ids[] = $statuses_array->id;\r\n+\t}\r\n+\t$status_ids = $wppmfunction->sanitize_array($status_ids);\r\n+}\r\n+?>\r\n+\u003Cdiv id=\"wppm_proj_statuses_container\">\r\n+\t\u003Cdiv class=\"wppm-help-container\">\r\n+      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs\u002Fproject-statuses\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\r\n+    \u003C\u002Fdiv>\r\n+\t\u003Cspan class=\"wppm-title\">\r\n+\t\t\u003C?php echo esc_html_e('Project Statuses','taskbuilder');?>\r\n+\t\u003C\u002Fspan>\r\n+\t\u003Cspan style=\"margin-left:10px;background-color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-bg-color'])?>;color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-text-color'])?>;\" class=\"wppm-add-new-btn wppm_btn btn-primary\" onclick=\"wppm_get_add_proj_status();\">\u003C?php echo esc_html_e('+Add New','taskbuilder');?>\u003C\u002Fspan>\r\n+\t\u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\r\n+\r\n+\t\u003Cul class=\"wppm-sortable\">\r\n+\t\t\u003C?php \r\n+\t\tif($statuses){\r\n+\t\t\tforeach ($statuses as $status){\r\n+\t\t\t\t$color=$status->color;\r\n+\t\t\t\t$background_color=$status->bg_color;\r\n+\t\t\t\t?>\r\n+\t\t\t\t\u003Cli class=\"ui-state-default\" data-id=\"\u003C?php echo esc_attr($status->id) ?>\">\r\n+\t\t\t\t\t\u003Cdiv class=\"wppm-flex-container\"style=\"background-color:\u003C?php echo esc_attr($background_color)?>;color:\u003C?php echo esc_attr($color)?>;\">\r\n+\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-handle\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ffilter.svg'); ?>\" alt=\"filter\">\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-label\">\u003C?php echo esc_html($status->name) ?>\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-edit\" onclick=\"wppm_get_edit_proj_status(\u003C?php echo esc_attr($status->id)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-delete\" onclick=\"wppm_delete_proj_status(\u003C?php echo esc_attr($status->id)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fdiv>\r\n+\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\u003C\u002Fli>\r\n+\t\t\u003C?php } \r\n+\t\t}\r\n+\t\t?>\r\n+\t\u003C\u002Ful>\r\n+\t\u003Cinput type=\"hidden\" name=\"wppm_status_order_ajax_nonce\" id=\"wppm_status_order_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_status_order' ) ); ?>\">\r\n+\t\u003Cinput type=\"hidden\" name=\"wppm_delete_pstatus_ajax_nonce\" id=\"wppm_delete_pstatus_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_delete_status' ) ); ?>\">\r\n+\r\n+\u003Cdiv>\r\n+\u003Cstyle>\r\n+\t#wppm_proj_statuses_container .wppm-add-new-btn:hover{\r\n+\t\tbackground-color: \u003C?php echo esc_attr($wppm_ap_settings['add-new-button-hover-color'])?>!important;\r\n+\t}\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript>\r\n+\tjQuery(function(){\r\n+    jQuery( \".wppm-sortable\" ).sortable({ handle: '.wppm-sortable-handle' });\r\n+\t\tjQuery( \".wppm-sortable\" ).on(\"sortupdate\",function(event,ui){\r\n+\t\t\tvar keys = jQuery(this).sortable( \"toArray\", {attribute: 'data-id'} );\r\n+\t\t\tvar status_order = \u003C?php echo wp_json_encode($status_ids); ?>;\r\n+\t\t\tvar result = {};\r\n+\t\t\tfor (var i = 0; i \u003C keys.length; i++){\r\n+\t\t\t\tresult[keys[i]] = status_order[i];\r\n+\t\t\t}\r\n+\t\t\tvar data = {\r\n+\t\t\t\taction: 'wppm_set_status_order',\r\n+\t\t\t\tload_orders : result,\r\n+\t\t\t\t_ajax_nonce : jQuery('#wppm_status_order_ajax_nonce').val()\r\n+\t\t\t};\r\n+\t\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\t\tif (response.sucess_status==1) {\r\n+\t\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+\t\t\t\t}\r\n+\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+\t\t  \t});\r\n+\t\t});\r\n+\t});\r\n+\r\n+\tfunction wppm_set_add_proj_status(){\r\n+\t\tvar status_name = jQuery('#wppm_proj_status_name').val().trim();\r\n+\t\tif (status_name.length == 0) {\r\n+\t\t\tjQuery('#wppm_proj_status_name').val('').focus();\r\n+\t\t\treturn;\r\n+\t\t}\r\n+\t\tvar status_color = jQuery('#wppm_proj_status_color').val().trim();\r\n+\t\tif (status_color.length == 0) {\r\n+\t\t\tstatus_color = '#ffffff';\r\n+\t\t}\r\n+\t\tvar status_bg_color = jQuery('#wppm_proj_status_bg_color').val().trim();\r\n+\t\tif (status_bg_color.length == 0) {\r\n+\t\t\tstatus_bg_color = '#1E90FF';\r\n+\t\t}\r\n+\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\r\n+\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\r\n+\t\tvar data = {\r\n+\t\t\taction: 'wppm_set_add_status',\r\n+\t\t\tstatus_name : status_name,\r\n+\t\t\tstatus_color: status_color,\r\n+\t\t\tstatus_bg_color: status_bg_color,\r\n+\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\twppm_modal_close();\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\twppm_get_proj_status_settings();\r\n+\t\t\tif (response.sucess_status=='1') {\r\n+\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t\twppm_get_proj_status_settings();\r\n+\t\t\t} else {\r\n+\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t}\r\n+\t\t})\r\n+\t}\r\n+\r\n+\tfunction wppm_get_edit_proj_status(status_id){\r\n+\t\twppm_modal_open(wppm_admin.edit_status);\r\n+\t\tvar data = {\r\n+\t\t\taction : 'wppm_get_edit_proj_status',\r\n+\t\t\tstatus_id:status_id\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\tjQuery('#wppm_popup_body').html(response.body);\r\n+\t\t\tjQuery('#wppm_popup_footer').html(response.footer);\r\n+\t\t\tjQuery('#wppm_proj_status_name').focus();\r\n+\t\t})\r\n+\t}\r\n+\r\n+\tfunction wppm_set_edit_status(status_id){\r\n+\t\tvar status_name = jQuery('#wppm_edit_status_name').val().trim();\r\n+\t\tif (status_name.length == 0) {\r\n+\t\t\tjQuery('#wppm_edit_status_name').val('').focus();\r\n+\t\t\treturn;\r\n+\t\t}\r\n+\t\tvar status_color = jQuery('#wppm_edit_status_color').val().trim();\r\n+\t\tif (status_color.length == 0) {\r\n+\t\t\tstatus_color = '#ffffff';\r\n+\t\t}\r\n+\t\tvar status_bg_color = jQuery('#wppm_edit_status_bg_color').val().trim();\r\n+\t\tif (status_bg_color.length == 0) {\r\n+\t\t\tstatus_bg_color = '#1E90FF';\r\n+\t\t}\r\n+\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\r\n+\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\r\n+\t\tvar data = {\r\n+\t\t\taction : 'wppm_set_edit_status',\r\n+\t\t\tstatus_id:status_id,\r\n+\t\t\tstatus_name:status_name,\r\n+\t\t\tstatus_color: status_color,\r\n+\t\t\tstatus_bg_color: status_bg_color,\r\n+\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\twppm_modal_close();\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\twppm_get_proj_status_settings();\r\n+\t\t\tif (response.sucess_status=='1') {\r\n+\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t\twppm_get_proj_status_settings();\r\n+\t\t\t} else {\r\n+\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t}\r\n+\t\t});\r\n+\t}\r\n \u003C\u002Fscript>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,55 +1,55 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-} \n-$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\n-$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-?>\n-\u003Cform id=\"wppm_frm_rich_text_editor_settings\" method=\"post\" action=\"javascript:wppm_set_rich_text_editor_settings();\">\n-    \u003Cdiv class=\"wppm-help-container\">\n-      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs-category\u002Fsettings\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\n-    \u003C\u002Fdiv>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Enable','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable rich text editor .','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cselect class=\"form-control\" name=\"wppm_rich_text_editor_setting\" id=\"wppm_rich_text_editor_setting\">\n-      \u003Coption value=\"1\" \u003C?php selected( $wppm_rich_text_editor, '1' ); ?>>\n-        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-      \u003Coption value=\"0\" \u003C?php selected( $wppm_rich_text_editor, '0' ); ?>>\n-        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\n-      \u003C\u002Foption>\n-    \u003C\u002Fselect>\n-    \u003Chr>\n-    \u003Cspan>\n-      \u003Clabel>\u003C?php echo esc_html_e('Toolbar actions','taskbuilder');?>\u003C\u002Flabel>\n-    \u003C\u002Fspan>\u003Cbr>\n-    \u003Cdiv class=\"checkboxes-group\">\n-        \u003C?php\n-        $toolbar = $wppmfunction->wppm_toolbar_options_setting();\n-        foreach ( $toolbar as $action ) :\n-            ?>\n-            \u003Cdiv class=\"inner-group\">\n-                \u003C?php\n-                  $checked =  $wppm_toolbar_actions[$action['value']] == 1  ? 'checked' : '';\n-                ?>\n-                \u003Cinput name=\"wppm_toolbar[]\" type=\"checkbox\" \u003C?php echo esc_attr( $checked ); ?> value=\"\u003C?php echo esc_attr( $action['value'] ); ?>\">\n-                \u003C?php echo esc_attr( $action['name'] ); ?>\n-            \u003C\u002Fdiv>\n-            \u003C?php\n-        endforeach;\n-        ?>\n-    \u003C\u002Fdiv>\n-    \u003Chr>\n-    \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_rich_text_editor_settings\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_rich_text_editor_settings' ) ); ?>\">\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+} \r\n+$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\r\n+$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+?>\r\n+\u003Cform id=\"wppm_frm_rich_text_editor_settings\" method=\"post\" action=\"javascript:wppm_set_rich_text_editor_settings();\">\r\n+    \u003Cdiv class=\"wppm-help-container\">\r\n+      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs-category\u002Fsettings\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Enable','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cp class=\"help-block\">\u003C?php echo esc_html_e('Default enable\u002Fdisable rich text editor .','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cselect class=\"form-control\" name=\"wppm_rich_text_editor_setting\" id=\"wppm_rich_text_editor_setting\">\r\n+      \u003Coption value=\"1\" \u003C?php selected( $wppm_rich_text_editor, '1' ); ?>>\r\n+        \u003C?php esc_html_e( 'Enable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+      \u003Coption value=\"0\" \u003C?php selected( $wppm_rich_text_editor, '0' ); ?>>\r\n+        \u003C?php esc_html_e( 'Disable', 'taskbuilder' ); ?>\r\n+      \u003C\u002Foption>\r\n+    \u003C\u002Fselect>\r\n+    \u003Chr>\r\n+    \u003Cspan>\r\n+      \u003Clabel>\u003C?php echo esc_html_e('Toolbar actions','taskbuilder');?>\u003C\u002Flabel>\r\n+    \u003C\u002Fspan>\u003Cbr>\r\n+    \u003Cdiv class=\"checkboxes-group\">\r\n+        \u003C?php\r\n+        $toolbar = $wppmfunction->wppm_toolbar_options_setting();\r\n+        foreach ( $toolbar as $action ) :\r\n+            ?>\r\n+            \u003Cdiv class=\"inner-group\">\r\n+                \u003C?php\r\n+                  $checked =  $wppm_toolbar_actions[$action['value']] == 1  ? 'checked' : '';\r\n+                ?>\r\n+                \u003Cinput name=\"wppm_toolbar[]\" type=\"checkbox\" \u003C?php echo esc_attr( $checked ); ?> value=\"\u003C?php echo esc_attr( $action['value'] ); ?>\">\r\n+                \u003C?php echo esc_attr( $action['name'] ); ?>\r\n+            \u003C\u002Fdiv>\r\n+            \u003C?php\r\n+        endforeach;\r\n+        ?>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Chr>\r\n+    \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" style=\"background-color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:\u003C?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+    \u003Cspan class=\"wppm_submit_wait\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Floading_buffer.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>  \r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_rich_text_editor_settings\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_rich_text_editor_settings' ) ); ?>\">\r\n \u003C\u002Fform>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,185 +1,185 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-?>\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb, $wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-} \n-$orderby_sql = (sanitize_sql_orderby( \"load_order ASC\"));\n-$statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses ORDER BY $orderby_sql\");\n-$status_arr = $wpdb->get_results(\"SELECT id FROM {$wpdb->prefix}wppm_task_statuses\");\n-$status_ids=array();\n-if(!empty($status_arr)){\n-\tforeach($status_arr as $key=>$val){\n-\t\t$statuses_array= json_decode(wp_json_encode($val));\n-\t\t$status_ids[] = $statuses_array->id;\n-\t}\n-\t$status_ids = $wppmfunction->sanitize_array($status_ids);\n-}\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-?>\n-\u003Cdiv id=\"wppm_task_statuses_container\">\n-\t\u003Cdiv class=\"wppm-help-container\">\n-      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs\u002Ftask-statuses\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\n-    \u003C\u002Fdiv>\n-\t\u003Cspan class=\"wppm-title\">\n-\t\t\u003C?php echo esc_html_e('Task Statuses','taskbuilder');?>\n-\t\u003C\u002Fspan>\n-\t\u003Cspan style=\"margin-left:10px;background-color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-bg-color'])?>;color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-text-color'])?>;\" class=\"wppm_btn btn-primary wppm-add-new-btn\" onclick=\"wppm_get_add_task_status();\">\u003C?php echo esc_html_e('+Add New','taskbuilder');?>\u003C\u002Fspan>\n-\t\u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\n-\t\u003Cul class=\"wppm-sortable\">\n-\t\u003C?php \n-\tif(!empty($statuses)){\n-\t\tforeach ($statuses as $status){\n-\t\t\t$color=$status->color;\n-\t\t\t$background_color=$status->bg_color;\n-\t\t?>\n-\t\t\u003Cli class=\"ui-state-default\" data-id=\"\u003C?php echo esc_attr($status->id)?>\">\n-\t\t\t\t\u003Cdiv class=\"wppm-flex-container\"style=\"background-color:\u003C?php echo esc_attr($background_color)?>;color:\u003C?php echo esc_attr($color)?>;\">\n-\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-handle\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ffilter.svg'); ?>\" alt=\"filter\">\u003C\u002Fdiv>\n-\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-label\">\u003C?php echo esc_html($status->name)?>\u003C\u002Fdiv>\n-\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-edit\" onclick=\"wppm_get_edit_task_status(\u003C?php echo esc_attr($status->id)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fdiv>\n-\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-delete\" onclick=\"wppm_delete_task_status(\u003C?php echo esc_attr($status->id)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fdiv>\n-\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\u003C\u002Fli>\n-\n-\t\u003C?php } \n-\t}\n-\t?>\n-\t\u003C\u002Ful>\n-\t\u003Cinput type=\"hidden\" name=\"wppm_tstatus_order_ajax_nonce\" id=\"wppm_tstatus_order_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_task_status_order' ) ); ?>\">\n-\t\u003Cinput type=\"hidden\" name=\"wppm_delete_tstatus_ajax_nonce\" id=\"wppm_delete_tstatus_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_delete_task_status' ) ); ?>\">\n-\u003Cdiv>\n-\u003Cstyle>\n-\t#wppm_task_statuses_container .wppm-add-new-btn:hover{\n-\t\tbackground-color: \u003C?php echo esc_attr($wppm_ap_settings['add-new-button-hover-color'])?>!important;\n-\t}\n-\u003C\u002Fstyle>\n-\u003Cscript>\n-\tjQuery(function(){\n-    jQuery( \".wppm-sortable\" ).sortable({ handle: '.wppm-sortable-handle' });\n-\t\tjQuery( \".wppm-sortable\" ).on(\"sortupdate\",function(event,ui){\n-\t\t\tvar keys = jQuery(this).sortable( \"toArray\", {attribute: 'data-id'} );\n-\t\t\tvar status_order = \u003C?php echo wp_json_encode($status_ids); ?>;\n-\t\t\tvar result = {};\n-\t\t\tfor (var i = 0; i \u003C keys.length; i++){\n-\t\t\t\tresult[keys[i]] = status_order[i];\n-\t\t\t}\n-\t\t\tvar data = {\n-\t\t\t\taction: 'wppm_set_task_status_order',\n-\t\t\t\tload_orders : result,\n-\t\t\t\t_ajax_nonce : jQuery('#wppm_tstatus_order_ajax_nonce').val()\n-\t\t\t};\n-\t\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\t\tvar response = JSON.parse(response_str);\n-\t\t\t\tif (response.sucess_status==1) {\n-\t\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-\t\t\t\t}\n-\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-\t\t  \t});\n-\t\t});\n-\t});\n-\n-\tfunction wppm_set_add_task_status(){\n-\t\tvar status_name = jQuery('#wppm_task_status_name').val().trim();\n-\t\tif (status_name.length == 0) {\n-\t\t\tjQuery('#wppm_task_status_name').val('').focus();\n-\t\t\treturn;\n-\t\t}\n-\t\tvar status_color = jQuery('#wppm_task_status_color').val().trim();\n-\t\tif (status_color.length == 0) {\n-\t\t\tstatus_color = '#ffffff';\n-\t\t}\n-\t\tvar status_bg_color = jQuery('#wppm_task_status_bg_color').val().trim();\n-\t\tif (status_bg_color.length == 0) {\n-\t\t\tstatus_bg_color = '#1E90FF';\n-\t\t}\n-\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\n-\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\n-\t\tvar data = {\n-\t\t\taction: 'wppm_set_add_task_status',\n-\t\t\tstatus_name : status_name,\n-\t\t\tstatus_color: status_color,\n-\t\t\tstatus_bg_color: status_bg_color,\n-\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\twppm_modal_close();\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\twppm_get_task_status_settings();\n-\t\t\tif (response.sucess_status=='1') {\n-\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-\t\t\t\twppm_get_task_status_settings();\n-\t\t\t} else {\n-\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\n-\t\t\t}\n-\t\t})\n-\t}\n-\n-\tfunction wppm_get_edit_task_status(status_id){\n-\t\twppm_modal_open(wppm_admin.edit_status);\n-\t\tvar data = {\n-\t\t\taction : 'wppm_get_edit_task_status',\n-\t\t\tstatus_id:status_id\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\tjQuery('#wppm_popup_body').html(response.body);\n-\t\t\tjQuery('#wppm_popup_footer').html(response.footer);\n-\t\t\tjQuery('#wppm_proj_status_name').focus();\n-\t\t})\n-\t}\n-\n-\tfunction wppm_set_edit_task_status(status_id){\n-\t\tvar status_name = jQuery('#wppm_edit_task_status_name').val().trim();\n-\t\tif (status_name.length == 0) {\n-\t\t\tjQuery('#wppm_edit_task_status_name').val('').focus();\n-\t\t\treturn;\n-\t\t}\n-\t\tvar status_color = jQuery('#wppm_edit_task_status_color').val().trim();\n-\t\tif (status_color.length == 0) {\n-\t\t\tstatus_color = '#ffffff';\n-\t\t}\n-\t\tvar status_bg_color = jQuery('#wppm_edit_task_status_bg_color').val().trim();\n-\t\tif (status_bg_color.length == 0) {\n-\t\t\tstatus_bg_color = '#1E90FF';\n-\t\t}\n-\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\n-\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\n-\t\tvar data = {\n-\t\t\taction : 'wppm_set_edit_task_status',\n-\t\t\tstatus_id:status_id,\n-\t\t\tstatus_name:status_name,\n-\t\t\tstatus_color: status_color,\n-\t\t\tstatus_bg_color: status_bg_color,\n-\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\n-\t\t};\n-\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\n-\t\t\twppm_modal_close();\n-\t\t\tvar response = JSON.parse(response_str);\n-\t\t\twppm_get_task_status_settings();\n-\t\t\tif (response.sucess_status=='1') {\n-\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-\t\t\t\twppm_get_task_status_settings();\n-\t\t\t} else {\n-\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\n-\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\n-\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\n-\t\t\t}\n-\t\t});\n-\t}\n-\u003C\u002Fscript>\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+?>\r\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb, $wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+} \r\n+$orderby_sql = (sanitize_sql_orderby( \"load_order ASC\"));\r\n+$statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses ORDER BY $orderby_sql\");\r\n+$status_arr = $wpdb->get_results(\"SELECT id FROM {$wpdb->prefix}wppm_task_statuses\");\r\n+$status_ids=array();\r\n+if(!empty($status_arr)){\r\n+\tforeach($status_arr as $key=>$val){\r\n+\t\t$statuses_array= json_decode(wp_json_encode($val));\r\n+\t\t$status_ids[] = $statuses_array->id;\r\n+\t}\r\n+\t$status_ids = $wppmfunction->sanitize_array($status_ids);\r\n+}\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+?>\r\n+\u003Cdiv id=\"wppm_task_statuses_container\">\r\n+\t\u003Cdiv class=\"wppm-help-container\">\r\n+      \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fdocs\u002Ftask-statuses\u002F\" target=\"_blank\">\u003C?php echo esc_attr__( 'Click here', 'taskbuilder' )?>\u003C\u002Fa> \u003C?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>\r\n+    \u003C\u002Fdiv>\r\n+\t\u003Cspan class=\"wppm-title\">\r\n+\t\t\u003C?php echo esc_html_e('Task Statuses','taskbuilder');?>\r\n+\t\u003C\u002Fspan>\r\n+\t\u003Cspan style=\"margin-left:10px;background-color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-bg-color'])?>;color:\u003C?php echo esc_attr($wppm_ap_settings['add-new-button-text-color'])?>;\" class=\"wppm_btn btn-primary wppm-add-new-btn\" onclick=\"wppm_get_add_task_status();\">\u003C?php echo esc_html_e('+Add New','taskbuilder');?>\u003C\u002Fspan>\r\n+\t\u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\r\n+\t\u003Cul class=\"wppm-sortable\">\r\n+\t\u003C?php \r\n+\tif(!empty($statuses)){\r\n+\t\tforeach ($statuses as $status){\r\n+\t\t\t$color=$status->color;\r\n+\t\t\t$background_color=$status->bg_color;\r\n+\t\t?>\r\n+\t\t\u003Cli class=\"ui-state-default\" data-id=\"\u003C?php echo esc_attr($status->id)?>\">\r\n+\t\t\t\t\u003Cdiv class=\"wppm-flex-container\"style=\"background-color:\u003C?php echo esc_attr($background_color)?>;color:\u003C?php echo esc_attr($color)?>;\">\r\n+\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-handle\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ffilter.svg'); ?>\" alt=\"filter\">\u003C\u002Fdiv>\r\n+\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-label\">\u003C?php echo esc_html($status->name)?>\u003C\u002Fdiv>\r\n+\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-edit\" onclick=\"wppm_get_edit_task_status(\u003C?php echo esc_attr($status->id)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fdiv>\r\n+\t\t\t\t\t\u003Cdiv class=\"wppm-sortable-delete\" onclick=\"wppm_delete_task_status(\u003C?php echo esc_attr($status->id)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fdiv>\r\n+\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\u003C\u002Fli>\r\n+\r\n+\t\u003C?php } \r\n+\t}\r\n+\t?>\r\n+\t\u003C\u002Ful>\r\n+\t\u003Cinput type=\"hidden\" name=\"wppm_tstatus_order_ajax_nonce\" id=\"wppm_tstatus_order_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_task_status_order' ) ); ?>\">\r\n+\t\u003Cinput type=\"hidden\" name=\"wppm_delete_tstatus_ajax_nonce\" id=\"wppm_delete_tstatus_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_delete_task_status' ) ); ?>\">\r\n+\u003Cdiv>\r\n+\u003Cstyle>\r\n+\t#wppm_task_statuses_container .wppm-add-new-btn:hover{\r\n+\t\tbackground-color: \u003C?php echo esc_attr($wppm_ap_settings['add-new-button-hover-color'])?>!important;\r\n+\t}\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript>\r\n+\tjQuery(function(){\r\n+    jQuery( \".wppm-sortable\" ).sortable({ handle: '.wppm-sortable-handle' });\r\n+\t\tjQuery( \".wppm-sortable\" ).on(\"sortupdate\",function(event,ui){\r\n+\t\t\tvar keys = jQuery(this).sortable( \"toArray\", {attribute: 'data-id'} );\r\n+\t\t\tvar status_order = \u003C?php echo wp_json_encode($status_ids); ?>;\r\n+\t\t\tvar result = {};\r\n+\t\t\tfor (var i = 0; i \u003C keys.length; i++){\r\n+\t\t\t\tresult[keys[i]] = status_order[i];\r\n+\t\t\t}\r\n+\t\t\tvar data = {\r\n+\t\t\t\taction: 'wppm_set_task_status_order',\r\n+\t\t\t\tload_orders : result,\r\n+\t\t\t\t_ajax_nonce : jQuery('#wppm_tstatus_order_ajax_nonce').val()\r\n+\t\t\t};\r\n+\t\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\t\tif (response.sucess_status==1) {\r\n+\t\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+\t\t\t\t}\r\n+\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+\t\t  \t});\r\n+\t\t});\r\n+\t});\r\n+\r\n+\tfunction wppm_set_add_task_status(){\r\n+\t\tvar status_name = jQuery('#wppm_task_status_name').val().trim();\r\n+\t\tif (status_name.length == 0) {\r\n+\t\t\tjQuery('#wppm_task_status_name').val('').focus();\r\n+\t\t\treturn;\r\n+\t\t}\r\n+\t\tvar status_color = jQuery('#wppm_task_status_color').val().trim();\r\n+\t\tif (status_color.length == 0) {\r\n+\t\t\tstatus_color = '#ffffff';\r\n+\t\t}\r\n+\t\tvar status_bg_color = jQuery('#wppm_task_status_bg_color').val().trim();\r\n+\t\tif (status_bg_color.length == 0) {\r\n+\t\t\tstatus_bg_color = '#1E90FF';\r\n+\t\t}\r\n+\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\r\n+\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\r\n+\t\tvar data = {\r\n+\t\t\taction: 'wppm_set_add_task_status',\r\n+\t\t\tstatus_name : status_name,\r\n+\t\t\tstatus_color: status_color,\r\n+\t\t\tstatus_bg_color: status_bg_color,\r\n+\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\twppm_modal_close();\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\twppm_get_task_status_settings();\r\n+\t\t\tif (response.sucess_status=='1') {\r\n+\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t\twppm_get_task_status_settings();\r\n+\t\t\t} else {\r\n+\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t}\r\n+\t\t})\r\n+\t}\r\n+\r\n+\tfunction wppm_get_edit_task_status(status_id){\r\n+\t\twppm_modal_open(wppm_admin.edit_status);\r\n+\t\tvar data = {\r\n+\t\t\taction : 'wppm_get_edit_task_status',\r\n+\t\t\tstatus_id:status_id\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\tjQuery('#wppm_popup_body').html(response.body);\r\n+\t\t\tjQuery('#wppm_popup_footer').html(response.footer);\r\n+\t\t\tjQuery('#wppm_proj_status_name').focus();\r\n+\t\t})\r\n+\t}\r\n+\r\n+\tfunction wppm_set_edit_task_status(status_id){\r\n+\t\tvar status_name = jQuery('#wppm_edit_task_status_name').val().trim();\r\n+\t\tif (status_name.length == 0) {\r\n+\t\t\tjQuery('#wppm_edit_task_status_name').val('').focus();\r\n+\t\t\treturn;\r\n+\t\t}\r\n+\t\tvar status_color = jQuery('#wppm_edit_task_status_color').val().trim();\r\n+\t\tif (status_color.length == 0) {\r\n+\t\t\tstatus_color = '#ffffff';\r\n+\t\t}\r\n+\t\tvar status_bg_color = jQuery('#wppm_edit_task_status_bg_color').val().trim();\r\n+\t\tif (status_bg_color.length == 0) {\r\n+\t\t\tstatus_bg_color = '#1E90FF';\r\n+\t\t}\r\n+\t\tjQuery('.wppm_popup_action').text('\u003C?php esc_js(__('Please wait ...','taskbuilder'))?>');\r\n+\t\tjQuery('.wppm_popup_action, #wppm_popup_body input').attr(\"disabled\", \"disabled\");\r\n+\t\tvar data = {\r\n+\t\t\taction : 'wppm_set_edit_task_status',\r\n+\t\t\tstatus_id:status_id,\r\n+\t\t\tstatus_name:status_name,\r\n+\t\t\tstatus_color: status_color,\r\n+\t\t\tstatus_bg_color: status_bg_color,\r\n+\t\t\t_ajax_nonce:jQuery('[name=\"_ajax_nonce\"]').val()\r\n+\t\t};\r\n+\t\tjQuery.post(wppm_admin.ajax_url, data, function(response_str) {\r\n+\t\t\twppm_modal_close();\r\n+\t\t\tvar response = JSON.parse(response_str);\r\n+\t\t\twppm_get_task_status_settings();\r\n+\t\t\tif (response.sucess_status=='1') {\r\n+\t\t\t\tjQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t\twppm_get_task_status_settings();\r\n+\t\t\t} else {\r\n+\t\t\t\tjQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);\r\n+\t\t\t\tjQuery('#wppm_alert_error').slideDown('fast',function(){});\r\n+\t\t\t\tsetTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);\r\n+\t\t\t}\r\n+\t\t});\r\n+\t}\r\n+\u003C\u002Fscript>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_grid_view.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_grid_view.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_grid_view.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_grid_view.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,27 +1,27 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-\n-if ( check_ajax_referer( 'wppm_reset_ap_grid_view', 'wppm_reset_grid_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-update_option(\n-  'wppm-ap-grid-view',\n-  array(\n-    'menu-button-bg-color'\t\t=>'#0052CC',\n-    'menu-button-hover-color'\t=>'#0065ff',\n-    'menu-button-text-color'\t=>'#fff',\n-    'grid-background-color'     => '#fff',\n-    'grid-header-text-color'    => '#2C3E50'\n-  )\n-);\n-wp_die();\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+\r\n+if ( check_ajax_referer( 'wppm_reset_ap_grid_view', 'wppm_reset_grid_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+update_option(\r\n+  'wppm-ap-grid-view',\r\n+  array(\r\n+    'menu-button-bg-color'\t\t=>'#0052CC',\r\n+    'menu-button-hover-color'\t=>'#0065ff',\r\n+    'menu-button-text-color'\t=>'#fff',\r\n+    'grid-background-color'     => '#fff',\r\n+    'grid-header-text-color'    => '#2C3E50'\r\n+  )\r\n+);\r\n+wp_die();\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_individual_proj.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_individual_proj.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_individual_proj.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_individual_proj.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,34 +1,34 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-if ( check_ajax_referer( 'wppm_reset_ap_individual_proj', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-update_option(\n-  'wppm-ap-individual-project',\n-  array(\n-    'menu-button-bg-color'\t\t=>'#0052CC',\n-    'menu-button-hover-color'\t=>'#0065ff',\n-    'menu-button-text-color'\t=>'#fff',\n-    'comment-primary-color'      => '#000000',\n-    'comment-secondary-color'    => '#4e4e4e',\n-    'comment-date-color'         => '#a8aeb5',\n-    'comment-date-hover-color'   => '#000000',\n-    'comment-send-btn-bg-color'  => '#5067c5',\n-    'comment-send-btn-color'  =>\t'#ffffff',\n-    'widget-header-bg-color'   => '#ffffff',\n-    'widget-header-text-color' => '#2C3E50',\n-    'widget-body-bg-color'     => '#ffffff',\n-    'widget-body-label-color'  => '#9c9c9c',\n-    'widget-body-text-color'   => '#2C3E50',\n-  )\n-);\n-wp_die();\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+if ( check_ajax_referer( 'wppm_reset_ap_individual_proj', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+update_option(\r\n+  'wppm-ap-individual-project',\r\n+  array(\r\n+    'menu-button-bg-color'\t\t=>'#0052CC',\r\n+    'menu-button-hover-color'\t=>'#0065ff',\r\n+    'menu-button-text-color'\t=>'#fff',\r\n+    'comment-primary-color'      => '#000000',\r\n+    'comment-secondary-color'    => '#4e4e4e',\r\n+    'comment-date-color'         => '#a8aeb5',\r\n+    'comment-date-hover-color'   => '#000000',\r\n+    'comment-send-btn-bg-color'  => '#5067c5',\r\n+    'comment-send-btn-color'  =>\t'#ffffff',\r\n+    'widget-header-bg-color'   => '#ffffff',\r\n+    'widget-header-text-color' => '#2C3E50',\r\n+    'widget-body-bg-color'     => '#ffffff',\r\n+    'widget-body-label-color'  => '#9c9c9c',\r\n+    'widget-body-text-color'   => '#2C3E50',\r\n+  )\r\n+);\r\n+wp_die();\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_individual_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_individual_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_individual_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_individual_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,31 +1,31 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-if ( check_ajax_referer( 'wppm_reset_ap_individual_task', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-update_option(\n-  'wppm-ap-individual-task',\n-  array(\n-    'comment-primary-color'      => '#000000',\n-    'comment-secondary-color'    => '#4e4e4e',\n-    'comment-date-color'         => '#a8aeb5',\n-    'comment-date-hover-color'   => '#000000',\n-    'comment-send-btn-bg-color'  => '#5067c5',\n-    'comment-send-btn-color'  =>\t'#ffffff',\n-    'widget-header-bg-color'   => '#ffffff',\n-    'widget-header-text-color' => '#2C3E50',\n-    'widget-body-bg-color'     => '#ffffff',\n-    'widget-body-label-color'  => '#9c9c9c',\n-    'widget-body-text-color'   => '#2C3E50',\n-  )\n-);\n-wp_die();\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+if ( check_ajax_referer( 'wppm_reset_ap_individual_task', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+update_option(\r\n+  'wppm-ap-individual-task',\r\n+  array(\r\n+    'comment-primary-color'      => '#000000',\r\n+    'comment-secondary-color'    => '#4e4e4e',\r\n+    'comment-date-color'         => '#a8aeb5',\r\n+    'comment-date-hover-color'   => '#000000',\r\n+    'comment-send-btn-bg-color'  => '#5067c5',\r\n+    'comment-send-btn-color'  =>\t'#ffffff',\r\n+    'widget-header-bg-color'   => '#ffffff',\r\n+    'widget-header-text-color' => '#2C3E50',\r\n+    'widget-body-bg-color'     => '#ffffff',\r\n+    'widget-body-label-color'  => '#9c9c9c',\r\n+    'widget-body-text-color'   => '#2C3E50',\r\n+  )\r\n+);\r\n+wp_die();\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_modal_popup.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_modal_popup.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_modal_popup.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_modal_popup.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,28 +1,28 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-if ( check_ajax_referer( 'wppm_reset_ap_modal_popup', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-update_option(\n-    'wppm-ap-modal',\n-    array(\n-        'header-bg-color'   => '#ffffff',\n-        'header-text-color' => '#3c434a',\n-        'body-bg-color'     => '#fff',\n-        'body-label-color'  => '#3c434a',\n-        'body-text-color'   => '#555',\n-        'footer-bg-color'   => '#F6F6F6',\n-        'action-btn-bg-color' =>'#306EFF',\n-\t\t\t\t'action-btn-text-color'=>'#fff',\n-    )\n-);\n-wp_die();\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+if ( check_ajax_referer( 'wppm_reset_ap_modal_popup', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+update_option(\r\n+    'wppm-ap-modal',\r\n+    array(\r\n+        'header-bg-color'   => '#ffffff',\r\n+        'header-text-color' => '#3c434a',\r\n+        'body-bg-color'     => '#fff',\r\n+        'body-label-color'  => '#3c434a',\r\n+        'body-text-color'   => '#555',\r\n+        'footer-bg-color'   => '#F6F6F6',\r\n+        'action-btn-bg-color' =>'#306EFF',\r\n+\t\t\t\t'action-btn-text-color'=>'#fff',\r\n+    )\r\n+);\r\n+wp_die();\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_proj_list.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_proj_list.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_proj_list.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_proj_list.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,28 +1,28 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-if ( check_ajax_referer( 'wppm_reset_ap_proj_list', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-update_option(\n-    'wppm-ap-project-list',\n-    array(\n-        'list-header-background-color'     => '#304FFE',\n-        'list-header-text-color'           => '#fff',\n-        'list-item-odd-background-color'   => '#fff',\n-        'list-item-odd-text-color'         => '#2C3E50',\n-        'list-item-even-background-color'  => '#F2F2F2',\n-        'list-item-even-text-color'        => '#2C3E50',\n-        'list-item-hover-background-color' => '#F5F5F5',\n-        'list-item-hover-text-color'       => '#2C3E50'\n-    )\n-);\n-wp_die();\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+if ( check_ajax_referer( 'wppm_reset_ap_proj_list', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+update_option(\r\n+    'wppm-ap-project-list',\r\n+    array(\r\n+        'list-header-background-color'     => '#304FFE',\r\n+        'list-header-text-color'           => '#fff',\r\n+        'list-item-odd-background-color'   => '#fff',\r\n+        'list-item-odd-text-color'         => '#2C3E50',\r\n+        'list-item-even-background-color'  => '#F2F2F2',\r\n+        'list-item-even-text-color'        => '#2C3E50',\r\n+        'list-item-hover-background-color' => '#F5F5F5',\r\n+        'list-item-hover-text-color'       => '#2C3E50'\r\n+    )\r\n+);\r\n+wp_die();\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,27 +1,27 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-if ( check_ajax_referer( 'wppm_reset_ap_settings', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-update_option(\n-    'wppm-ap-settings',\n-    array(\n-        'tab-background-color'     => '#0052CC',\n-        'tab-text-color'    => '#fff',\n-        'add-new-button-bg-color'\t=>'#0052CC',\n-        'add-new-button-text-color' =>'#fff',\n-        'add-new-button-hover-color'=>'#0065ff',\n-        'save-changes-button-bg-color'=>'#306EFF',\n-        'save-changes-button-text-color'=>'#fff'\n-    )\n-);\n-wp_die();\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+if ( check_ajax_referer( 'wppm_reset_ap_settings', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+update_option(\r\n+    'wppm-ap-settings',\r\n+    array(\r\n+        'tab-background-color'     => '#0052CC',\r\n+        'tab-text-color'    => '#fff',\r\n+        'add-new-button-bg-color'\t=>'#0052CC',\r\n+        'add-new-button-text-color' =>'#fff',\r\n+        'add-new-button-hover-color'=>'#0065ff',\r\n+        'save-changes-button-bg-color'=>'#306EFF',\r\n+        'save-changes-button-text-color'=>'#fff'\r\n+    )\r\n+);\r\n+wp_die();\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_task_list.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_task_list.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_task_list.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_task_list.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,31 +1,31 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-if ( check_ajax_referer( 'wppm_reset_ap_task_list', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-update_option(\n-    'wppm-ap-task-list',\n-  array(\n-    'list-header-button-background-color'=>'#0052CC',\n-    'list-header-button-hover-color'\t=>'#0065ff',\n-    'list-header-button-text-color'\t\t=>'#fff',\n-    'list-header-background-color'     => '#304FFE',\n-    'list-header-text-color'           => '#fff',\n-    'list-item-odd-background-color'   => '#fff',\n-    'list-item-odd-text-color'         => '#2C3E50',\n-    'list-item-even-background-color'  => '#F2F2F2',\n-    'list-item-even-text-color'        => '#2C3E50',\n-    'list-item-hover-background-color' => '#F5F5F5',\n-    'list-item-hover-text-color'       => '#2C3E50',\n-  )\n-);\n-wp_die();\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+if ( check_ajax_referer( 'wppm_reset_ap_task_list', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+update_option(\r\n+    'wppm-ap-task-list',\r\n+  array(\r\n+    'list-header-button-background-color'=>'#0052CC',\r\n+    'list-header-button-hover-color'\t=>'#0065ff',\r\n+    'list-header-button-text-color'\t\t=>'#fff',\r\n+    'list-header-background-color'     => '#304FFE',\r\n+    'list-header-text-color'           => '#fff',\r\n+    'list-item-odd-background-color'   => '#fff',\r\n+    'list-item-odd-text-color'         => '#2C3E50',\r\n+    'list-item-even-background-color'  => '#F2F2F2',\r\n+    'list-item-even-text-color'        => '#2C3E50',\r\n+    'list-item-hover-background-color' => '#F5F5F5',\r\n+    'list-item-hover-text-color'       => '#2C3E50',\r\n+  )\r\n+);\r\n+wp_die();\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_search_wp_pages.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_search_wp_pages.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_search_wp_pages.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_search_wp_pages.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,31 +1,31 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-if ( check_ajax_referer( 'wppm_search_wp_pages', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$term = isset( $_GET['q'] ) ? sanitize_text_field( wp_unslash( $_GET['q'] ) ) : '';\n-\n-$args = array(\n-    'post_type'         => 'page',\n-    'post_status'       => 'publish',\n-    'orderby'           => array( 'title' => 'ASC' ),\n-    'search_wpsc_title' => $term,\n-);\n-$query = new WP_Query( $args );\n-\n-$response = array();\n-foreach ( $query->posts as $page ) {\n-    $response[] = array(\n-        'id'    => $page->ID,\n-        'title' => $page->post_title,\n-    );\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+if ( check_ajax_referer( 'wppm_search_wp_pages', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$term = isset( $_GET['q'] ) ? sanitize_text_field( wp_unslash( $_GET['q'] ) ) : '';\r\n+\r\n+$args = array(\r\n+    'post_type'         => 'page',\r\n+    'post_status'       => 'publish',\r\n+    'orderby'           => array( 'title' => 'ASC' ),\r\n+    'search_wpsc_title' => $term,\r\n+);\r\n+$query = new WP_Query( $args );\r\n+\r\n+$response = array();\r\n+foreach ( $query->posts as $page ) {\r\n+    $response[] = array(\r\n+        'id'    => $page->ID,\r\n+        'title' => $page->post_title,\r\n+    );\r\n+}\r\n wp_send_json( $response );\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_category.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_category.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_category.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_category.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,26 +1,26 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-\n-if ( check_ajax_referer( 'wppm_set_add_category', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$cat_name = isset($_POST) && isset($_POST['cat_name']) ? sanitize_text_field(wp_unslash($_POST['cat_name'])) : '';\n-if (!$cat_name) {exit;}\n-$load_order = $wpdb->get_var(\"select max(load_order) from {$wpdb->prefix}wppm_project_categories\");\n-$load_order = isset($load_order) ? $load_order: \"\";\n-$values=array(\n-\t'name'=>($cat_name),\n-\t'load_order'=> isset($load_order) ? (++$load_order) :\"\"\n-);\n-$wpdb->insert($wpdb->prefix.'wppm_project_categories',$values);\n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Category added successfully.', 'taskbuilder' ),\n-\t) );\n-wp_die();\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_add_category', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$cat_name = isset($_POST) && isset($_POST['cat_name']) ? sanitize_text_field(wp_unslash($_POST['cat_name'])) : '';\r\n+if (!$cat_name) {exit;}\r\n+$load_order = $wpdb->get_var(\"select max(load_order) from {$wpdb->prefix}wppm_project_categories\");\r\n+$load_order = isset($load_order) ? $load_order: \"\";\r\n+$values=array(\r\n+\t'name'=>($cat_name),\r\n+\t'load_order'=> isset($load_order) ? (++$load_order) :\"\"\r\n+);\r\n+$wpdb->insert($wpdb->prefix.'wppm_project_categories',$values);\r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Category added successfully.', 'taskbuilder' ),\r\n+\t) );\r\n+wp_die();\r\n+\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_priority.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_priority.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_priority.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_priority.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,35 +1,35 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-\n-if ( check_ajax_referer( 'wppm_set_add_priority', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$priority_name = isset($_POST) && isset($_POST['priority_name']) ? sanitize_text_field(wp_unslash($_POST['priority_name'])) : '';\n-if (!$priority_name) {exit;}\n-$priority_color = isset($_POST) && isset($_POST['priority_color']) ? sanitize_text_field(wp_unslash($_POST['priority_color'])) : '';\n-if (!$priority_color) {exit;}\n-$priority_bg_color = isset($_POST) && isset($_POST['priority_bg_color']) ? sanitize_text_field(wp_unslash($_POST['priority_bg_color'])) : '';\n-if (!$priority_bg_color) {exit;}\n-if ($priority_color==$priority_bg_color) {\n-  echo '{ \"sucess_status\":\"0\",\"messege\":\"'.esc_html__('Status color and background color should not be same.','taskbuilder').'\" }';\n-  die();\n-}\n-$load_order = $wpdb->get_var(\"select max(load_order) from {$wpdb->prefix}wppm_task_priorities\");\n-$values=array(\n-  'name'=>($priority_name),\n-  'color'=>($priority_color),\n-  'bg_color'=>($priority_bg_color),\n-  'load_order'=> absint(++$load_order)\n-);\n-$wpdb->insert($wpdb->prefix.'wppm_task_priorities',$values);\n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Priority added successfully.', 'taskbuilder' ),\n-\t) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_add_priority', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$priority_name = isset($_POST) && isset($_POST['priority_name']) ? sanitize_text_field(wp_unslash($_POST['priority_name'])) : '';\r\n+if (!$priority_name) {exit;}\r\n+$priority_color = isset($_POST) && isset($_POST['priority_color']) ? sanitize_text_field(wp_unslash($_POST['priority_color'])) : '';\r\n+if (!$priority_color) {exit;}\r\n+$priority_bg_color = isset($_POST) && isset($_POST['priority_bg_color']) ? sanitize_text_field(wp_unslash($_POST['priority_bg_color'])) : '';\r\n+if (!$priority_bg_color) {exit;}\r\n+if ($priority_color==$priority_bg_color) {\r\n+  echo '{ \"sucess_status\":\"0\",\"messege\":\"'.esc_html__('Status color and background color should not be same.','taskbuilder').'\" }';\r\n+  die();\r\n+}\r\n+$load_order = $wpdb->get_var(\"select max(load_order) from {$wpdb->prefix}wppm_task_priorities\");\r\n+$values=array(\r\n+  'name'=>($priority_name),\r\n+  'color'=>($priority_color),\r\n+  'bg_color'=>($priority_bg_color),\r\n+  'load_order'=> absint(++$load_order)\r\n+);\r\n+$wpdb->insert($wpdb->prefix.'wppm_task_priorities',$values);\r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Priority added successfully.', 'taskbuilder' ),\r\n+\t) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,37 +1,37 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-\n-if ( check_ajax_referer( 'wppm_set_add_status', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$status_name = isset($_POST) && isset($_POST['status_name']) ? sanitize_text_field($_POST['status_name']) : '';\n-if (!$status_name) {exit;}\n-$status_color = isset($_POST) && isset($_POST['status_color']) ? sanitize_text_field($_POST['status_color']) : '';\n-if (!$status_color) {exit;}\n-$status_bg_color = isset($_POST) && isset($_POST['status_bg_color']) ? sanitize_text_field($_POST['status_bg_color']) : '';\n-if (!$status_bg_color) {exit;}\n-if ($status_color==$status_bg_color) {\n-  echo '{ \"sucess_status\":\"0\",\"messege\":\"'.esc_html__('Status color and background color should not be same.','taskbuilder').'\" }';\n-  die();\n-}\n-$load_order = $wpdb->get_var(\"select max(load_order) from {$wpdb->prefix}wppm_project_statuses\");\n-\n-if ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin')) {\n-\t$values=array(\n-    'name'=>esc_sql($status_name),\n-    'color'=>esc_sql($status_color),\n-    'bg_color'=>esc_sql($status_bg_color),\n-\t\t'load_order'=> esc_sql(++$load_order)\n-\t);\n-\t$wpdb->insert($wpdb->prefix.'wppm_project_statuses',$values);\n-  echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Status added successfully.', 'taskbuilder' ),\n-\t) );\n-wp_die();\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_add_status', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$status_name = isset($_POST) && isset($_POST['status_name']) ? sanitize_text_field($_POST['status_name']) : '';\r\n+if (!$status_name) {exit;}\r\n+$status_color = isset($_POST) && isset($_POST['status_color']) ? sanitize_text_field($_POST['status_color']) : '';\r\n+if (!$status_color) {exit;}\r\n+$status_bg_color = isset($_POST) && isset($_POST['status_bg_color']) ? sanitize_text_field($_POST['status_bg_color']) : '';\r\n+if (!$status_bg_color) {exit;}\r\n+if ($status_color==$status_bg_color) {\r\n+  echo '{ \"sucess_status\":\"0\",\"messege\":\"'.esc_html__('Status color and background color should not be same.','taskbuilder').'\" }';\r\n+  die();\r\n+}\r\n+$load_order = $wpdb->get_var(\"select max(load_order) from {$wpdb->prefix}wppm_project_statuses\");\r\n+\r\n+if ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin')) {\r\n+\t$values=array(\r\n+    'name'=>esc_sql($status_name),\r\n+    'color'=>esc_sql($status_color),\r\n+    'bg_color'=>esc_sql($status_bg_color),\r\n+\t\t'load_order'=> esc_sql(++$load_order)\r\n+\t);\r\n+\t$wpdb->insert($wpdb->prefix.'wppm_project_statuses',$values);\r\n+  echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Status added successfully.', 'taskbuilder' ),\r\n+\t) );\r\n+wp_die();\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_task_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_task_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_task_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_task_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,39 +1,39 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-\n-if ( check_ajax_referer( 'wppm_set_add_task_status', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$status_name = isset($_POST) && isset($_POST['status_name']) ? sanitize_text_field(wp_unslash($_POST['status_name'])) : '';\n-if (!$status_name) {exit;}\n-\n-$status_color = isset($_POST) && isset($_POST['status_color']) ? sanitize_text_field(wp_unslash($_POST['status_color'])) : '';\n-if (!$status_color) {exit;}\n-\n-$status_bg_color = isset($_POST) && isset($_POST['status_bg_color']) ? sanitize_text_field(wp_unslash($_POST['status_bg_color'])) : '';\n-if (!$status_bg_color) {exit;}\n-\n-if ($status_color==$status_bg_color) {\n-  echo '{ \"sucess_status\":\"0\",\"messege\":\"'.esc_html__('Status color and background color should not be same.','taskbuilder').'\" }';\n-  die();\n-}\n-$load_order = $wpdb->get_var(\"select max(load_order) from {$wpdb->prefix}wppm_task_statuses\");\n-$values=array(\n-  'name'=>($status_name),\n-  'color'=>($status_color),\n-  'bg_color'=>($status_bg_color),\n-  'load_order'=> absint(++$load_order)\n-);\n-$wpdb->insert($wpdb->prefix.'wppm_task_statuses',$values);\n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Status added successfully.', 'taskbuilder' ),\n-) );\n-wp_die();\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_add_task_status', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$status_name = isset($_POST) && isset($_POST['status_name']) ? sanitize_text_field(wp_unslash($_POST['status_name'])) : '';\r\n+if (!$status_name) {exit;}\r\n+\r\n+$status_color = isset($_POST) && isset($_POST['status_color']) ? sanitize_text_field(wp_unslash($_POST['status_color'])) : '';\r\n+if (!$status_color) {exit;}\r\n+\r\n+$status_bg_color = isset($_POST) && isset($_POST['status_bg_color']) ? sanitize_text_field(wp_unslash($_POST['status_bg_color'])) : '';\r\n+if (!$status_bg_color) {exit;}\r\n+\r\n+if ($status_color==$status_bg_color) {\r\n+  echo '{ \"sucess_status\":\"0\",\"messege\":\"'.esc_html__('Status color and background color should not be same.','taskbuilder').'\" }';\r\n+  die();\r\n+}\r\n+$load_order = $wpdb->get_var(\"select max(load_order) from {$wpdb->prefix}wppm_task_statuses\");\r\n+$values=array(\r\n+  'name'=>($status_name),\r\n+  'color'=>($status_color),\r\n+  'bg_color'=>($status_bg_color),\r\n+  'load_order'=> absint(++$load_order)\r\n+);\r\n+$wpdb->insert($wpdb->prefix.'wppm_task_statuses',$values);\r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Status added successfully.', 'taskbuilder' ),\r\n+) );\r\n+wp_die();\r\n+\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_advanced_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_advanced_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_advanced_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_advanced_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,35 +1,35 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-\n-if ( check_ajax_referer( 'wppm_set_advanced_settings', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$wppm_public_projects_permission = isset($_POST) && isset(($_POST['wppm_public_projects_permission'])) ? sanitize_text_field(wp_unslash($_POST['wppm_public_projects_permission'])) : '0';\n-update_option('wppm_public_projects_permission',$wppm_public_projects_permission);\n-$wppm_hide_proj_statuses_from_frontend = isset($_POST) && isset(($_POST['wppm_hide_proj_statuses_from_frontend'])) ? $wppmfunction->sanitize_array($_POST['wppm_hide_proj_statuses_from_frontend']) : array();\n-if (!empty($wppm_hide_proj_statuses_from_frontend)) {\n-\t$wppm_hide_proj_statuses_from_frontend = implode(',', $wppm_hide_proj_statuses_from_frontend);\n-}\n-update_option('wppm_hide_proj_statuses_from_frontend',$wppm_hide_proj_statuses_from_frontend);\n-\n-$wppm_hide_task_statuses_from_frontend = isset($_POST) && isset(($_POST['wppm_hide_task_statuses_from_frontend'])) ? $wppmfunction->sanitize_array($_POST['wppm_hide_task_statuses_from_frontend']) : array();\n-if (!empty($wppm_hide_task_statuses_from_frontend)) {\n-\t$wppm_hide_task_statuses_from_frontend = implode(',', $wppm_hide_task_statuses_from_frontend);\n-}\n-update_option('wppm_hide_task_statuses_from_frontend',$wppm_hide_task_statuses_from_frontend);\n-\n-do_action('wppm_set_advanced_settings');\n-\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_advanced_settings', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$wppm_public_projects_permission = isset($_POST) && isset(($_POST['wppm_public_projects_permission'])) ? sanitize_text_field(wp_unslash($_POST['wppm_public_projects_permission'])) : '0';\r\n+update_option('wppm_public_projects_permission',$wppm_public_projects_permission);\r\n+$wppm_hide_proj_statuses_from_frontend = isset($_POST) && isset(($_POST['wppm_hide_proj_statuses_from_frontend'])) ? $wppmfunction->sanitize_array($_POST['wppm_hide_proj_statuses_from_frontend']) : array();\r\n+if (!empty($wppm_hide_proj_statuses_from_frontend)) {\r\n+\t$wppm_hide_proj_statuses_from_frontend = implode(',', $wppm_hide_proj_statuses_from_frontend);\r\n+}\r\n+update_option('wppm_hide_proj_statuses_from_frontend',$wppm_hide_proj_statuses_from_frontend);\r\n+\r\n+$wppm_hide_task_statuses_from_frontend = isset($_POST) && isset(($_POST['wppm_hide_task_statuses_from_frontend'])) ? $wppmfunction->sanitize_array($_POST['wppm_hide_task_statuses_from_frontend']) : array();\r\n+if (!empty($wppm_hide_task_statuses_from_frontend)) {\r\n+\t$wppm_hide_task_statuses_from_frontend = implode(',', $wppm_hide_task_statuses_from_frontend);\r\n+}\r\n+update_option('wppm_hide_task_statuses_from_frontend',$wppm_hide_task_statuses_from_frontend);\r\n+\r\n+do_action('wppm_set_advanced_settings');\r\n+\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_grid_view.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_grid_view.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_grid_view.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_grid_view.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,57 +1,57 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-\n-if ( check_ajax_referer( 'wppm_set_ap_grid_view', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$grid_background_color = isset( $_POST['grid-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['grid-background-color'] ) ) : '';\n-if ( ! $grid_background_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$grid_header_text_color = isset( $_POST['grid-header-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['grid-header-text-color'] ) ) : '';\n-if ( ! $grid_header_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$menu_button_bg_color = isset( $_POST['menu-button-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['menu-button-bg-color'] ) ) : '';\n-if ( ! $menu_button_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$menu_button_hover_color = isset( $_POST['menu-button-hover-color'] ) ? sanitize_text_field( wp_unslash( $_POST['menu-button-hover-color'] ) ) : '';\n-if ( ! $menu_button_hover_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$menu_button_text_color = isset( $_POST['menu-button-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['menu-button-text-color'] ) ) : '';\n-if ( ! $menu_button_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-update_option(\n-    'wppm-ap-grid-view',\n-    array(\n-        'grid-background-color'  => $grid_background_color,\n-        'grid-header-text-color' => $grid_header_text_color ,\n-        'menu-button-bg-color'   => $menu_button_bg_color,\n-        'menu-button-hover-color'=> $menu_button_hover_color,\n-        'menu-button-text-color' => $menu_button_text_color\n-    )\n-);\n-do_action('wppm_set_ap_grid_view_setting');\n-\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_ap_grid_view', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$grid_background_color = isset( $_POST['grid-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['grid-background-color'] ) ) : '';\r\n+if ( ! $grid_background_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$grid_header_text_color = isset( $_POST['grid-header-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['grid-header-text-color'] ) ) : '';\r\n+if ( ! $grid_header_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$menu_button_bg_color = isset( $_POST['menu-button-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['menu-button-bg-color'] ) ) : '';\r\n+if ( ! $menu_button_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$menu_button_hover_color = isset( $_POST['menu-button-hover-color'] ) ? sanitize_text_field( wp_unslash( $_POST['menu-button-hover-color'] ) ) : '';\r\n+if ( ! $menu_button_hover_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$menu_button_text_color = isset( $_POST['menu-button-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['menu-button-text-color'] ) ) : '';\r\n+if ( ! $menu_button_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+update_option(\r\n+    'wppm-ap-grid-view',\r\n+    array(\r\n+        'grid-background-color'  => $grid_background_color,\r\n+        'grid-header-text-color' => $grid_header_text_color ,\r\n+        'menu-button-bg-color'   => $menu_button_bg_color,\r\n+        'menu-button-hover-color'=> $menu_button_hover_color,\r\n+        'menu-button-text-color' => $menu_button_text_color\r\n+    )\r\n+);\r\n+do_action('wppm_set_ap_grid_view_setting');\r\n+\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_proj.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_proj.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_proj.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_proj.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,108 +1,108 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-\n-if ( check_ajax_referer( 'wppm_set_ap_individual_proj', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$menu_button_bg_color = isset( $_POST['menu-button-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['menu-button-bg-color'] ) ) : '';\n-if ( ! $menu_button_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-$menu_button_hover_color = isset( $_POST['menu-button-hover-color'] ) ? sanitize_text_field( wp_unslash( $_POST['menu-button-hover-color'] ) ) : '';\n-if ( ! $menu_button_hover_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-$menu_button_text_color = isset( $_POST['menu-button-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['menu-button-text-color'] ) ) : '';\n-if ( ! $menu_button_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-$comment_primary_color = isset( $_POST['comment-primary-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-primary-color'] ) ) : '';\n-if ( ! $comment_primary_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$comment_secondary_color = isset( $_POST['comment-secondary-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-secondary-color'] ) ) : '';\n-if ( ! $comment_secondary_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$comment_date_color = isset( $_POST['comment-date-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-date-color'] ) ) : '';\n-if ( ! $comment_date_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$comment_date_hover_color = isset( $_POST['comment-date-hover-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-date-hover-color'] ) ) : '';\n-if ( ! $comment_date_hover_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$comment_send_btn_bg_color = isset( $_POST['comment-send-btn-bg-color']) ? sanitize_text_field( wp_unslash( $_POST['comment-send-btn-bg-color'] ) ) : '';\n-if ( ! $comment_send_btn_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$comment_send_btn_color = isset( $_POST['comment-send-btn-color']) ? sanitize_text_field( wp_unslash( $_POST['comment-send-btn-color'] ) ) : '';\n-if ( ! $comment_send_btn_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$widget_header_bg_color = isset( $_POST['widget-header-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-header-bg-color'] ) ) : '';\n-if ( ! $widget_header_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$widget_header_text_color = isset( $_POST['widget-header-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-header-text-color'] ) ) : '';\n-if ( ! $widget_header_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$widget_body_bg_color = isset( $_POST['widget-body-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-body-bg-color'] ) ) : '';\n-if ( ! $widget_body_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$widget_body_label_color = isset( $_POST['widget-body-label-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-body-label-color'] ) ) : '';\n-if ( ! $widget_body_label_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$widget_body_text_color = isset( $_POST['widget-body-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-body-text-color'] ) ) : '';\n-if ( ! $widget_body_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-update_option(\n-    'wppm-ap-individual-project',\n-    array(\n-        'menu-button-bg-color'      => $menu_button_bg_color,\n-        'menu-button-hover-color'   => $menu_button_hover_color,\n-        'menu-button-text-color'    => $menu_button_text_color,\n-        'comment-primary-color'     => $comment_primary_color,\n-        'comment-secondary-color'   => $comment_secondary_color,\n-        'comment-date-color'        => $comment_date_color,\n-        'comment-date-hover-color'  => $comment_date_hover_color,\n-        'comment-send-btn-bg-color' => $comment_send_btn_bg_color,\n-        'comment-send-btn-color'    => $comment_send_btn_color,\n-        'widget-header-bg-color'    => $widget_header_bg_color,\n-        'widget-header-text-color'  => $widget_header_text_color,\n-        'widget-body-bg-color'      => $widget_body_bg_color,\n-        'widget-body-label-color'   => $widget_body_label_color,\n-        'widget-body-text-color'    => $widget_body_text_color\n-    )\n-);\n-do_action('wppm_set_ap_individual_proj_settings');\n-\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_ap_individual_proj', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$menu_button_bg_color = isset( $_POST['menu-button-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['menu-button-bg-color'] ) ) : '';\r\n+if ( ! $menu_button_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+$menu_button_hover_color = isset( $_POST['menu-button-hover-color'] ) ? sanitize_text_field( wp_unslash( $_POST['menu-button-hover-color'] ) ) : '';\r\n+if ( ! $menu_button_hover_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+$menu_button_text_color = isset( $_POST['menu-button-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['menu-button-text-color'] ) ) : '';\r\n+if ( ! $menu_button_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+$comment_primary_color = isset( $_POST['comment-primary-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-primary-color'] ) ) : '';\r\n+if ( ! $comment_primary_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$comment_secondary_color = isset( $_POST['comment-secondary-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-secondary-color'] ) ) : '';\r\n+if ( ! $comment_secondary_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$comment_date_color = isset( $_POST['comment-date-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-date-color'] ) ) : '';\r\n+if ( ! $comment_date_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$comment_date_hover_color = isset( $_POST['comment-date-hover-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-date-hover-color'] ) ) : '';\r\n+if ( ! $comment_date_hover_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$comment_send_btn_bg_color = isset( $_POST['comment-send-btn-bg-color']) ? sanitize_text_field( wp_unslash( $_POST['comment-send-btn-bg-color'] ) ) : '';\r\n+if ( ! $comment_send_btn_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$comment_send_btn_color = isset( $_POST['comment-send-btn-color']) ? sanitize_text_field( wp_unslash( $_POST['comment-send-btn-color'] ) ) : '';\r\n+if ( ! $comment_send_btn_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$widget_header_bg_color = isset( $_POST['widget-header-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-header-bg-color'] ) ) : '';\r\n+if ( ! $widget_header_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$widget_header_text_color = isset( $_POST['widget-header-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-header-text-color'] ) ) : '';\r\n+if ( ! $widget_header_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$widget_body_bg_color = isset( $_POST['widget-body-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-body-bg-color'] ) ) : '';\r\n+if ( ! $widget_body_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$widget_body_label_color = isset( $_POST['widget-body-label-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-body-label-color'] ) ) : '';\r\n+if ( ! $widget_body_label_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$widget_body_text_color = isset( $_POST['widget-body-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-body-text-color'] ) ) : '';\r\n+if ( ! $widget_body_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+update_option(\r\n+    'wppm-ap-individual-project',\r\n+    array(\r\n+        'menu-button-bg-color'      => $menu_button_bg_color,\r\n+        'menu-button-hover-color'   => $menu_button_hover_color,\r\n+        'menu-button-text-color'    => $menu_button_text_color,\r\n+        'comment-primary-color'     => $comment_primary_color,\r\n+        'comment-secondary-color'   => $comment_secondary_color,\r\n+        'comment-date-color'        => $comment_date_color,\r\n+        'comment-date-hover-color'  => $comment_date_hover_color,\r\n+        'comment-send-btn-bg-color' => $comment_send_btn_bg_color,\r\n+        'comment-send-btn-color'    => $comment_send_btn_color,\r\n+        'widget-header-bg-color'    => $widget_header_bg_color,\r\n+        'widget-header-text-color'  => $widget_header_text_color,\r\n+        'widget-body-bg-color'      => $widget_body_bg_color,\r\n+        'widget-body-label-color'   => $widget_body_label_color,\r\n+        'widget-body-text-color'    => $widget_body_text_color\r\n+    )\r\n+);\r\n+do_action('wppm_set_ap_individual_proj_settings');\r\n+\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,93 +1,93 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-\n-if ( check_ajax_referer( 'wppm_set_ap_individual_task', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$comment_primary_color = isset( $_POST['comment-primary-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-primary-color'] ) ) : '';\n-if ( ! $comment_primary_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$comment_secondary_color = isset( $_POST['comment-secondary-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-secondary-color'] ) ) : '';\n-if ( ! $comment_secondary_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$comment_date_color = isset( $_POST['comment-date-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-date-color'] ) ) : '';\n-if ( ! $comment_date_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$comment_date_hover_color = isset( $_POST['comment-date-hover-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-date-hover-color'] ) ) : '';\n-if ( ! $comment_date_hover_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$comment_send_btn_bg_color = isset( $_POST['comment-send-btn-bg-color']) ? sanitize_text_field( wp_unslash( $_POST['comment-send-btn-bg-color'] ) ) : '';\n-if ( ! $comment_send_btn_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$comment_send_btn_color = isset( $_POST['comment-send-btn-color']) ? sanitize_text_field( wp_unslash( $_POST['comment-send-btn-color'] ) ) : '';\n-if ( ! $comment_send_btn_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$widget_header_bg_color = isset( $_POST['widget-header-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-header-bg-color'] ) ) : '';\n-if ( ! $widget_header_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$widget_header_text_color = isset( $_POST['widget-header-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-header-text-color'] ) ) : '';\n-if ( ! $widget_header_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$widget_body_bg_color = isset( $_POST['widget-body-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-body-bg-color'] ) ) : '';\n-if ( ! $widget_body_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$widget_body_label_color = isset( $_POST['widget-body-label-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-body-label-color'] ) ) : '';\n-if ( ! $widget_body_label_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$widget_body_text_color = isset( $_POST['widget-body-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-body-text-color'] ) ) : '';\n-if ( ! $widget_body_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-update_option(\n-    'wppm-ap-individual-task',\n-    array(\n-        'comment-primary-color'     => $comment_primary_color,\n-        'comment-secondary-color'   => $comment_secondary_color,\n-        'comment-date-color'        => $comment_date_color,\n-        'comment-date-hover-color'  => $comment_date_hover_color,\n-        'comment-send-btn-bg-color' => $comment_send_btn_bg_color,\n-        'comment-send-btn-color'    => $comment_send_btn_color,\n-        'widget-header-bg-color'    => $widget_header_bg_color,\n-        'widget-header-text-color'  => $widget_header_text_color,\n-        'widget-body-bg-color'      => $widget_body_bg_color,\n-        'widget-body-label-color'   => $widget_body_label_color,\n-        'widget-body-text-color'    => $widget_body_text_color\n-    )\n-);\n-do_action('wppm_set_ap_individual_task_settings');\n-\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_ap_individual_task', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$comment_primary_color = isset( $_POST['comment-primary-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-primary-color'] ) ) : '';\r\n+if ( ! $comment_primary_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$comment_secondary_color = isset( $_POST['comment-secondary-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-secondary-color'] ) ) : '';\r\n+if ( ! $comment_secondary_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$comment_date_color = isset( $_POST['comment-date-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-date-color'] ) ) : '';\r\n+if ( ! $comment_date_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$comment_date_hover_color = isset( $_POST['comment-date-hover-color'] ) ? sanitize_text_field( wp_unslash( $_POST['comment-date-hover-color'] ) ) : '';\r\n+if ( ! $comment_date_hover_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$comment_send_btn_bg_color = isset( $_POST['comment-send-btn-bg-color']) ? sanitize_text_field( wp_unslash( $_POST['comment-send-btn-bg-color'] ) ) : '';\r\n+if ( ! $comment_send_btn_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$comment_send_btn_color = isset( $_POST['comment-send-btn-color']) ? sanitize_text_field( wp_unslash( $_POST['comment-send-btn-color'] ) ) : '';\r\n+if ( ! $comment_send_btn_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$widget_header_bg_color = isset( $_POST['widget-header-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-header-bg-color'] ) ) : '';\r\n+if ( ! $widget_header_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$widget_header_text_color = isset( $_POST['widget-header-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-header-text-color'] ) ) : '';\r\n+if ( ! $widget_header_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$widget_body_bg_color = isset( $_POST['widget-body-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-body-bg-color'] ) ) : '';\r\n+if ( ! $widget_body_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$widget_body_label_color = isset( $_POST['widget-body-label-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-body-label-color'] ) ) : '';\r\n+if ( ! $widget_body_label_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$widget_body_text_color = isset( $_POST['widget-body-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['widget-body-text-color'] ) ) : '';\r\n+if ( ! $widget_body_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+update_option(\r\n+    'wppm-ap-individual-task',\r\n+    array(\r\n+        'comment-primary-color'     => $comment_primary_color,\r\n+        'comment-secondary-color'   => $comment_secondary_color,\r\n+        'comment-date-color'        => $comment_date_color,\r\n+        'comment-date-hover-color'  => $comment_date_hover_color,\r\n+        'comment-send-btn-bg-color' => $comment_send_btn_bg_color,\r\n+        'comment-send-btn-color'    => $comment_send_btn_color,\r\n+        'widget-header-bg-color'    => $widget_header_bg_color,\r\n+        'widget-header-text-color'  => $widget_header_text_color,\r\n+        'widget-body-bg-color'      => $widget_body_bg_color,\r\n+        'widget-body-label-color'   => $widget_body_label_color,\r\n+        'widget-body-text-color'    => $widget_body_text_color\r\n+    )\r\n+);\r\n+do_action('wppm_set_ap_individual_task_settings');\r\n+\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_modal_popup.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_modal_popup.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_modal_popup.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_modal_popup.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,75 +1,75 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-\n-if ( check_ajax_referer( 'wppm_set_ap_modal_popup', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$header_bg_color = isset( $_POST['header-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['header-bg-color'] ) ) : '';\n-if ( ! $header_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$header_text_color = isset( $_POST['header-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['header-text-color'] ) ) : '';\n-if ( ! $header_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$body_bg_color = isset( $_POST['body-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['body-bg-color'] ) ) : '';\n-if ( ! $body_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$body_label_color = isset( $_POST['body-label-color'] ) ? sanitize_text_field( wp_unslash( $_POST['body-label-color'] ) ) : '';\n-if ( ! $body_label_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$body_text_color = isset( $_POST['body-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['body-text-color'] ) ) : '';\n-if ( ! $body_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$footer_bg_color = isset( $_POST['footer-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['footer-bg-color'] ) ) : '';\n-if ( ! $footer_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$action_btn_bg_color = isset( $_POST['action-btn-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['action-btn-bg-color'] ) ) : '';\n-if ( ! $action_btn_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$action_btn_text_color = isset( $_POST['action-btn-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['action-btn-text-color'] ) ) : '';\n-if ( ! $action_btn_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-update_option(\n-    'wppm-ap-modal',\n-    array(\n-        'header-bg-color'   => $header_bg_color,\n-        'header-text-color' => $header_text_color ,\n-        'body-bg-color'     => $body_bg_color ,\n-        'body-label-color'  => $body_label_color,\n-        'body-text-color'   => $body_text_color,\n-        'footer-bg-color'   => $footer_bg_color,\n-        'action-btn-bg-color'=>$action_btn_bg_color,\n-        'action-btn-text-color'=>$action_btn_text_color\n-    )\n-);\n-do_action('wppm_set_ap_modal_setting');\n-\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_ap_modal_popup', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$header_bg_color = isset( $_POST['header-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['header-bg-color'] ) ) : '';\r\n+if ( ! $header_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$header_text_color = isset( $_POST['header-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['header-text-color'] ) ) : '';\r\n+if ( ! $header_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$body_bg_color = isset( $_POST['body-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['body-bg-color'] ) ) : '';\r\n+if ( ! $body_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$body_label_color = isset( $_POST['body-label-color'] ) ? sanitize_text_field( wp_unslash( $_POST['body-label-color'] ) ) : '';\r\n+if ( ! $body_label_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$body_text_color = isset( $_POST['body-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['body-text-color'] ) ) : '';\r\n+if ( ! $body_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$footer_bg_color = isset( $_POST['footer-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['footer-bg-color'] ) ) : '';\r\n+if ( ! $footer_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$action_btn_bg_color = isset( $_POST['action-btn-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['action-btn-bg-color'] ) ) : '';\r\n+if ( ! $action_btn_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$action_btn_text_color = isset( $_POST['action-btn-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['action-btn-text-color'] ) ) : '';\r\n+if ( ! $action_btn_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+update_option(\r\n+    'wppm-ap-modal',\r\n+    array(\r\n+        'header-bg-color'   => $header_bg_color,\r\n+        'header-text-color' => $header_text_color ,\r\n+        'body-bg-color'     => $body_bg_color ,\r\n+        'body-label-color'  => $body_label_color,\r\n+        'body-text-color'   => $body_text_color,\r\n+        'footer-bg-color'   => $footer_bg_color,\r\n+        'action-btn-bg-color'=>$action_btn_bg_color,\r\n+        'action-btn-text-color'=>$action_btn_text_color\r\n+    )\r\n+);\r\n+do_action('wppm_set_ap_modal_setting');\r\n+\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_proj_list.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_proj_list.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_proj_list.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_proj_list.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,50 +1,50 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if ( ! current_user_can( 'manage_options' ) && ! current_user_can( 'wppm_admin' ) ) {\n-    wp_send_json_error( 'Unauthorized', 403 );\n-}\n-\n-if ( check_ajax_referer( 'wppm_set_ap_proj_list', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$fields = array(\n-    'list-header-background-color',\n-    'list-header-text-color',\n-    'list-item-odd-background-color',\n-    'list-item-odd-text-color',\n-    'list-item-even-background-color',\n-    'list-item-even-text-color',\n-    'list-item-hover-background-color',\n-    'list-item-hover-text-color',\n-);\n-\n-$clean = array();\n-\n-foreach ( $fields as $field ) {\n-    if ( empty( $_POST[ $field ] ) ) {\n-        wp_send_json_error( 'Bad request', 400 );\n-    }\n-\n-    $value = sanitize_hex_color( wp_unslash( $_POST[ $field ] ) );\n-\n-    if ( empty( $value ) ) {\n-        wp_send_json_error( 'Invalid color value', 400 );\n-    }\n-\n-    $clean[ $field ] = $value;\n-}\n-\n-update_option( 'wppm-ap-project-list', $clean );\n-\n-do_action('wppm_set_ap_proj_list_settings');\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if ( ! current_user_can( 'manage_options' ) && ! current_user_can( 'wppm_admin' ) ) {\r\n+    wp_send_json_error( 'Unauthorized', 403 );\r\n+}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_ap_proj_list', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$fields = array(\r\n+    'list-header-background-color',\r\n+    'list-header-text-color',\r\n+    'list-item-odd-background-color',\r\n+    'list-item-odd-text-color',\r\n+    'list-item-even-background-color',\r\n+    'list-item-even-text-color',\r\n+    'list-item-hover-background-color',\r\n+    'list-item-hover-text-color',\r\n+);\r\n+\r\n+$clean = array();\r\n+\r\n+foreach ( $fields as $field ) {\r\n+    if ( empty( $_POST[ $field ] ) ) {\r\n+        wp_send_json_error( 'Bad request', 400 );\r\n+    }\r\n+\r\n+    $value = sanitize_hex_color( wp_unslash( $_POST[ $field ] ) );\r\n+\r\n+    if ( empty( $value ) ) {\r\n+        wp_send_json_error( 'Invalid color value', 400 );\r\n+    }\r\n+\r\n+    $clean[ $field ] = $value;\r\n+}\r\n+\r\n+update_option( 'wppm-ap-project-list', $clean );\r\n+\r\n+do_action('wppm_set_ap_proj_list_settings');\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,68 +1,68 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-\n-if ( check_ajax_referer( 'wppm_set_ap_settings', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$tab_background_color = isset( $_POST['tab-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['tab-background-color'] ) ) : '';\n-if ( ! $tab_background_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$tab_text_color = isset( $_POST['tab-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['tab-text-color'] ) ) : '';\n-if ( ! $tab_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$add_new_button_bg_color = isset( $_POST['add-new-button-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['add-new-button-bg-color'] ) ) : '';\n-if ( ! $add_new_button_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$add_new_button_text_color = isset( $_POST['add-new-button-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['add-new-button-text-color'] ) ) : '';\n-if ( ! $add_new_button_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$add_new_button_hover_color = isset( $_POST['add-new-button-hover-color'] ) ? sanitize_text_field( wp_unslash( $_POST['add-new-button-hover-color'] ) ) : '';\n-if ( ! $add_new_button_hover_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$save_changes_button_bg_color = isset( $_POST['save-changes-button-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['save-changes-button-bg-color'] ) ) : '';\n-if ( ! $save_changes_button_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$save_changes_button_text_color = isset( $_POST['save-changes-button-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['save-changes-button-text-color'] ) ) : '';\n-if ( ! $save_changes_button_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-update_option(\n-    'wppm-ap-settings',\n-    array(\n-        'tab-background-color'  => $tab_background_color,\n-        'tab-text-color' => $tab_text_color ,\n-        'add-new-button-bg-color'=>$add_new_button_bg_color,\n-        'add-new-button-text-color'=>$add_new_button_text_color,\n-        'add-new-button-hover-color'=>$add_new_button_hover_color,\n-        'save-changes-button-bg-color'=>$save_changes_button_bg_color,\n-        'save-changes-button-text-color'=>$save_changes_button_text_color\n-    )\n-);\n-do_action('wppm_set_ap_settings');\n-\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_ap_settings', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$tab_background_color = isset( $_POST['tab-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['tab-background-color'] ) ) : '';\r\n+if ( ! $tab_background_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$tab_text_color = isset( $_POST['tab-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['tab-text-color'] ) ) : '';\r\n+if ( ! $tab_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$add_new_button_bg_color = isset( $_POST['add-new-button-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['add-new-button-bg-color'] ) ) : '';\r\n+if ( ! $add_new_button_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$add_new_button_text_color = isset( $_POST['add-new-button-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['add-new-button-text-color'] ) ) : '';\r\n+if ( ! $add_new_button_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$add_new_button_hover_color = isset( $_POST['add-new-button-hover-color'] ) ? sanitize_text_field( wp_unslash( $_POST['add-new-button-hover-color'] ) ) : '';\r\n+if ( ! $add_new_button_hover_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$save_changes_button_bg_color = isset( $_POST['save-changes-button-bg-color'] ) ? sanitize_text_field( wp_unslash( $_POST['save-changes-button-bg-color'] ) ) : '';\r\n+if ( ! $save_changes_button_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$save_changes_button_text_color = isset( $_POST['save-changes-button-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['save-changes-button-text-color'] ) ) : '';\r\n+if ( ! $save_changes_button_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+update_option(\r\n+    'wppm-ap-settings',\r\n+    array(\r\n+        'tab-background-color'  => $tab_background_color,\r\n+        'tab-text-color' => $tab_text_color ,\r\n+        'add-new-button-bg-color'=>$add_new_button_bg_color,\r\n+        'add-new-button-text-color'=>$add_new_button_text_color,\r\n+        'add-new-button-hover-color'=>$add_new_button_hover_color,\r\n+        'save-changes-button-bg-color'=>$save_changes_button_bg_color,\r\n+        'save-changes-button-text-color'=>$save_changes_button_text_color\r\n+    )\r\n+);\r\n+do_action('wppm_set_ap_settings');\r\n+\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_task_list.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_task_list.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_task_list.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_task_list.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,93 +1,93 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-\n-if ( check_ajax_referer( 'wppm_set_ap_task_list', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$list_header_button_background_color = isset( $_POST['list-header-button-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-header-button-background-color'] ) ) : '';\n-if ( ! $list_header_button_background_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$list_header_button_hover_color = isset( $_POST['list-header-button-hover-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-header-button-hover-color'] ) ) : '';\n-if ( ! $list_header_button_hover_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$list_header_button_text_color = isset( $_POST['list-header-button-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-header-button-text-color'] ) ) : '';\n-if ( ! $list_header_button_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$list_header_bg_color = isset( $_POST['list-header-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-header-background-color'] ) ) : '';\n-if ( ! $list_header_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$list_header_text_color = isset( $_POST['list-header-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-header-text-color'] ) ) : '';\n-if ( ! $list_header_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$list_item_odd_bg_color = isset( $_POST['list-item-odd-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-item-odd-background-color'] ) ) : '';\n-if ( ! $list_item_odd_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$list_item_odd_text_color = isset( $_POST['list-item-odd-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-item-odd-text-color'] ) ) : '';\n-if ( ! $list_item_odd_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$list_item_even_bg_color = isset( $_POST['list-item-even-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-item-even-background-color'] ) ) : '';\n-if ( ! $list_item_even_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$list_item_even_text_color = isset( $_POST['list-item-even-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-item-even-text-color'] ) ) : '';\n-if ( ! $list_item_even_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$list_item_hover_bg_color = isset( $_POST['list-item-hover-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-item-hover-background-color'] ) ) : '';\n-if ( ! $list_item_hover_bg_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-$list_item_hover_text_color = isset( $_POST['list-item-hover-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-item-hover-text-color'] ) ) : '';\n-if ( ! $list_item_hover_text_color ) {\n-    wp_send_json_error( 'Bad request', 400 );\n-}\n-\n-update_option(\n-    'wppm-ap-task-list',\n-    array(\n-        'list-header-button-background-color'=>$list_header_button_background_color,\n-        'list-header-button-hover-color'   =>$list_header_button_hover_color,\n-        'list-header-button-text-color'    =>$list_header_button_text_color,\n-        'list-header-background-color'     => $list_header_bg_color,\n-        'list-header-text-color'           => $list_header_text_color,\n-        'list-item-odd-background-color'   => $list_item_odd_bg_color,\n-        'list-item-odd-text-color'         => $list_item_odd_text_color,\n-        'list-item-even-background-color'  => $list_item_even_bg_color,\n-        'list-item-even-text-color'        => $list_item_even_text_color,\n-        'list-item-hover-background-color' => $list_item_hover_bg_color,\n-        'list-item-hover-text-color'       => $list_item_hover_text_color,\n-    )\n-);\n-do_action('wppm_set_ap_task_list_settings');\n-\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_ap_task_list', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$list_header_button_background_color = isset( $_POST['list-header-button-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-header-button-background-color'] ) ) : '';\r\n+if ( ! $list_header_button_background_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$list_header_button_hover_color = isset( $_POST['list-header-button-hover-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-header-button-hover-color'] ) ) : '';\r\n+if ( ! $list_header_button_hover_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$list_header_button_text_color = isset( $_POST['list-header-button-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-header-button-text-color'] ) ) : '';\r\n+if ( ! $list_header_button_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$list_header_bg_color = isset( $_POST['list-header-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-header-background-color'] ) ) : '';\r\n+if ( ! $list_header_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$list_header_text_color = isset( $_POST['list-header-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-header-text-color'] ) ) : '';\r\n+if ( ! $list_header_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$list_item_odd_bg_color = isset( $_POST['list-item-odd-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-item-odd-background-color'] ) ) : '';\r\n+if ( ! $list_item_odd_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$list_item_odd_text_color = isset( $_POST['list-item-odd-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-item-odd-text-color'] ) ) : '';\r\n+if ( ! $list_item_odd_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$list_item_even_bg_color = isset( $_POST['list-item-even-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-item-even-background-color'] ) ) : '';\r\n+if ( ! $list_item_even_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$list_item_even_text_color = isset( $_POST['list-item-even-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-item-even-text-color'] ) ) : '';\r\n+if ( ! $list_item_even_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$list_item_hover_bg_color = isset( $_POST['list-item-hover-background-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-item-hover-background-color'] ) ) : '';\r\n+if ( ! $list_item_hover_bg_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+$list_item_hover_text_color = isset( $_POST['list-item-hover-text-color'] ) ? sanitize_text_field( wp_unslash( $_POST['list-item-hover-text-color'] ) ) : '';\r\n+if ( ! $list_item_hover_text_color ) {\r\n+    wp_send_json_error( 'Bad request', 400 );\r\n+}\r\n+\r\n+update_option(\r\n+    'wppm-ap-task-list',\r\n+    array(\r\n+        'list-header-button-background-color'=>$list_header_button_background_color,\r\n+        'list-header-button-hover-color'   =>$list_header_button_hover_color,\r\n+        'list-header-button-text-color'    =>$list_header_button_text_color,\r\n+        'list-header-background-color'     => $list_header_bg_color,\r\n+        'list-header-text-color'           => $list_header_text_color,\r\n+        'list-item-odd-background-color'   => $list_item_odd_bg_color,\r\n+        'list-item-odd-text-color'         => $list_item_odd_text_color,\r\n+        'list-item-even-background-color'  => $list_item_even_bg_color,\r\n+        'list-item-even-text-color'        => $list_item_even_text_color,\r\n+        'list-item-hover-background-color' => $list_item_hover_bg_color,\r\n+        'list-item-hover-text-color'       => $list_item_hover_text_color,\r\n+    )\r\n+);\r\n+do_action('wppm_set_ap_task_list_settings');\r\n+\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_category_order.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_category_order.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_category_order.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_category_order.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,23 +1,23 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user, $wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-if ( check_ajax_referer( 'wppm_set_category_order', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$load_orders = isset($_POST) && isset($_POST['load_orders']) ? sanitize_text_field(wp_unslash($_POST['load_orders'])) : array();\n-if(!empty($load_orders)){\n-  $load_orders = $wppmfunction->sanitize_array($load_orders);\n-}\n-if (is_array($load_orders)) {\n-    foreach($load_orders as $key=>$val){\n-      $result = $wpdb->query(\"UPDATE \".$wpdb->prefix.\"wppm_project_categories SET load_order=\". absint($val).\" WHERE id='\".absint($key).\"'\" );\n-    }\n-}\n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Category order saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user, $wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+if ( check_ajax_referer( 'wppm_set_category_order', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$load_orders = isset($_POST) && isset($_POST['load_orders']) ? sanitize_text_field(wp_unslash($_POST['load_orders'])) : array();\r\n+if(!empty($load_orders)){\r\n+  $load_orders = $wppmfunction->sanitize_array($load_orders);\r\n+}\r\n+if (is_array($load_orders)) {\r\n+    foreach($load_orders as $key=>$val){\r\n+      $result = $wpdb->query(\"UPDATE \".$wpdb->prefix.\"wppm_project_categories SET load_order=\". absint($val).\" WHERE id='\".absint($key).\"'\" );\r\n+    }\r\n+}\r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Category order saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_coworkers_permission_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_coworkers_permission_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_coworkers_permission_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_coworkers_permission_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,29 +1,29 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-\n-if ( check_ajax_referer( 'wppm_set_coworkers_permission_settings', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$wppm_create_tasks_coworkers_permission = isset($_POST) && isset(($_POST['wppm_create_tasks_coworkers_permission'])) ? sanitize_text_field(wp_unslash($_POST['wppm_create_tasks_coworkers_permission'])) : '0';\n-update_option('wppm_allow_coworkers_create_task',$wppm_create_tasks_coworkers_permission);\n-$wppm_allow_coworkers_add_checklist = isset($_POST) && isset(($_POST['wppm_allow_coworkers_add_checklist'])) ? sanitize_text_field(wp_unslash($_POST['wppm_allow_coworkers_add_checklist'])) : '0';\n-update_option('wppm_allow_coworkers_add_checklist',$wppm_allow_coworkers_add_checklist);\n-$wppm_allow_coworkers_change_task_status = isset($_POST) && isset(($_POST['wppm_allow_coworkers_change_task_status'])) ? sanitize_text_field(wp_unslash($_POST['wppm_allow_coworkers_change_task_status'])) : '0';\n-update_option('wppm_allow_coworkers_change_status',$wppm_allow_coworkers_change_task_status);\n-$wppm_allow_coworkers_assign_users = isset($_POST) && isset(($_POST['wppm_allow_coworkers_assign_users'])) ? sanitize_text_field(wp_unslash($_POST['wppm_allow_coworkers_assign_users'])) : '0';\n-update_option('wppm_allow_coworkers_assign_users',$wppm_allow_coworkers_assign_users);\n-do_action('wppm_set_coworkers_permission_settings');\n-\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_coworkers_permission_settings', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$wppm_create_tasks_coworkers_permission = isset($_POST) && isset(($_POST['wppm_create_tasks_coworkers_permission'])) ? sanitize_text_field(wp_unslash($_POST['wppm_create_tasks_coworkers_permission'])) : '0';\r\n+update_option('wppm_allow_coworkers_create_task',$wppm_create_tasks_coworkers_permission);\r\n+$wppm_allow_coworkers_add_checklist = isset($_POST) && isset(($_POST['wppm_allow_coworkers_add_checklist'])) ? sanitize_text_field(wp_unslash($_POST['wppm_allow_coworkers_add_checklist'])) : '0';\r\n+update_option('wppm_allow_coworkers_add_checklist',$wppm_allow_coworkers_add_checklist);\r\n+$wppm_allow_coworkers_change_task_status = isset($_POST) && isset(($_POST['wppm_allow_coworkers_change_task_status'])) ? sanitize_text_field(wp_unslash($_POST['wppm_allow_coworkers_change_task_status'])) : '0';\r\n+update_option('wppm_allow_coworkers_change_status',$wppm_allow_coworkers_change_task_status);\r\n+$wppm_allow_coworkers_assign_users = isset($_POST) && isset(($_POST['wppm_allow_coworkers_assign_users'])) ? sanitize_text_field(wp_unslash($_POST['wppm_allow_coworkers_assign_users'])) : '0';\r\n+update_option('wppm_allow_coworkers_assign_users',$wppm_allow_coworkers_assign_users);\r\n+do_action('wppm_set_coworkers_permission_settings');\r\n+\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_category.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_category.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_category.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_category.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,28 +1,28 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-\n-if ( check_ajax_referer( 'wppm_set_edit_category', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$cat_id = isset($_POST) && isset($_POST['cat_id']) ? absint(sanitize_text_field(wp_unslash($_POST['cat_id']))) : 0;\n-$cat_id = absint($cat_id);\n-if (!$cat_id) {exit;}\n-\n-$cat_name = isset($_POST) && isset($_POST['cat_name']) ? sanitize_text_field(wp_unslash($_POST['cat_name'])) : '';\n-if (!$cat_name) {exit;}\n-\n-$values= array(\n-  'name'=>esc_sql($cat_name)\n-);\n-$wpdb->update($wpdb->prefix.'wppm_project_categories',$values,array('id'=>(\"$cat_id\"))); \n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Success', 'taskbuilder' ),\n-) );\n-wp_die();\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_edit_category', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$cat_id = isset($_POST) && isset($_POST['cat_id']) ? absint(sanitize_text_field(wp_unslash($_POST['cat_id']))) : 0;\r\n+$cat_id = absint($cat_id);\r\n+if (!$cat_id) {exit;}\r\n+\r\n+$cat_name = isset($_POST) && isset($_POST['cat_name']) ? sanitize_text_field(wp_unslash($_POST['cat_name'])) : '';\r\n+if (!$cat_name) {exit;}\r\n+\r\n+$values= array(\r\n+  'name'=>esc_sql($cat_name)\r\n+);\r\n+$wpdb->update($wpdb->prefix.'wppm_project_categories',$values,array('id'=>(\"$cat_id\"))); \r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Success', 'taskbuilder' ),\r\n+) );\r\n+wp_die();\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_priority.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_priority.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_priority.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_priority.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,43 +1,43 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-} \n-if ( check_ajax_referer( 'wppm_set_edit_priority', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$priority_id = isset($_POST) && isset($_POST['priority_id']) ? absint(sanitize_text_field(wp_unslash($_POST['priority_id']))) : 0;\n-if (!$priority_id) {exit;}\n-$priority_id = absint($priority_id);\n-\n-$priority_name = isset($_POST) && isset($_POST['priority_name']) ? sanitize_text_field(wp_unslash($_POST['priority_name'])) : '';\n-if (!$priority_name) {exit;}\n-\n-$priority_color = isset($_POST) && isset($_POST['priority_color']) ? sanitize_text_field(wp_unslash($_POST['priority_color'])) : '';\n-if (!$priority_color) {exit;}\n-\n-$priority_bg_color = isset($_POST) && isset($_POST['priority_bg_color']) ? sanitize_text_field(wp_unslash($_POST['priority_bg_color'])) : '';\n-if (!$priority_bg_color) {exit;}\n-\n-if ($priority_color==$priority_bg_color) {\n-  echo '{ \"sucess_status\":\"0\",\"messege\":\"'.esc_html__('Priority color and background color should not be same.','taskbuilder').'\" }';\n-  die();\n-}\n-$values= array(\n-  'name'=>($priority_name),\n-  'color'=>($priority_color),\n-  'bg_color'=>($priority_bg_color)\n-);\n-$wpdb->update($wpdb->prefix.'wppm_task_priorities',$values,array('id'=>intval($priority_id))); \n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Success', 'taskbuilder' ),\n-) );\n-wp_die();\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+} \r\n+if ( check_ajax_referer( 'wppm_set_edit_priority', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$priority_id = isset($_POST) && isset($_POST['priority_id']) ? absint(sanitize_text_field(wp_unslash($_POST['priority_id']))) : 0;\r\n+if (!$priority_id) {exit;}\r\n+$priority_id = absint($priority_id);\r\n+\r\n+$priority_name = isset($_POST) && isset($_POST['priority_name']) ? sanitize_text_field(wp_unslash($_POST['priority_name'])) : '';\r\n+if (!$priority_name) {exit;}\r\n+\r\n+$priority_color = isset($_POST) && isset($_POST['priority_color']) ? sanitize_text_field(wp_unslash($_POST['priority_color'])) : '';\r\n+if (!$priority_color) {exit;}\r\n+\r\n+$priority_bg_color = isset($_POST) && isset($_POST['priority_bg_color']) ? sanitize_text_field(wp_unslash($_POST['priority_bg_color'])) : '';\r\n+if (!$priority_bg_color) {exit;}\r\n+\r\n+if ($priority_color==$priority_bg_color) {\r\n+  echo '{ \"sucess_status\":\"0\",\"messege\":\"'.esc_html__('Priority color and background color should not be same.','taskbuilder').'\" }';\r\n+  die();\r\n+}\r\n+$values= array(\r\n+  'name'=>($priority_name),\r\n+  'color'=>($priority_color),\r\n+  'bg_color'=>($priority_bg_color)\r\n+);\r\n+$wpdb->update($wpdb->prefix.'wppm_task_priorities',$values,array('id'=>intval($priority_id))); \r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Success', 'taskbuilder' ),\r\n+) );\r\n+wp_die();\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,37 +1,37 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-\n-if ( check_ajax_referer( 'wppm_set_edit_status', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$status_id = isset($_POST) && isset($_POST['status_id']) ? absint(sanitize_text_field(wp_unslash($_POST['status_id']))) : '';\n-if (!$status_id) {exit;}\n-$status_id = absint($status_id);\n-$status_name = isset($_POST) && isset($_POST['status_name']) ? sanitize_text_field(wp_unslash($_POST['status_name'])) : '';\n-if (!$status_name) {exit;}\n-$status_color = isset($_POST) && isset($_POST['status_color']) ? sanitize_text_field(wp_unslash($_POST['status_color'])) : '';\n-if (!$status_color) {exit;}\n-$status_bg_color = isset($_POST) && isset($_POST['status_bg_color']) ? sanitize_text_field(wp_unslash($_POST['status_bg_color'])) : '';\n-if (!$status_bg_color) {exit;}\n-if ($status_color==$status_bg_color) {\n-  echo '{ \"sucess_status\":\"0\",\"messege\":\"'.esc_html__('Status color and background color should not be same.','taskbuilder').'\" }';\n-  die();\n-}\n-$values= array(\n-  'name'=>($status_name),\n-  'color'=>($status_color),\n-  'bg_color'=>($status_bg_color)\n-);\n-$wpdb->update($wpdb->prefix.'wppm_project_statuses',$values,array('id'=>intval(\"$status_id\"))); \n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Success', 'taskbuilder' ),\n-) );\n-wp_die();\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_edit_status', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$status_id = isset($_POST) && isset($_POST['status_id']) ? absint(sanitize_text_field(wp_unslash($_POST['status_id']))) : '';\r\n+if (!$status_id) {exit;}\r\n+$status_id = absint($status_id);\r\n+$status_name = isset($_POST) && isset($_POST['status_name']) ? sanitize_text_field(wp_unslash($_POST['status_name'])) : '';\r\n+if (!$status_name) {exit;}\r\n+$status_color = isset($_POST) && isset($_POST['status_color']) ? sanitize_text_field(wp_unslash($_POST['status_color'])) : '';\r\n+if (!$status_color) {exit;}\r\n+$status_bg_color = isset($_POST) && isset($_POST['status_bg_color']) ? sanitize_text_field(wp_unslash($_POST['status_bg_color'])) : '';\r\n+if (!$status_bg_color) {exit;}\r\n+if ($status_color==$status_bg_color) {\r\n+  echo '{ \"sucess_status\":\"0\",\"messege\":\"'.esc_html__('Status color and background color should not be same.','taskbuilder').'\" }';\r\n+  die();\r\n+}\r\n+$values= array(\r\n+  'name'=>($status_name),\r\n+  'color'=>($status_color),\r\n+  'bg_color'=>($status_bg_color)\r\n+);\r\n+$wpdb->update($wpdb->prefix.'wppm_project_statuses',$values,array('id'=>intval(\"$status_id\"))); \r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Success', 'taskbuilder' ),\r\n+) );\r\n+wp_die();\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_task_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_task_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_task_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_task_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,41 +1,41 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user, $wpdb;\n-\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-\n-if ( check_ajax_referer( 'wppm_set_edit_task_status', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$status_id = isset($_POST) && isset($_POST['status_id']) ? absint(sanitize_text_field(wp_unslash($_POST['status_id']))) : '';\n-if (!$status_id) {exit;}\n-$status_id = absint($status_id);\n-\n-$status_name = isset($_POST) && isset($_POST['status_name']) ? sanitize_text_field(wp_unslash($_POST['status_name'])) : '';\n-if (!$status_name) {exit;}\n-\n-$status_color = isset($_POST) && isset($_POST['status_color']) ? sanitize_text_field(wp_unslash($_POST['status_color'])) : '';\n-if (!$status_color) {exit;}\n-\n-$status_bg_color = isset($_POST) && isset($_POST['status_bg_color']) ? sanitize_text_field(wp_unslash($_POST['status_bg_color'])) : '';\n-if (!$status_bg_color) {exit;}\n-\n-if ($status_color==$status_bg_color) {\n-  echo '{ \"sucess_status\":\"0\",\"messege\":\"'.esc_html__('Status color and background color should not be same.','taskbuilder').'\" }';\n-  die();\n-}\n-$values= array(\n-  'name'=>esc_sql($status_name),\n-  'color'=>esc_sql($status_color),\n-  'bg_color'=>esc_sql($status_bg_color)\n-);\n-$wpdb->update($wpdb->prefix.'wppm_task_statuses',$values,array('id'=>intval($status_id))); \n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Success', 'taskbuilder' ),\n-) );\n-wp_die();\n-?>\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user, $wpdb;\r\n+\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_edit_task_status', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$status_id = isset($_POST) && isset($_POST['status_id']) ? absint(sanitize_text_field(wp_unslash($_POST['status_id']))) : '';\r\n+if (!$status_id) {exit;}\r\n+$status_id = absint($status_id);\r\n+\r\n+$status_name = isset($_POST) && isset($_POST['status_name']) ? sanitize_text_field(wp_unslash($_POST['status_name'])) : '';\r\n+if (!$status_name) {exit;}\r\n+\r\n+$status_color = isset($_POST) && isset($_POST['status_color']) ? sanitize_text_field(wp_unslash($_POST['status_color'])) : '';\r\n+if (!$status_color) {exit;}\r\n+\r\n+$status_bg_color = isset($_POST) && isset($_POST['status_bg_color']) ? sanitize_text_field(wp_unslash($_POST['status_bg_color'])) : '';\r\n+if (!$status_bg_color) {exit;}\r\n+\r\n+if ($status_color==$status_bg_color) {\r\n+  echo '{ \"sucess_status\":\"0\",\"messege\":\"'.esc_html__('Status color and background color should not be same.','taskbuilder').'\" }';\r\n+  die();\r\n+}\r\n+$values= array(\r\n+  'name'=>esc_sql($status_name),\r\n+  'color'=>esc_sql($status_color),\r\n+  'bg_color'=>esc_sql($status_bg_color)\r\n+);\r\n+$wpdb->update($wpdb->prefix.'wppm_task_statuses',$values,array('id'=>intval($status_id))); \r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Success', 'taskbuilder' ),\r\n+) );\r\n+wp_die();\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_general_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_general_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_general_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_general_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,53 +1,53 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-if ( check_ajax_referer( 'wppm_set_general_settings', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$wppm_task_list_view = isset($_POST) && isset(($_POST['wppm_task_list_view'])) ? sanitize_text_field(wp_unslash($_POST['wppm_task_list_view'])) : '';\n-update_option('wppm_default_task_list_view',$wppm_task_list_view);\n-$wppm_display_time_duration_project = isset($_POST) && isset(($_POST['wppm_display_time_duration_project'])) ? sanitize_text_field(wp_unslash($_POST['wppm_display_time_duration_project'])) : '0';\n-update_option('wppm_display_time_duration_project',$wppm_display_time_duration_project);\n-$wppm_display_time_duration_task = isset($_POST) && isset(($_POST['wppm_display_time_duration_task'])) ? sanitize_text_field(wp_unslash($_POST['wppm_display_time_duration_task'])) : '0';\n-update_option('wppm_display_time_duration_task',$wppm_display_time_duration_task);\n-$wppm_project_time = isset($_POST) && isset(($_POST['wppm_project_time'])) ? sanitize_text_field(wp_unslash($_POST['wppm_project_time'])) : '1';\n-update_option('wppm_project_time',$wppm_project_time);\n-$wppm_default_project_date = isset($_POST) && isset(($_POST['wppm_default_project_date'])) ? sanitize_text_field(wp_unslash($_POST['wppm_default_project_date'])) : '1';\n-update_option('wppm_default_project_date',$wppm_default_project_date);\n-$wppm_default_task_date = isset($_POST) && isset(($_POST['wppm_default_task_date'])) ? sanitize_text_field(wp_unslash($_POST['wppm_default_task_date'])) : '1';\n-update_option('wppm_default_task_date',$wppm_default_task_date);\n-$wppm_edit_tasks_permission = isset($_POST) && isset(($_POST['wppm_edit_tasks_permission'])) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_tasks_permission'])) : '0';\n-update_option('wppm_default_edit_tasks_permission',$wppm_edit_tasks_permission);\n-$wppm_task_time = isset($_POST) && isset(($_POST['wppm_task_time'])) ? sanitize_text_field(wp_unslash($_POST['wppm_task_time'])) : '1';\n-update_option('wppm_task_time',$wppm_task_time);\n-$wppm_proj_status = isset($_POST) && isset(($_POST['wppm_default_proj_status'])) ? sanitize_text_field(wp_unslash($_POST['wppm_default_proj_status'])) : '1';\n-update_option('wppm_default_project_status',$wppm_proj_status);\n-$wppm_task_status = isset($_POST) && isset(($_POST['wppm_default_task_status'])) ? sanitize_text_field(wp_unslash($_POST['wppm_default_task_status'])) : '1';\n-update_option('wppm_default_task_status',$wppm_task_status);\n-$wppm_tinymce_visibility_open_project = isset($_POST) && isset(($_POST['wppm_tinymce_visibility_open_project'])) ? sanitize_text_field(wp_unslash($_POST['wppm_tinymce_visibility_open_project'])) : '1';\n-update_option('wppm_tinymce_visibility_open_project',$wppm_tinymce_visibility_open_project);\n-$wppm_tinymce_visibility_open_task = isset($_POST) && isset(($_POST['wppm_tinymce_visibility_open_task'])) ? sanitize_text_field(wp_unslash($_POST['wppm_tinymce_visibility_open_task'])) : '1';\n-update_option('wppm_tinymce_visibility_open_task',$wppm_tinymce_visibility_open_task);\n-$wppm_date_setting = isset($_POST) && isset(($_POST['wppm_date_setting'])) ? sanitize_text_field(wp_unslash($_POST['wppm_date_setting'])) : 'Y-m-d H:i:s';\n-update_option('wppm_date_setting',$wppm_date_setting);\n-$wppm_hide_completed_status_proj = isset($_POST) && isset(($_POST['wppm_hide_completed_status_proj'])) ? sanitize_text_field(wp_unslash($_POST['wppm_hide_completed_status_proj'])) : '1';\n-update_option('wppm_hide_completed_status_proj',$wppm_hide_completed_status_proj);\n-$wppm_hide_completed_status_task = isset($_POST) && isset(($_POST['wppm_hide_completed_status_task'])) ? sanitize_text_field(wp_unslash($_POST['wppm_hide_completed_status_task'])) : '1';\n-update_option('wppm_hide_completed_status_task',$wppm_hide_completed_status_task);\n-$wppm_proj_hide_comment_section = isset($_POST) && isset(($_POST['wppm_proj_comment_section'])) ? sanitize_text_field(wp_unslash($_POST['wppm_proj_comment_section'])) : '1';\n-update_option('wppm_proj_hide_comment_section',$wppm_proj_hide_comment_section);\n-$wppm_task_hide_comment_section = isset($_POST) && isset(($_POST['wppm_task_comment_section'])) ? sanitize_text_field(wp_unslash($_POST['wppm_task_comment_section'])) : '1';\n-update_option('wppm_task_hide_comment_section',$wppm_task_hide_comment_section);\n-do_action('wppm_set_general_settings');\n-\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+if ( check_ajax_referer( 'wppm_set_general_settings', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$wppm_task_list_view = isset($_POST) && isset(($_POST['wppm_task_list_view'])) ? sanitize_text_field(wp_unslash($_POST['wppm_task_list_view'])) : '';\r\n+update_option('wppm_default_task_list_view',$wppm_task_list_view);\r\n+$wppm_display_time_duration_project = isset($_POST) && isset(($_POST['wppm_display_time_duration_project'])) ? sanitize_text_field(wp_unslash($_POST['wppm_display_time_duration_project'])) : '0';\r\n+update_option('wppm_display_time_duration_project',$wppm_display_time_duration_project);\r\n+$wppm_display_time_duration_task = isset($_POST) && isset(($_POST['wppm_display_time_duration_task'])) ? sanitize_text_field(wp_unslash($_POST['wppm_display_time_duration_task'])) : '0';\r\n+update_option('wppm_display_time_duration_task',$wppm_display_time_duration_task);\r\n+$wppm_project_time = isset($_POST) && isset(($_POST['wppm_project_time'])) ? sanitize_text_field(wp_unslash($_POST['wppm_project_time'])) : '1';\r\n+update_option('wppm_project_time',$wppm_project_time);\r\n+$wppm_default_project_date = isset($_POST) && isset(($_POST['wppm_default_project_date'])) ? sanitize_text_field(wp_unslash($_POST['wppm_default_project_date'])) : '1';\r\n+update_option('wppm_default_project_date',$wppm_default_project_date);\r\n+$wppm_default_task_date = isset($_POST) && isset(($_POST['wppm_default_task_date'])) ? sanitize_text_field(wp_unslash($_POST['wppm_default_task_date'])) : '1';\r\n+update_option('wppm_default_task_date',$wppm_default_task_date);\r\n+$wppm_edit_tasks_permission = isset($_POST) && isset(($_POST['wppm_edit_tasks_permission'])) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_tasks_permission'])) : '0';\r\n+update_option('wppm_default_edit_tasks_permission',$wppm_edit_tasks_permission);\r\n+$wppm_task_time = isset($_POST) && isset(($_POST['wppm_task_time'])) ? sanitize_text_field(wp_unslash($_POST['wppm_task_time'])) : '1';\r\n+update_option('wppm_task_time',$wppm_task_time);\r\n+$wppm_proj_status = isset($_POST) && isset(($_POST['wppm_default_proj_status'])) ? sanitize_text_field(wp_unslash($_POST['wppm_default_proj_status'])) : '1';\r\n+update_option('wppm_default_project_status',$wppm_proj_status);\r\n+$wppm_task_status = isset($_POST) && isset(($_POST['wppm_default_task_status'])) ? sanitize_text_field(wp_unslash($_POST['wppm_default_task_status'])) : '1';\r\n+update_option('wppm_default_task_status',$wppm_task_status);\r\n+$wppm_tinymce_visibility_open_project = isset($_POST) && isset(($_POST['wppm_tinymce_visibility_open_project'])) ? sanitize_text_field(wp_unslash($_POST['wppm_tinymce_visibility_open_project'])) : '1';\r\n+update_option('wppm_tinymce_visibility_open_project',$wppm_tinymce_visibility_open_project);\r\n+$wppm_tinymce_visibility_open_task = isset($_POST) && isset(($_POST['wppm_tinymce_visibility_open_task'])) ? sanitize_text_field(wp_unslash($_POST['wppm_tinymce_visibility_open_task'])) : '1';\r\n+update_option('wppm_tinymce_visibility_open_task',$wppm_tinymce_visibility_open_task);\r\n+$wppm_date_setting = isset($_POST) && isset(($_POST['wppm_date_setting'])) ? sanitize_text_field(wp_unslash($_POST['wppm_date_setting'])) : 'Y-m-d H:i:s';\r\n+update_option('wppm_date_setting',$wppm_date_setting);\r\n+$wppm_hide_completed_status_proj = isset($_POST) && isset(($_POST['wppm_hide_completed_status_proj'])) ? sanitize_text_field(wp_unslash($_POST['wppm_hide_completed_status_proj'])) : '1';\r\n+update_option('wppm_hide_completed_status_proj',$wppm_hide_completed_status_proj);\r\n+$wppm_hide_completed_status_task = isset($_POST) && isset(($_POST['wppm_hide_completed_status_task'])) ? sanitize_text_field(wp_unslash($_POST['wppm_hide_completed_status_task'])) : '1';\r\n+update_option('wppm_hide_completed_status_task',$wppm_hide_completed_status_task);\r\n+$wppm_proj_hide_comment_section = isset($_POST) && isset(($_POST['wppm_proj_comment_section'])) ? sanitize_text_field(wp_unslash($_POST['wppm_proj_comment_section'])) : '1';\r\n+update_option('wppm_proj_hide_comment_section',$wppm_proj_hide_comment_section);\r\n+$wppm_task_hide_comment_section = isset($_POST) && isset(($_POST['wppm_task_comment_section'])) ? sanitize_text_field(wp_unslash($_POST['wppm_task_comment_section'])) : '1';\r\n+update_option('wppm_task_hide_comment_section',$wppm_task_hide_comment_section);\r\n+do_action('wppm_set_general_settings');\r\n+\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_page_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_page_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_page_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_page_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,28 +1,28 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\n-\texit;\n-}\n-if ( check_ajax_referer( 'wppm_set_page_settings', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$page_settings = apply_filters(\n-    'wppm_set_page_settings',\n-    array(\n-        'task-url-page'            => isset( $_POST['task-url-page'] ) ? intval( $_POST['task-url-page'] ) : 0,\n-        'project-url-page'         => isset( $_POST['project-url-page'] ) ? intval( $_POST['project-url-page'] ) : 0\n-    )\n-);\n-update_option( 'wppm-page-settings', $page_settings );\n-do_action('wppm_set_page_settings');\n-\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {\r\n+\texit;\r\n+}\r\n+if ( check_ajax_referer( 'wppm_set_page_settings', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$page_settings = apply_filters(\r\n+    'wppm_set_page_settings',\r\n+    array(\r\n+        'task-url-page'            => isset( $_POST['task-url-page'] ) ? intval( $_POST['task-url-page'] ) : 0,\r\n+        'project-url-page'         => isset( $_POST['project-url-page'] ) ? intval( $_POST['project-url-page'] ) : 0\r\n+    )\r\n+);\r\n+update_option( 'wppm-page-settings', $page_settings );\r\n+do_action('wppm_set_page_settings');\r\n+\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_print_task_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_print_task_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_print_task_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_print_task_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,20 +1,20 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-if ( check_ajax_referer( 'wppm_set_print_task_settings', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$wppm_font_size = isset($_POST) && isset($_POST['wppm_print_body_font_size']) ? absint(sanitize_text_field(wp_unslash($_POST['wppm_print_body_font_size']))) : '10';\n-$wppm_print_settings = array(\n-  'wppm_print_body_font_size' => $wppm_font_size\n-);\n-update_option('wppm_print_settings',$wppm_print_settings);\n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Print settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+if ( check_ajax_referer( 'wppm_set_print_task_settings', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$wppm_font_size = isset($_POST) && isset($_POST['wppm_print_body_font_size']) ? absint(sanitize_text_field(wp_unslash($_POST['wppm_print_body_font_size']))) : '10';\r\n+$wppm_print_settings = array(\r\n+  'wppm_print_body_font_size' => $wppm_font_size\r\n+);\r\n+update_option('wppm_print_settings',$wppm_print_settings);\r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Print settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_priority_order.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_priority_order.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_priority_order.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_priority_order.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,24 +1,24 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb, $wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-if ( check_ajax_referer( 'wppm_set_priority_order', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$load_orders = isset($_POST) && isset($_POST['load_orders']) ? $wppmfunction->sanitize_array($_POST['load_orders']) : array();\n-$priorities = $wpdb->get_results($wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_task_priorities\"));\n-if (is_array($load_orders)) {\n-    foreach($load_orders as $key=>$val){\n-      $result = $wpdb->query(\"UPDATE \".$wpdb->prefix.\"wppm_task_priorities SET load_order='\". esc_sql($val).\"' WHERE id='\".esc_sql($key).\"'\" );\n-    }\n-}\n-\n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Priority order saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb, $wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+if ( check_ajax_referer( 'wppm_set_priority_order', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$load_orders = isset($_POST) && isset($_POST['load_orders']) ? $wppmfunction->sanitize_array($_POST['load_orders']) : array();\r\n+$priorities = $wpdb->get_results($wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_task_priorities\"));\r\n+if (is_array($load_orders)) {\r\n+    foreach($load_orders as $key=>$val){\r\n+      $result = $wpdb->query(\"UPDATE \".$wpdb->prefix.\"wppm_task_priorities SET load_order='\". esc_sql($val).\"' WHERE id='\".esc_sql($key).\"'\" );\r\n+    }\r\n+}\r\n+\r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Priority order saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_rich_text_editor_settings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_rich_text_editor_settings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_rich_text_editor_settings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_rich_text_editor_settings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,52 +1,52 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb, $wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-if ( check_ajax_referer( 'wppm_set_rich_text_editor_settings', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$wppm_rich_text_editor_setting = isset($_POST) && isset($_POST['wppm_rich_text_editor_setting']) ? absint(sanitize_text_field(wp_unslash($_POST['wppm_rich_text_editor_setting']))) :\"0\";\n-$wppm_toolbar = isset($_POST) && isset($_POST['wppm_toolbar']) ? $wppmfunction->sanitize_array($_POST['wppm_toolbar']) : array();\n-update_option('wppm_rich_text_editor',$wppm_rich_text_editor_setting );\n-$bold = in_array('bold',$wppm_toolbar)? 1 :\"0\";\n-$italic = in_array('italic',$wppm_toolbar)? 1 :\"0\";\n-$underline = in_array('underline',$wppm_toolbar)? 1 :\"0\";\n-$blockquote = in_array('blockquote',$wppm_toolbar)? 1 :\"0\";\n-$align = in_array('align',$wppm_toolbar)? 1 :\"0\";\n-$bullist = in_array('bullist',$wppm_toolbar)? 1 :\"0\";\n-$numlist = in_array('numlist',$wppm_toolbar)? 1 :\"0\";\n-$rtl = in_array('rtl',$wppm_toolbar)? 1 :\"0\";\n-$link = in_array('link',$wppm_toolbar)? 1 :\"0\";\n-$wppm_insert_editor_img = in_array('wppm_insert_editor_img',$wppm_toolbar)? 1 :\"0\";\n-$forecolor = in_array('forecolor',$wppm_toolbar)? 1 :\"0\";\n-$backcolor = in_array('backcolor',$wppm_toolbar)? 1 :\"0\";\n-$strikethrough = in_array('strikethrough',$wppm_toolbar)? 1 :\"0\";\n-\n-update_option(\n-    'wppm_toolbar_actions',\n-    array(\n-        'bold'     => $bold,\n-        'italic'    => $italic,\n-        'underline'\t=>$underline,\n-        'blockquote' =>$blockquote,\n-        'align'=>$align,\n-        'bullist'=>$bullist,\n-        'numlist'=>$numlist,\n-        'rtl'=>$rtl,\n-        'link'=>$link,\n-        'wppm_insert_editor_img'=>$wppm_insert_editor_img,\n-        'forecolor'=>$forecolor,\n-        'backcolor' => $backcolor,\n-        'strikethrough' => $strikethrough\n-    )\n-);\n-\n-echo wp_json_encode( array(\n-    'sucess_status' => 1,\n-    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb, $wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+if ( check_ajax_referer( 'wppm_set_rich_text_editor_settings', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$wppm_rich_text_editor_setting = isset($_POST) && isset($_POST['wppm_rich_text_editor_setting']) ? absint(sanitize_text_field(wp_unslash($_POST['wppm_rich_text_editor_setting']))) :\"0\";\r\n+$wppm_toolbar = isset($_POST) && isset($_POST['wppm_toolbar']) ? $wppmfunction->sanitize_array($_POST['wppm_toolbar']) : array();\r\n+update_option('wppm_rich_text_editor',$wppm_rich_text_editor_setting );\r\n+$bold = in_array('bold',$wppm_toolbar)? 1 :\"0\";\r\n+$italic = in_array('italic',$wppm_toolbar)? 1 :\"0\";\r\n+$underline = in_array('underline',$wppm_toolbar)? 1 :\"0\";\r\n+$blockquote = in_array('blockquote',$wppm_toolbar)? 1 :\"0\";\r\n+$align = in_array('align',$wppm_toolbar)? 1 :\"0\";\r\n+$bullist = in_array('bullist',$wppm_toolbar)? 1 :\"0\";\r\n+$numlist = in_array('numlist',$wppm_toolbar)? 1 :\"0\";\r\n+$rtl = in_array('rtl',$wppm_toolbar)? 1 :\"0\";\r\n+$link = in_array('link',$wppm_toolbar)? 1 :\"0\";\r\n+$wppm_insert_editor_img = in_array('wppm_insert_editor_img',$wppm_toolbar)? 1 :\"0\";\r\n+$forecolor = in_array('forecolor',$wppm_toolbar)? 1 :\"0\";\r\n+$backcolor = in_array('backcolor',$wppm_toolbar)? 1 :\"0\";\r\n+$strikethrough = in_array('strikethrough',$wppm_toolbar)? 1 :\"0\";\r\n+\r\n+update_option(\r\n+    'wppm_toolbar_actions',\r\n+    array(\r\n+        'bold'     => $bold,\r\n+        'italic'    => $italic,\r\n+        'underline'\t=>$underline,\r\n+        'blockquote' =>$blockquote,\r\n+        'align'=>$align,\r\n+        'bullist'=>$bullist,\r\n+        'numlist'=>$numlist,\r\n+        'rtl'=>$rtl,\r\n+        'link'=>$link,\r\n+        'wppm_insert_editor_img'=>$wppm_insert_editor_img,\r\n+        'forecolor'=>$forecolor,\r\n+        'backcolor' => $backcolor,\r\n+        'strikethrough' => $strikethrough\r\n+    )\r\n+);\r\n+\r\n+echo wp_json_encode( array(\r\n+    'sucess_status' => 1,\r\n+    'messege'        => esc_html__( 'Settings saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_status_order.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_status_order.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_status_order.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_status_order.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,22 +1,22 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb, $wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-if ( check_ajax_referer( 'wppm_set_status_order', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$load_orders = isset($_POST) && isset($_POST['load_orders']) ? $wppmfunction->sanitize_array($_POST['load_orders']) : array();\n-$statuses = $wpdb->get_results( \"SELECT id FROM {$wpdb->prefix}wppm_project_statuses\");\n-if (is_array($load_orders)) {\n-    foreach($load_orders as $key=>$val){\n-      $result = $wpdb->query(\"UPDATE \".$wpdb->prefix.\"wppm_project_statuses SET load_order='\".esc_sql($val).\"' WHERE id='\".esc_sql($key).\"'\" );\n-    }\n-}\n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Status order saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb, $wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+if ( check_ajax_referer( 'wppm_set_status_order', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$load_orders = isset($_POST) && isset($_POST['load_orders']) ? $wppmfunction->sanitize_array($_POST['load_orders']) : array();\r\n+$statuses = $wpdb->get_results( \"SELECT id FROM {$wpdb->prefix}wppm_project_statuses\");\r\n+if (is_array($load_orders)) {\r\n+    foreach($load_orders as $key=>$val){\r\n+      $result = $wpdb->query(\"UPDATE \".$wpdb->prefix.\"wppm_project_statuses SET load_order='\".esc_sql($val).\"' WHERE id='\".esc_sql($key).\"'\" );\r\n+    }\r\n+}\r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Status order saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_task_status_order.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_task_status_order.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_task_status_order.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings\u002Fwppm_set_task_status_order.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,22 +1,22 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wpdb,$wppmfunction;\n-if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\n-if ( check_ajax_referer( 'wppm_set_task_status_order', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$load_orders = isset($_POST) && isset($_POST['load_orders']) ? $wppmfunction->sanitize_array($_POST['load_orders']) : array();\n-$priorities = $wpdb->get_results( \"SELECT id FROM {$wpdb->prefix}wppm_task_statuses\");\n-if (is_array($load_orders)) {\n-    foreach($load_orders as $key=>$val){\n-      $result = $wpdb->query(\"UPDATE \".$wpdb->prefix.\"wppm_task_statuses SET load_order='\".esc_sql($val).\"' WHERE id='\".esc_sql($key).\"'\");\n-    }\n-}\n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Status order saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wpdb,$wppmfunction;\r\n+if (!($current_user->ID && $current_user->has_cap('manage_options') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}\r\n+if ( check_ajax_referer( 'wppm_set_task_status_order', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$load_orders = isset($_POST) && isset($_POST['load_orders']) ? $wppmfunction->sanitize_array($_POST['load_orders']) : array();\r\n+$priorities = $wpdb->get_results( \"SELECT id FROM {$wpdb->prefix}wppm_task_statuses\");\r\n+if (is_array($load_orders)) {\r\n+    foreach($load_orders as $key=>$val){\r\n+      $result = $wpdb->query(\"UPDATE \".$wpdb->prefix.\"wppm_task_statuses SET load_order='\".esc_sql($val).\"' WHERE id='\".esc_sql($key).\"'\");\r\n+    }\r\n+}\r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Status order saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fsettings.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fsettings.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,105 +1,105 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb, $wppmfunction,$current_user;\n-$popup_settings = get_option(\"wppm-ap-modal\");\n-$wppm_ap_settings = get_option(\"wppm-ap-settings\");\n-if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\n-\texit;\n-}\n-?>\n-\u003Cdiv class=\"wppm_bootstrap\">\n-  \u003Cspan class=\"wppm-heading-inline wppm_email_notification_header\">\n-    \u003C?php echo esc_html_e('Settings','taskbuilder');?>\n-  \u003C\u002Fspan>\n-  \u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\n-  \u003Cdiv class=\"row\">\n-    \u003Cdiv class=\"col-sm-4 wppm_setting_col1\">\n-      \u003Cul class=\"nav nav-pills nav-stacked wppm_setting_pills\">\n-        \u003Cli id=\"wppm_settings_general\" role=\"presentation\" class=\"active\">\u003Ca href=\"javascript:wppm_get_general_settings();\">\u003C?php echo esc_html_e('General','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003Cli id=\"wppm_settings_page\" role=\"presentation\" class=\"active\">\u003Ca href=\"javascript:wppm_get_page_settings();\">\u003C?php echo esc_html_e('Page Setting','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003Cli id=\"wppm_settings_category\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_category_settings();\">\u003C?php echo esc_html_e('Project Categories','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003Cli id=\"wppm_settings_proj_status\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_proj_status_settings();\">\u003C?php echo esc_html_e('Project Statuses','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003Cli id=\"wppm_settings_task_priorities\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_task_prioriy_settings();\">\u003C?php echo esc_html_e('Tasks Priorities','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003Cli id=\"wppm_settings_task_status\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_task_status_settings();\">\u003C?php echo esc_html_e('Task Statuses','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003Cli id=\"wppm_settings_miscellaneous\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_miscellaneous_settings();\">\u003C?php echo esc_html_e('Miscellaneous','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003Cli id=\"wppm_settings_appearance\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_appearance_settings();\">\u003C?php echo esc_html_e('Appearance','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003Cli id=\"wppm_settings_coworker\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_coworker_permission_settings();\">\u003C?php echo esc_html_e('Co-workers Permission','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003Cli id=\"wppm_settings_rich_text_editor\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_rich_text_editor_settings();\">\u003C?php echo esc_html_e('Rich Text Editor','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003Cli id=\"wppm_settings_print_task\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_print_task_settings();\">\u003C?php echo esc_html_e('Print Task','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\n-        \u003C?php do_action('wppm_after_setting_pills');?>\n-      \u003C\u002Ful>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"col-sm-8 wppm_setting_col2\">\u003C\u002Fdiv>\n-    \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\n-      \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\">  \n-      \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\n-      \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\">\u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-  \n-\u003C\u002Fdiv>\n-\u003C!-- Pop-up snippet start -->\n-\u003Cdiv id=\"wppm_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\n-\u003Cdiv id=\"wppm_popup_container\" style=\"display:none;\">\n-  \u003Cdiv class=\"wppm_bootstrap\">\n-    \u003Cdiv class=\"row\">\n-      \u003Cdiv id=\"wppm_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n-        \u003Cdiv id=\"wppm_popup_title\" class=\"row\">\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_popup_footer\" class=\"row\">\n-          \u003Cbutton type=\"button\" class=\"btn wppm_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-          \u003Cbutton type=\"button\" class=\"btn wppm_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003Cstyle>\n-  #wppm_popup_title{\n-  background-color: \u003C?php echo esc_attr($popup_settings['header-bg-color'])?>;\n-  }\n-  #wppm_popup_title h3{\n-    color:\u003C?php echo esc_attr( $popup_settings['header-text-color'])?>;\n-  }\n-  #wppm_popup_body{\n-    background-color: \u003C?php echo esc_attr($popup_settings['body-bg-color'])?>!important;\n-  }\n-  #wppm_popup_body label{\n-    color:\u003C?php echo esc_attr( $popup_settings['body-label-color'])?>;\n-  }\n-  #wppm_popup_body input{\n-    color:\u003C?php echo esc_attr( $popup_settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_body select{\n-    color:\u003C?php echo esc_attr( $popup_settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_body span {\n-    color:\u003C?php echo esc_attr( $popup_settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_body .select2-results__options {\n-    color:\u003C?php echo esc_attr( $popup_settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_footer{\n-    background-color: \u003C?php echo esc_attr($popup_settings['footer-bg-color'])?>!important;\n-  }\n-  .wppm_popup_action{\n-    background-color: \u003C?php echo esc_attr($popup_settings['action-btn-bg-color'])?>!important;\n-    color:\u003C?php echo esc_attr( $popup_settings['action-btn-text-color'])?>!important;\n-  }\n-  .wppm_bootstrap .nav-pills > li.active > a,\n-  .wppm_bootstrap .nav-pills > li.active > a:hover,\n-  .wppm_bootstrap .nav-pills > li.active > a:focus {\n-    color: \u003C?php echo esc_attr( $wppm_ap_settings['tab-text-color'])?>!important;\n-    background-color:\u003C?php echo esc_attr($wppm_ap_settings['tab-background-color'])?>!important;\n-  }\n-\u003C\u002Fstyle>\n-\u003C!-- Pop-up snippet end -->\n-\u003Cscript>\n-    jQuery(document).ready(function(){\n-      wppm_get_general_settings();\n-    });\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb, $wppmfunction,$current_user;\r\n+$popup_settings = get_option(\"wppm-ap-modal\");\r\n+$wppm_ap_settings = get_option(\"wppm-ap-settings\");\r\n+if (!($current_user->ID && $current_user->has_cap('wppm_admin') || $current_user->has_cap('manage_options'))) {\r\n+\texit;\r\n+}\r\n+?>\r\n+\u003Cdiv class=\"wppm_bootstrap\">\r\n+  \u003Cspan class=\"wppm-heading-inline wppm_email_notification_header\">\r\n+    \u003C?php echo esc_html_e('Settings','taskbuilder');?>\r\n+  \u003C\u002Fspan>\r\n+  \u003Cdiv class=\"wppm_padding_space\">\u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"row\">\r\n+    \u003Cdiv class=\"col-sm-4 wppm_setting_col1\">\r\n+      \u003Cul class=\"nav nav-pills nav-stacked wppm_setting_pills\">\r\n+        \u003Cli id=\"wppm_settings_general\" role=\"presentation\" class=\"active\">\u003Ca href=\"javascript:wppm_get_general_settings();\">\u003C?php echo esc_html_e('General','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003Cli id=\"wppm_settings_page\" role=\"presentation\" class=\"active\">\u003Ca href=\"javascript:wppm_get_page_settings();\">\u003C?php echo esc_html_e('Page Setting','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003Cli id=\"wppm_settings_category\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_category_settings();\">\u003C?php echo esc_html_e('Project Categories','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003Cli id=\"wppm_settings_proj_status\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_proj_status_settings();\">\u003C?php echo esc_html_e('Project Statuses','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003Cli id=\"wppm_settings_task_priorities\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_task_prioriy_settings();\">\u003C?php echo esc_html_e('Tasks Priorities','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003Cli id=\"wppm_settings_task_status\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_task_status_settings();\">\u003C?php echo esc_html_e('Task Statuses','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003Cli id=\"wppm_settings_miscellaneous\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_miscellaneous_settings();\">\u003C?php echo esc_html_e('Miscellaneous','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003Cli id=\"wppm_settings_appearance\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_appearance_settings();\">\u003C?php echo esc_html_e('Appearance','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003Cli id=\"wppm_settings_coworker\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_coworker_permission_settings();\">\u003C?php echo esc_html_e('Co-workers Permission','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003Cli id=\"wppm_settings_rich_text_editor\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_rich_text_editor_settings();\">\u003C?php echo esc_html_e('Rich Text Editor','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003Cli id=\"wppm_settings_print_task\" role=\"presentation\">\u003Ca href=\"javascript:wppm_get_print_task_settings();\">\u003C?php echo esc_html_e('Print Task','taskbuilder');?>\u003C\u002Fa>\u003C\u002Fli>\r\n+        \u003C?php do_action('wppm_after_setting_pills');?>\r\n+      \u003C\u002Ful>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"col-sm-8 wppm_setting_col2\">\u003C\u002Fdiv>\r\n+    \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+      \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\">  \r\n+      \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+      \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\">\u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+  \r\n+\u003C\u002Fdiv>\r\n+\u003C!-- Pop-up snippet start -->\r\n+\u003Cdiv id=\"wppm_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\r\n+\u003Cdiv id=\"wppm_popup_container\" style=\"display:none;\">\r\n+  \u003Cdiv class=\"wppm_bootstrap\">\r\n+    \u003Cdiv class=\"row\">\r\n+      \u003Cdiv id=\"wppm_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\r\n+        \u003Cdiv id=\"wppm_popup_title\" class=\"row\">\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_popup_footer\" class=\"row\">\r\n+          \u003Cbutton type=\"button\" class=\"btn wppm_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+          \u003Cbutton type=\"button\" class=\"btn wppm_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003Cstyle>\r\n+  #wppm_popup_title{\r\n+  background-color: \u003C?php echo esc_attr($popup_settings['header-bg-color'])?>;\r\n+  }\r\n+  #wppm_popup_title h3{\r\n+    color:\u003C?php echo esc_attr( $popup_settings['header-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body{\r\n+    background-color: \u003C?php echo esc_attr($popup_settings['body-bg-color'])?>!important;\r\n+  }\r\n+  #wppm_popup_body label{\r\n+    color:\u003C?php echo esc_attr( $popup_settings['body-label-color'])?>;\r\n+  }\r\n+  #wppm_popup_body input{\r\n+    color:\u003C?php echo esc_attr( $popup_settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body select{\r\n+    color:\u003C?php echo esc_attr( $popup_settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body span {\r\n+    color:\u003C?php echo esc_attr( $popup_settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body .select2-results__options {\r\n+    color:\u003C?php echo esc_attr( $popup_settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_footer{\r\n+    background-color: \u003C?php echo esc_attr($popup_settings['footer-bg-color'])?>!important;\r\n+  }\r\n+  .wppm_popup_action{\r\n+    background-color: \u003C?php echo esc_attr($popup_settings['action-btn-bg-color'])?>!important;\r\n+    color:\u003C?php echo esc_attr( $popup_settings['action-btn-text-color'])?>!important;\r\n+  }\r\n+  .wppm_bootstrap .nav-pills > li.active > a,\r\n+  .wppm_bootstrap .nav-pills > li.active > a:hover,\r\n+  .wppm_bootstrap .nav-pills > li.active > a:focus {\r\n+    color: \u003C?php echo esc_attr( $wppm_ap_settings['tab-text-color'])?>!important;\r\n+    background-color:\u003C?php echo esc_attr($wppm_ap_settings['tab-background-color'])?>!important;\r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003C!-- Pop-up snippet end -->\r\n+\u003Cscript>\r\n+    jQuery(document).ready(function(){\r\n+      wppm_get_general_settings();\r\n+    });\r\n \u003C\u002Fscript>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_add_new_checklist_item.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_add_new_checklist_item.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_add_new_checklist_item.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_add_new_checklist_item.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,23 +1,23 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-if ( check_ajax_referer( 'wppm_add_new_checklist_item', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$checklist_id = isset($_POST) && isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '';\n-if (!$checklist_id) {exit;}\n-$members = '0';\n-\n-$checklist_item_name = isset($_POST) && isset($_POST['label']) ? sanitize_text_field(wp_unslash($_POST['label'])) : '';\n-if (!$checklist_item_name) {exit;}\n-\n-$values = array(\n-    'checklist_id'=>esc_sql($checklist_id),\n-    'item_name'=>esc_sql($checklist_item_name),\n-    'checked'=>0,\n-    'members'=>esc_sql($members),\n-    'due_date'=>wp_date('Y-m-d H:i:s')\n-);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if ( check_ajax_referer( 'wppm_add_new_checklist_item', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$checklist_id = isset($_POST) && isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '';\r\n+if (!$checklist_id) {exit;}\r\n+$members = '0';\r\n+\r\n+$checklist_item_name = isset($_POST) && isset($_POST['label']) ? sanitize_text_field(wp_unslash($_POST['label'])) : '';\r\n+if (!$checklist_item_name) {exit;}\r\n+\r\n+$values = array(\r\n+    'checklist_id'=>esc_sql($checklist_id),\r\n+    'item_name'=>esc_sql($checklist_item_name),\r\n+    'checked'=>0,\r\n+    'members'=>esc_sql($members),\r\n+    'due_date'=>wp_date('Y-m-d H:i:s')\r\n+);\r\n $wpdb->insert($wpdb->prefix .'wppm_checklist_items', $values);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_add_new_checklist.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_add_new_checklist.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_add_new_checklist.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_add_new_checklist.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,20 +1,20 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-if ( check_ajax_referer( 'wppm_add_new_checklist', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$task_id = isset($_POST) && isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '';\n-if (!$task_id) {exit;}\n-\n-$checklist_name = isset($_POST) && isset($_POST['checklist_name']) ? sanitize_text_field(wp_unslash($_POST['checklist_name'])) : '';\n-if (!$checklist_name) {exit;}\n-\n-$values = array(\n-    'task_id'=>esc_sql($task_id),\n-    'checklist_name'=>esc_sql($checklist_name),\n-    'created_by'=>esc_sql($current_user->ID)\n-);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if ( check_ajax_referer( 'wppm_add_new_checklist', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$task_id = isset($_POST) && isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '';\r\n+if (!$task_id) {exit;}\r\n+\r\n+$checklist_name = isset($_POST) && isset($_POST['checklist_name']) ? sanitize_text_field(wp_unslash($_POST['checklist_name'])) : '';\r\n+if (!$checklist_name) {exit;}\r\n+\r\n+$values = array(\r\n+    'task_id'=>esc_sql($task_id),\r\n+    'checklist_name'=>esc_sql($checklist_name),\r\n+    'created_by'=>esc_sql($current_user->ID)\r\n+);\r\n $wpdb->insert($wpdb->prefix .'wppm_checklist', $values);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_delete_checklist.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_delete_checklist.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_delete_checklist.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_delete_checklist.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,26 +1,26 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-\n-\n-if ( check_ajax_referer( 'wppm_delete_checklist', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$checklist_id = isset($_POST) && isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '';\n-if (!$checklist_id) {exit;}\n-$checklist_id = esc_sql($checklist_id);\n-$checklist_id = isset($_POST) && isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '';\n-$proj_id = isset($_POST) && isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '';\n-$task_id = isset($_POST) && isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '';\n-$wppm_checklist = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where id=%d\", $checklist_id));\n-\n-$user_role = $wpdb->get_var($wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users where proj_id = %d AND user_id = %d\", $proj_id, $current_user->ID));\n-\n-if(!($wppm_checklist->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('delete_checklist',$task_id))){\n-  exit;\n-}\n-$wpdb->delete($wpdb->prefix.'wppm_checklist_items', array( 'checklist_id' => \"$checklist_id\"));\n-$wpdb->delete($wpdb->prefix.'wppm_checklist', array( 'id' => \"$checklist_id\"));\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+\r\n+if ( check_ajax_referer( 'wppm_delete_checklist', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$checklist_id = isset($_POST) && isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '';\r\n+if (!$checklist_id) {exit;}\r\n+$checklist_id = esc_sql($checklist_id);\r\n+$checklist_id = isset($_POST) && isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '';\r\n+$proj_id = isset($_POST) && isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '';\r\n+$task_id = isset($_POST) && isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '';\r\n+$wppm_checklist = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where id=%d\", $checklist_id));\r\n+\r\n+$user_role = $wpdb->get_var($wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users where proj_id = %d AND user_id = %d\", $proj_id, $current_user->ID));\r\n+\r\n+if(!($wppm_checklist->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('delete_checklist',$task_id))){\r\n+  exit;\r\n+}\r\n+$wpdb->delete($wpdb->prefix.'wppm_checklist_items', array( 'checklist_id' => \"$checklist_id\"));\r\n+$wpdb->delete($wpdb->prefix.'wppm_checklist', array( 'id' => \"$checklist_id\"));\r\n+\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_edit_checklist_item.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_edit_checklist_item.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_edit_checklist_item.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_edit_checklist_item.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,48 +1,48 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-if ( check_ajax_referer( 'wppm_edit_checklist_item', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-$item_id = isset($_POST['item_id']) ? absint(sanitize_text_field(wp_unslash($_POST['item_id']))) : '' ;\n-$checklist_id = isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '' ;\n-$proj_id = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : 0 ;\n-if(!($wppmfunction->has_permission('add_checklist',$task_id) || $current_user->has_cap('manage_options'))) {exit;}\n-$task_data = $wppmfunction->get_task($task_id);\n-$checklist_item_name = $wpdb->get_var( $wpdb->prepare(\"SELECT item_name FROM {$wpdb->prefix}wppm_checklist_items WHERE id=%d\", $item_id));\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_edit_checklist_item\" method=\"post\">\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-      \u003Cdiv class=\"col-sm-12\">\n-            \u003Cinput type=\"text\" class=\"wppm_edit_checklist_item form-control\" name=\"wppm_edit_checklist_item\" id=\"wppm_edit_checklist_item\" value=\"\u003C?php echo isset($checklist_item_name) ? esc_attr($checklist_item_name) :\"\" ?>\">\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003C?php do_action('wppm_edit_checklist_item',$task_id,$item_id,$checklist_id);?>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_checklist_item_name\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_set_checklist_item_name'))?>\">\n-    \u003Cinput type=\"hidden\" name=\"item_id\" value=\"\u003C?php echo esc_attr($item_id) ?>\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"checklist_id\" value=\"\u003C?php echo esc_attr($checklist_id) ?>\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"task_id\" value=\"\u003C?php echo esc_attr($task_id) ?>\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"proj_id\" value=\"\u003C?php echo esc_attr($proj_id) ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003C?php\n-$body = ob_get_clean();\n-\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_close': 'wppm_task_popup_close' ?> \" onclick=\"\u003C?php echo ($proj_id!=0) ? \"wppm_modal_close()\":\"wppm_task_modal_close()\"?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_action': 'wppm_task_popup_action' ?> \" onclick=\"wppm_set_checklist_item_name(\u003C?php echo esc_attr($item_id)?>,\u003C?php echo esc_attr($checklist_id) ?>,\u003C?php echo esc_attr($task_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-echo wp_json_encode($output);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if ( check_ajax_referer( 'wppm_edit_checklist_item', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+$item_id = isset($_POST['item_id']) ? absint(sanitize_text_field(wp_unslash($_POST['item_id']))) : '' ;\r\n+$checklist_id = isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '' ;\r\n+$proj_id = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : 0 ;\r\n+if(!($wppmfunction->has_permission('add_checklist',$task_id) || $current_user->has_cap('manage_options'))) {exit;}\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$checklist_item_name = $wpdb->get_var( $wpdb->prepare(\"SELECT item_name FROM {$wpdb->prefix}wppm_checklist_items WHERE id=%d\", $item_id));\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_edit_checklist_item\" method=\"post\">\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+      \u003Cdiv class=\"col-sm-12\">\r\n+            \u003Cinput type=\"text\" class=\"wppm_edit_checklist_item form-control\" name=\"wppm_edit_checklist_item\" id=\"wppm_edit_checklist_item\" value=\"\u003C?php echo isset($checklist_item_name) ? esc_attr($checklist_item_name) :\"\" ?>\">\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003C?php do_action('wppm_edit_checklist_item',$task_id,$item_id,$checklist_id);?>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_checklist_item_name\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_set_checklist_item_name'))?>\">\r\n+    \u003Cinput type=\"hidden\" name=\"item_id\" value=\"\u003C?php echo esc_attr($item_id) ?>\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"checklist_id\" value=\"\u003C?php echo esc_attr($checklist_id) ?>\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"task_id\" value=\"\u003C?php echo esc_attr($task_id) ?>\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"proj_id\" value=\"\u003C?php echo esc_attr($proj_id) ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_close': 'wppm_task_popup_close' ?> \" onclick=\"\u003C?php echo ($proj_id!=0) ? \"wppm_modal_close()\":\"wppm_task_modal_close()\"?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_action': 'wppm_task_popup_action' ?> \" onclick=\"wppm_set_checklist_item_name(\u003C?php echo esc_attr($item_id)?>,\u003C?php echo esc_attr($checklist_id) ?>,\u003C?php echo esc_attr($task_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+echo wp_json_encode($output);\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_remove_checklist_item.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_remove_checklist_item.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_remove_checklist_item.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_remove_checklist_item.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,23 +1,23 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-if ( check_ajax_referer( 'wppm_remove_checklist_item', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$checklist_id = isset($_POST) && isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '';\n-$item_id = isset($_POST) && isset($_POST['item_id']) ? absint(sanitize_text_field(wp_unslash($_POST['item_id']))) : '';\n-$proj_id = isset($_POST) && isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '';\n-$task_id = isset($_POST) && isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '';\n-$wppm_checklist = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where id=%d\", $checklist_id));\n-\n-$user_role = $wpdb->get_var( $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users where proj_id = %d AND user_id = %d\", $proj_id, $current_user->ID));\n-\n-if (!$item_id) {exit;}\n-if (!($wppm_checklist->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('delete_checklist',$task_id))) {\n-  exit;\n-}\n-$item_id = esc_sql($item_id);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if ( check_ajax_referer( 'wppm_remove_checklist_item', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$checklist_id = isset($_POST) && isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '';\r\n+$item_id = isset($_POST) && isset($_POST['item_id']) ? absint(sanitize_text_field(wp_unslash($_POST['item_id']))) : '';\r\n+$proj_id = isset($_POST) && isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '';\r\n+$task_id = isset($_POST) && isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '';\r\n+$wppm_checklist = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where id=%d\", $checklist_id));\r\n+\r\n+$user_role = $wpdb->get_var( $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users where proj_id = %d AND user_id = %d\", $proj_id, $current_user->ID));\r\n+\r\n+if (!$item_id) {exit;}\r\n+if (!($wppm_checklist->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('delete_checklist',$task_id))) {\r\n+  exit;\r\n+}\r\n+$item_id = esc_sql($item_id);\r\n $wpdb->delete($wpdb->prefix.'wppm_checklist_items', array( 'id' => \"$item_id\"));\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_set_checklist_item_name.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_set_checklist_item_name.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_set_checklist_item_name.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_set_checklist_item_name.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,22 +1,22 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-$item_id =  isset($_POST['item_id']) ? absint(sanitize_text_field(wp_unslash($_POST['item_id']))) : '' ;\n-$checklist_id =  isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '' ;\n-$item_label = isset($_POST['wppm_edit_checklist_item']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_checklist_item'])) : \"\" ;\n-if(!($wppmfunction->has_permission('add_checklist',$task_id) || $current_user->has_cap('manage_options'))) {exit;}\n-if ( check_ajax_referer( 'wppm_set_checklist_item_name', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$wpdb->update( \n-    $wpdb->prefix.'wppm_checklist_items', \n-    array( \n-    'item_name' => esc_sql($item_label) \n-    ), \n-    array( \n-    'id' => esc_sql($item_id)\n-    ) \n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+$item_id =  isset($_POST['item_id']) ? absint(sanitize_text_field(wp_unslash($_POST['item_id']))) : '' ;\r\n+$checklist_id =  isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '' ;\r\n+$item_label = isset($_POST['wppm_edit_checklist_item']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_checklist_item'])) : \"\" ;\r\n+if(!($wppmfunction->has_permission('add_checklist',$task_id) || $current_user->has_cap('manage_options'))) {exit;}\r\n+if ( check_ajax_referer( 'wppm_set_checklist_item_name', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$wpdb->update( \r\n+    $wpdb->prefix.'wppm_checklist_items', \r\n+    array( \r\n+    'item_name' => esc_sql($item_label) \r\n+    ), \r\n+    array( \r\n+    'id' => esc_sql($item_id)\r\n+    ) \r\n );\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_set_checklist_progress.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_set_checklist_progress.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_set_checklist_progress.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_set_checklist_progress.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,23 +1,23 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-if ( check_ajax_referer( 'wppm_set_checklist_progress', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$checklist_id = isset($_POST) && isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '';\n-if (!$checklist_id) {exit;}\n-$item_id = isset($_POST) && isset($_POST['item_id']) ? absint(sanitize_text_field(wp_unslash($_POST['item_id']))) : '';\n-$item_id = esc_sql($item_id);\n-if (!$item_id) {exit;}\n-$checked_item = isset($_POST) && isset($_POST['checked_item']) ? absint(sanitize_text_field(wp_unslash($_POST['checked_item']))) : '';\n-$values= array(\n-    'checked'=>esc_sql($checked_item)\n-);\n-$wpdb->update($wpdb->prefix.'wppm_checklist_items',$values,array('id'=>intval(\"$item_id\"))); \n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Success', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if ( check_ajax_referer( 'wppm_set_checklist_progress', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$checklist_id = isset($_POST) && isset($_POST['checklist_id']) ? absint(sanitize_text_field(wp_unslash($_POST['checklist_id']))) : '';\r\n+if (!$checklist_id) {exit;}\r\n+$item_id = isset($_POST) && isset($_POST['item_id']) ? absint(sanitize_text_field(wp_unslash($_POST['item_id']))) : '';\r\n+$item_id = esc_sql($item_id);\r\n+if (!$item_id) {exit;}\r\n+$checked_item = isset($_POST) && isset($_POST['checked_item']) ? absint(sanitize_text_field(wp_unslash($_POST['checked_item']))) : '';\r\n+$values= array(\r\n+    'checked'=>esc_sql($checked_item)\r\n+);\r\n+$wpdb->update($wpdb->prefix.'wppm_checklist_items',$values,array('id'=>intval(\"$item_id\"))); \r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Success', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_update_checklist_order.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_update_checklist_order.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_update_checklist_order.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_update_checklist_order.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,28 +1,28 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-if ( check_ajax_referer( 'wppm_update_checklist_order', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-if(!($wppmfunction->has_permission('add_checklist',$task_id) || $current_user->has_cap('manage_options'))) {exit;}\n-$order = isset($_POST) && isset($_POST['order']) ? $wppmfunction->sanitize_array($_POST['order']) : array();\n-$table = $wpdb->prefix . \"wppm_checklist_items\";\n-$position = 1;\n-foreach ($order as $id) {\n-    $wpdb->update(\n-        $table,\n-        ['load_order' => $position],\n-        ['id' => intval($id)]\n-    );\n-    $position++;\n-}\n-\n-echo wp_json_encode( array(\n-\t\t'sucess_status' => 1,\n-\t\t'messege'        => esc_html__( 'Order saved.', 'taskbuilder' ),\n-) );\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+if ( check_ajax_referer( 'wppm_update_checklist_order', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+if(!($wppmfunction->has_permission('add_checklist',$task_id) || $current_user->has_cap('manage_options'))) {exit;}\r\n+$order = isset($_POST) && isset($_POST['order']) ? $wppmfunction->sanitize_array($_POST['order']) : array();\r\n+$table = $wpdb->prefix . \"wppm_checklist_items\";\r\n+$position = 1;\r\n+foreach ($order as $id) {\r\n+    $wpdb->update(\r\n+        $table,\r\n+        ['load_order' => $position],\r\n+        ['id' => intval($id)]\r\n+    );\r\n+    $position++;\r\n+}\r\n+\r\n+echo wp_json_encode( array(\r\n+\t\t'sucess_status' => 1,\r\n+\t\t'messege'        => esc_html__( 'Order saved.', 'taskbuilder' ),\r\n+) );\r\n wp_die();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_clone_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_clone_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_clone_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_clone_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,46 +1,46 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wppmfunction;\n-$task_id     = isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : '' ;\n-$proj_id = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '';\n-$project_id = isset($_POST['project_id']) ? absint(sanitize_text_field(wp_unslash($_POST['project_id']))) : '' ;\n-\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('clone_task',$task_id))) {\n- exit;\n-}\n-$task_name     = $wppmfunction->get_task_fields($task_id,'task_name');\n-ob_start();\n-\n-?>\n-\u003Cform id=\"frm_edit_clone_task_name\">\n-    \u003Cdiv class=\"form-group\">\n-      \u003Cinput type=\"text\" id=\"task_name\"class=\"form-control\" name=\"task_name\" value=\"\u003C?php echo esc_attr($task_name); ?>\"\u002F>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_clone_task\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"task_id\" value=\"\u003C?php echo esc_attr($task_id) ?>\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"project_id\" value=\"\u003C?php echo esc_attr($project_id) ?>\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_set_clone_task'))?>\">\n-\u003C\u002Fform>\n-\n-\u003C?php\n-\n-$body = ob_get_clean();\n-\n-ob_start();\n-\n-?>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo (($proj_id!=0))?'wppm_popup_close':'wppm_task_popup_close'?>\" onclick=\"\u003C?php echo (($proj_id!=0))?'wppm_modal_close();':'wppm_task_modal_close();'?>\">\u003C?php esc_html_e('Cancel','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=0)?'wppm_popup_action':'wppm_task_popup_action'?>\" onclick=\"wppm_set_clone_task(\u003C?php echo esc_attr($proj_id)?>,\u003C?php echo esc_attr($project_id)?>)\">\u003C?php esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-\n-$footer = ob_get_clean();\n-\n-$response = array(\n-    'body'      => $body,\n-    'footer'    => $footer\n-);\n-\n-echo wp_json_encode($response);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wppmfunction;\r\n+$task_id     = isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : '' ;\r\n+$proj_id = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '';\r\n+$project_id = isset($_POST['project_id']) ? absint(sanitize_text_field(wp_unslash($_POST['project_id']))) : '' ;\r\n+\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('clone_task',$task_id))) {\r\n+ exit;\r\n+}\r\n+$task_name     = $wppmfunction->get_task_fields($task_id,'task_name');\r\n+ob_start();\r\n+\r\n+?>\r\n+\u003Cform id=\"frm_edit_clone_task_name\">\r\n+    \u003Cdiv class=\"form-group\">\r\n+      \u003Cinput type=\"text\" id=\"task_name\"class=\"form-control\" name=\"task_name\" value=\"\u003C?php echo esc_attr($task_name); ?>\"\u002F>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_clone_task\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"task_id\" value=\"\u003C?php echo esc_attr($task_id) ?>\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"project_id\" value=\"\u003C?php echo esc_attr($project_id) ?>\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_set_clone_task'))?>\">\r\n+\u003C\u002Fform>\r\n+\r\n+\u003C?php\r\n+\r\n+$body = ob_get_clean();\r\n+\r\n+ob_start();\r\n+\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo (($proj_id!=0))?'wppm_popup_close':'wppm_task_popup_close'?>\" onclick=\"\u003C?php echo (($proj_id!=0))?'wppm_modal_close();':'wppm_task_modal_close();'?>\">\u003C?php esc_html_e('Cancel','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=0)?'wppm_popup_action':'wppm_task_popup_action'?>\" onclick=\"wppm_set_clone_task(\u003C?php echo esc_attr($proj_id)?>,\u003C?php echo esc_attr($project_id)?>)\">\u003C?php esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+\r\n+$footer = ob_get_clean();\r\n+\r\n+$response = array(\r\n+    'body'      => $body,\r\n+    'footer'    => $footer\r\n+);\r\n+\r\n+echo wp_json_encode($response);\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_delete_task_thread.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_delete_task_thread.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_delete_task_thread.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_delete_task_thread.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,37 +1,37 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-$proj_id  = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-$comment_id  = isset($_POST['comment_id']) ? absint(sanitize_text_field(wp_unslash($_POST['comment_id']))) : 0 ;\n-$task_comment = $wppmfunction->get_task_comment($comment_id);\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_comment_permission('delete_task_thread',$task_id,$comment_id))) {exit;}\n-ob_start();\n-?>\n-\u003Cform id=\"frm_delete_task_thread\">\n-    \u003Cp>\u003C?php echo esc_html_e('Are you sure to delete this thread?','taskbuilder');?>\u003C\u002Fp>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_delete_thread\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_delete_thread' ) ); ?>\">\n-    \u003Cinput type=\"hidden\" name=\"task_id\" value=\"\u003C?php echo (esc_attr($task_id))?>\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"comment_id\" value=\"\u003C?php echo (esc_attr($comment_id))?>\" \u002F>  \n-\u003C\u002Fform>\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cdiv class=\"row\">\n-    \u003Cdiv class=\"col-md-12\" style=\"text-align: right;\">\n-      \u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=0)?'wppm_modal_close':'wppm_task_modal_close'?>\" onclick=\"\u003C?php echo ($proj_id!=0)?'wppm_modal_close();':'wppm_task_modal_close();'?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-      \u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=0)?'wppm_popup_action':'wppm_task_popup_action'?>\" onclick=\"wppm_set_delete_thread(\u003C?php echo (esc_js($task_id)); ?>,\u003C?php echo esc_js($proj_id); ?>);\">\u003C?php echo esc_html_e('Confirm','taskbuilder');?>\u003C\u002Fbutton>\n-    \u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003C?php\n-$footer = ob_get_clean();\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-echo wp_json_encode($output);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+$proj_id  = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+$comment_id  = isset($_POST['comment_id']) ? absint(sanitize_text_field(wp_unslash($_POST['comment_id']))) : 0 ;\r\n+$task_comment = $wppmfunction->get_task_comment($comment_id);\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_comment_permission('delete_task_thread',$task_id,$comment_id))) {exit;}\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_delete_task_thread\">\r\n+    \u003Cp>\u003C?php echo esc_html_e('Are you sure to delete this thread?','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_delete_thread\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_delete_thread' ) ); ?>\">\r\n+    \u003Cinput type=\"hidden\" name=\"task_id\" value=\"\u003C?php echo (esc_attr($task_id))?>\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"comment_id\" value=\"\u003C?php echo (esc_attr($comment_id))?>\" \u002F>  \r\n+\u003C\u002Fform>\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cdiv class=\"row\">\r\n+    \u003Cdiv class=\"col-md-12\" style=\"text-align: right;\">\r\n+      \u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=0)?'wppm_modal_close':'wppm_task_modal_close'?>\" onclick=\"\u003C?php echo ($proj_id!=0)?'wppm_modal_close();':'wppm_task_modal_close();'?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+      \u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=0)?'wppm_popup_action':'wppm_task_popup_action'?>\" onclick=\"wppm_set_delete_thread(\u003C?php echo (esc_js($task_id)); ?>,\u003C?php echo esc_js($proj_id); ?>);\">\u003C?php echo esc_html_e('Confirm','taskbuilder');?>\u003C\u002Fbutton>\r\n+    \u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+echo wp_json_encode($output);\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_creator.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_creator.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_creator.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_creator.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,72 +1,72 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-$proj_id = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-$project_id = isset($_POST['project_id']) ? absint(sanitize_text_field(wp_unslash($_POST['project_id']))) : '' ;\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_raised_by',$task_id))) {exit;}\n-$task_data = $wppmfunction->get_task($task_id);\n-$task_creator = get_userdata($task_data['created_by']);\n-$settings = get_option(\"wppm-ap-modal\");\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_task_creator\" method=\"post\">\n-\t\u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-    \t    \u003Clabel class=\"wppm_ct_field_label\" for=\"user_name\">\u003C?php echo esc_html_e('Task Creator Name','taskbuilder') ?> \u003C\u002Flabel>\n-\t\t\t\u003Cinput type=\"text\" id=\"user_name\" class=\"form-control wppm_regi_user_autocomplete ui-autocomplete-input\" name=\"customer_name\" autocomplete=\"off\" value=\"\u003C?php echo isset($task_creator->display_name)? ((esc_attr($task_creator->display_name))):\"\"?>\">\n-   \t    \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_change_raised_by\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_set_change_raised_by'))?>\">\n-    \u003Cinput type=\"hidden\" name=\"user_id\" id=\"user_id\" value=\"\u003C?php echo isset($task_creator->ID) ? esc_attr($task_creator->ID) : \"\"; ?>\">\n-    \u003Cinput type=\"hidden\" name=\"task_id\" value=\"\u003C?php echo (esc_attr($task_id)) ?>\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"project_id\" value=\"\u003C?php echo (esc_attr($project_id)) ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003Cstyle>\n-li {\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\n-  }\n-\u003C\u002Fstyle>\n-\u003Cscript>\n-\tjQuery(document).ready(function(){\n-  \tjQuery( \".wppm_regi_user_autocomplete\" ).autocomplete({\n-        minLength: 1,\n-        appendTo: jQuery('.wppm_regi_user_autocomplete').parent(),\n-        source: function( request, response ) {\n-            var term = request.term;\n-            request = {\n-                action : 'wppm_filter_autocomplete',\n-                term : term,\n-                field : 'users_name'\n-            }\n-            jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\n-                response(data);\n-            });\t\n-\t\t\t},\n-        minLength: 2,\n-            select: function (event, ui) {\n-                jQuery('#user_name').val(ui.item.value);\n-                jQuery('#user_id').val(ui.item.user_id);\n-            }\n-\t\t});\n-\t\n-\t});\n-\u003C\u002Fscript>\n-\u003C?php \n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_close': 'wppm_task_popup_close' ?> \" onclick=\"\u003C?php echo ($proj_id!=0) ? \"wppm_modal_close()\":\"wppm_task_modal_close()\"?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_action': 'wppm_task_popup_action' ?> \" onclick=\"wppm_set_change_raised_by(\u003C?php echo esc_attr($task_id) ?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php \n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+$proj_id = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+$project_id = isset($_POST['project_id']) ? absint(sanitize_text_field(wp_unslash($_POST['project_id']))) : '' ;\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_raised_by',$task_id))) {exit;}\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$task_creator = get_userdata($task_data['created_by']);\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_task_creator\" method=\"post\">\r\n+\t\u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+    \t    \u003Clabel class=\"wppm_ct_field_label\" for=\"user_name\">\u003C?php echo esc_html_e('Task Creator Name','taskbuilder') ?> \u003C\u002Flabel>\r\n+\t\t\t\u003Cinput type=\"text\" id=\"user_name\" class=\"form-control wppm_regi_user_autocomplete ui-autocomplete-input\" name=\"customer_name\" autocomplete=\"off\" value=\"\u003C?php echo isset($task_creator->display_name)? ((esc_attr($task_creator->display_name))):\"\"?>\">\r\n+   \t    \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_change_raised_by\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_set_change_raised_by'))?>\">\r\n+    \u003Cinput type=\"hidden\" name=\"user_id\" id=\"user_id\" value=\"\u003C?php echo isset($task_creator->ID) ? esc_attr($task_creator->ID) : \"\"; ?>\">\r\n+    \u003Cinput type=\"hidden\" name=\"task_id\" value=\"\u003C?php echo (esc_attr($task_id)) ?>\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"project_id\" value=\"\u003C?php echo (esc_attr($project_id)) ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003Cstyle>\r\n+li {\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript>\r\n+\tjQuery(document).ready(function(){\r\n+  \tjQuery( \".wppm_regi_user_autocomplete\" ).autocomplete({\r\n+        minLength: 1,\r\n+        appendTo: jQuery('.wppm_regi_user_autocomplete').parent(),\r\n+        source: function( request, response ) {\r\n+            var term = request.term;\r\n+            request = {\r\n+                action : 'wppm_filter_autocomplete',\r\n+                term : term,\r\n+                field : 'users_name'\r\n+            }\r\n+            jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\r\n+                response(data);\r\n+            });\t\r\n+\t\t\t},\r\n+        minLength: 2,\r\n+            select: function (event, ui) {\r\n+                jQuery('#user_name').val(ui.item.value);\r\n+                jQuery('#user_id').val(ui.item.user_id);\r\n+            }\r\n+\t\t});\r\n+\t\r\n+\t});\r\n+\u003C\u002Fscript>\r\n+\u003C?php \r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_close': 'wppm_task_popup_close' ?> \" onclick=\"\u003C?php echo ($proj_id!=0) ? \"wppm_modal_close()\":\"wppm_task_modal_close()\"?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_action': 'wppm_task_popup_action' ?> \" onclick=\"wppm_set_change_raised_by(\u003C?php echo esc_attr($task_id) ?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php \r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,201 +1,201 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $wpdb,$wppmfunction,$current_user;\n-$task_id  = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-$proj_id = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-$current_project_id = isset($_POST['project_id']) ? intval(sanitize_text_field(wp_unslash($_POST['project_id']))) : '' ;\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}\n-$task_data = $wppmfunction->get_task($task_id);\n-$settings = get_option(\"wppm-ap-modal\");\n-$orderby_proj_sql = (sanitize_sql_orderby( \"project_name\" ));\n-$project_data = $wppmfunction->get_project(intval(sanitize_text_field($task_data['project'])));\n-if($current_user->has_cap('manage_options')){\n-    $projects = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project ORDER BY $orderby_proj_sql\");\n-}else{\n-    $sql = $wpdb->prepare(\n-            \"SELECT Proj.*\n-            FROM {$wpdb->prefix}wppm_project AS Proj\n-            LEFT JOIN {$wpdb->prefix}wppm_project_meta AS proj_meta\n-                ON Proj.id = proj_meta.project_id\n-            WHERE FIND_IN_SET(%d, Proj.users)\n-                OR (proj_meta.meta_key = 'public_project' AND proj_meta.meta_value = 1)\n-            GROUP BY Proj.id\",\n-            $current_user->ID\n-    );\n-\u002F\u002F 4️⃣ Append ORDER BY (safe because we whitelisted columns)\n-$sql .= \" ORDER BY $orderby_proj_sql\";\n-\n-\u002F\u002F 5️⃣ Execute\n-$projects = $wpdb->get_results($sql);\n-}\n-$priority_id = sanitize_text_field($task_data['priority']);\n-$project_id = sanitize_text_field($task_data['project']);\n-\n-$priorities = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities\");\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_edit_task_deatils\" method=\"post\">\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-    \t    \u003Clabel class=\"wppm_edit_task_label\" for=\"wppm_edit_task_label\">\u003C?php echo esc_html_e('Task','taskbuilder') ?> \u003C\u002Flabel>\n-\t    \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-    \t    \u003Cinput type=\"text\" class=\"wppm_edit_task_label form-control\" name=\"wppm_edit_task_label\" id=\"wppm_edit_task_label\" value=\"\u003C?php echo isset($task_data['task_name']) ? esc_attr($task_data['task_name']) :\"\" ?>\">\n-\t    \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-\t\u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-    \t    \u003Clabel class=\"wppm_edit_project_label\" for=\"wppm_edit_project_label\">\u003C?php esc_html_e('Project:','taskbuilder') ?> \u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;padding-bottom: 10px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-            \u003Cselect searchable=\"search here\" onchange=\"wppm_select_project()\" class=\"form-control\" size=\"40\" name=\"wppm_task_project\" id=\"wppm_task_project\">\n-            \u003C?php \n-                if(!empty($projects)){\n-                    foreach($projects as $proj) { \n-                        ?>\n-                        \u003Coption \u003C?php echo esc_attr($proj->id)==esc_attr($project_id) ?'selected=\"selected\"':''?> value=\"\u003C?php echo esc_attr($proj->id)?>\">\u003C?php echo esc_html($proj->project_name);?>\u003C\u002Foption>\n-                \u003C?php } \n-                } ?>\n-            \u003C\u002Fselect>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-    \t    \u003Clabel class=\"wppm_edit_task_start_date\" for=\"wppm_edit_task_start_date\">\u003C?php echo esc_html_e('Start Date','taskbuilder') ?> \u003C\u002Flabel>\n-\t    \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-        \u003Cdiv class=\"col-sm-12\">\n-            \u003Cinput name=\"wppm_edit_task_start_date\" class=\"form-control\" id=\"wppm_edit_task_start_date\" type=\"text\" value=\"\u003C?php echo isset($task_data['start_date'])? esc_attr($task_data['start_date']):\"\"?>\" size=\"40\" aria-required=\"true\">\u003Cbr>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-    \t    \u003Clabel class=\"wppm_edit_task_end_date\" for=\"wppm_edit_task_end_date\">\u003C?php echo esc_html_e('End Date','taskbuilder') ?> \u003C\u002Flabel>\n-\t    \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-        \u003Cdiv class=\"col-sm-12\">\n-            \u003Cinput name=\"wppm_edit_task_end_date\" class=\"form-control\" id=\"wppm_edit_task_end_date\" type=\"text\" value=\"\u003C?php echo isset($task_data['end_date']) ? esc_attr($task_data['end_date']):\"\" ?>\" size=\"40\" aria-required=\"true\">\u003Cbr>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-\t\t\u003Cdiv class=\"col-sm-12\">\n-            \u003Clabel class=\"wppm_edit_task_priority_label\" for=\"wppm_edit_task_priority_label\" id=\"wppm_edit_task_priority_label\">\u003C?php echo esc_html_e('Task Priority','taskbuilder');?>\u003C\u002Flabel>\n-\t    \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-        \u003Cdiv class=\"col-sm-12\">              \n-            \u003Cselect class=\"form-control\" name=\"wppm_edit_task_priority\" id=\"wppm_edit_task_priority\">\n-                \u003Coption>\u003C\u002Foption>\n-                \u003C?php\n-                if(!empty($priorities)){\n-                    foreach ( $priorities as $priority ) :\n-                        $selected = $priority_id == $priority->id ? 'selected=\"selected\"' : '';\n-                        echo '\u003Coption '.esc_attr($selected).' value=\"'.esc_attr($priority->id).'\">'.esc_html($priority->name).'\u003C\u002Foption>';\n-                    endforeach;\n-                }\n-                ?>\n-            \u003C\u002Fselect>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-        \u003Cdiv class=\"col-sm-12\">\n-            \u003Clabel class=\"wppm_edit_task_description_label\" id=\"wppm_edit_task_description_label\">\n-                \u003C?php echo esc_html_e('Description','taskbuilder');?>\n-            \u003C\u002Flabel>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\n-        \u003Cdiv class=\"col-sm-12\">\n-            \u003Ctextarea id=\"wppm_edit_task_description\" class=\"form-control\" name=\"wppm_edit_task_description\">\n-                \u003C?php echo !empty($task_data['description']) ? wp_kses_post(wpautop($task_data['description'])) :\"\"?>\n-            \u003C\u002Ftextarea>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003C?php do_action('wppm_edit_task_details',$task_id,$project_id);?>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_change_task_details\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_set_change_task_details'))?>\">\n-    \u003Cinput type=\"hidden\" name=\"user_id\" id=\"user_id\" value=\"\">\n-    \u003Cinput type=\"hidden\" name=\"task_id\" value=\"\u003C?php echo esc_attr($task_id) ?>\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"proj_id\" value=\"\u003C?php echo esc_attr($proj_id) ?>\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"project_id\" value=\"\u003C?php echo esc_attr($current_project_id) ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003Cstyle>\n-.select2-results__options {\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\n-  }\n-\u003C\u002Fstyle>\n-\u003Cscript>\n-jQuery( document ).ready( function( jQuery ) {\n-    wppm_select_project();\n-    jQuery(\"#wppm_edit_task_start_date\").flatpickr({\n-        enableTime: true,\n-        dateFormat: \"Y-m-d H:i\",\n-        defaultDate: \"today\"\n-    });\n-    jQuery(\"#wppm_edit_task_end_date\").flatpickr({\n-        enableTime: true,\n-        dateFormat: \"Y-m-d H:i\",\n-        defaultDate: \"today\" \u002F\u002F\n-    });\n-    tinymce.remove();\n-    tinymce.init({ \n-        selector:'#wppm_edit_task_description',\n-        body_id: 'wppm_edit_task_description',\n-        directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\n-        menubar: false,\n-        statusbar: false,\n-        height : '200',\n-        width  : '100%', \n-        plugins: [\n-            'lists link image directionality paste'\n-        ],\n-        image_advtab: true,\n-        toolbar: 'bold italic underline blockquote | alignleft aligncenter alignright | bullist numlist | rtl | link image',\n-        branding: false,\n-        autoresize_bottom_margin: 20,\n-        browser_spellcheck : true,\n-        relative_urls : false,\n-        remove_script_host : false,\n-        convert_urls : true,\n-        paste_as_text: true,\n-        content_style: \n-        `body {\n-              color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\n-            }`,\n-        setup: function (editor) {\n-        }\n-    });\n-});\n-jQuery('#wppm_task_project').select2();\n-function wppm_select_project(){\n-  jQuery('.wppm_filter_display_element').hide();\n-  \u003C?php do_action('wppm_display_cf_by_project_in_edit_task_details') ?>\n-}\n-jQuery('#wppm_edit_project_label').select2();\n-\n-\u003C\u002Fscript>\n-\u003C?php\n-$body = ob_get_clean();\n-\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_close': 'wppm_task_popup_close' ?> \" onclick=\"\u003C?php echo ($proj_id!=0) ? \"wppm_modal_close()\":\"wppm_task_modal_close()\"?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_action': 'wppm_task_popup_action' ?> \" onclick=\"wppm_set_change_task_details(\u003C?php echo esc_attr($task_id)?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($current_project_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-echo wp_json_encode( $output );\n-?>\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$task_id  = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+$proj_id = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+$current_project_id = isset($_POST['project_id']) ? intval(sanitize_text_field(wp_unslash($_POST['project_id']))) : '' ;\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+$orderby_proj_sql = (sanitize_sql_orderby( \"project_name\" ));\r\n+$project_data = $wppmfunction->get_project(intval(sanitize_text_field($task_data['project'])));\r\n+if($current_user->has_cap('manage_options')){\r\n+    $projects = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_project ORDER BY $orderby_proj_sql\");\r\n+}else{\r\n+    $sql = $wpdb->prepare(\r\n+            \"SELECT Proj.*\r\n+            FROM {$wpdb->prefix}wppm_project AS Proj\r\n+            LEFT JOIN {$wpdb->prefix}wppm_project_meta AS proj_meta\r\n+                ON Proj.id = proj_meta.project_id\r\n+            WHERE FIND_IN_SET(%d, Proj.users)\r\n+                OR (proj_meta.meta_key = 'public_project' AND proj_meta.meta_value = 1)\r\n+            GROUP BY Proj.id\",\r\n+            $current_user->ID\r\n+    );\r\n+\u002F\u002F 4️⃣ Append ORDER BY (safe because we whitelisted columns)\r\n+$sql .= \" ORDER BY $orderby_proj_sql\";\r\n+\r\n+\u002F\u002F 5️⃣ Execute\r\n+$projects = $wpdb->get_results($sql);\r\n+}\r\n+$priority_id = sanitize_text_field($task_data['priority']);\r\n+$project_id = sanitize_text_field($task_data['project']);\r\n+\r\n+$priorities = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities\");\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_edit_task_deatils\" method=\"post\">\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+    \t    \u003Clabel class=\"wppm_edit_task_label\" for=\"wppm_edit_task_label\">\u003C?php echo esc_html_e('Task','taskbuilder') ?> \u003C\u002Flabel>\r\n+\t    \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+    \t    \u003Cinput type=\"text\" class=\"wppm_edit_task_label form-control\" name=\"wppm_edit_task_label\" id=\"wppm_edit_task_label\" value=\"\u003C?php echo isset($task_data['task_name']) ? esc_attr($task_data['task_name']) :\"\" ?>\">\r\n+\t    \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+\t\u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+    \t    \u003Clabel class=\"wppm_edit_project_label\" for=\"wppm_edit_project_label\">\u003C?php esc_html_e('Project:','taskbuilder') ?> \u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;padding-bottom: 10px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+            \u003Cselect searchable=\"search here\" onchange=\"wppm_select_project()\" class=\"form-control\" size=\"40\" name=\"wppm_task_project\" id=\"wppm_task_project\">\r\n+            \u003C?php \r\n+                if(!empty($projects)){\r\n+                    foreach($projects as $proj) { \r\n+                        ?>\r\n+                        \u003Coption \u003C?php echo esc_attr($proj->id)==esc_attr($project_id) ?'selected=\"selected\"':''?> value=\"\u003C?php echo esc_attr($proj->id)?>\">\u003C?php echo esc_html($proj->project_name);?>\u003C\u002Foption>\r\n+                \u003C?php } \r\n+                } ?>\r\n+            \u003C\u002Fselect>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+    \t    \u003Clabel class=\"wppm_edit_task_start_date\" for=\"wppm_edit_task_start_date\">\u003C?php echo esc_html_e('Start Date','taskbuilder') ?> \u003C\u002Flabel>\r\n+\t    \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+        \u003Cdiv class=\"col-sm-12\">\r\n+            \u003Cinput name=\"wppm_edit_task_start_date\" class=\"form-control\" id=\"wppm_edit_task_start_date\" type=\"text\" value=\"\u003C?php echo isset($task_data['start_date'])? esc_attr($task_data['start_date']):\"\"?>\" size=\"40\" aria-required=\"true\">\u003Cbr>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+    \t    \u003Clabel class=\"wppm_edit_task_end_date\" for=\"wppm_edit_task_end_date\">\u003C?php echo esc_html_e('End Date','taskbuilder') ?> \u003C\u002Flabel>\r\n+\t    \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+        \u003Cdiv class=\"col-sm-12\">\r\n+            \u003Cinput name=\"wppm_edit_task_end_date\" class=\"form-control\" id=\"wppm_edit_task_end_date\" type=\"text\" value=\"\u003C?php echo isset($task_data['end_date']) ? esc_attr($task_data['end_date']):\"\" ?>\" size=\"40\" aria-required=\"true\">\u003Cbr>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+\t\t\u003Cdiv class=\"col-sm-12\">\r\n+            \u003Clabel class=\"wppm_edit_task_priority_label\" for=\"wppm_edit_task_priority_label\" id=\"wppm_edit_task_priority_label\">\u003C?php echo esc_html_e('Task Priority','taskbuilder');?>\u003C\u002Flabel>\r\n+\t    \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+        \u003Cdiv class=\"col-sm-12\">              \r\n+            \u003Cselect class=\"form-control\" name=\"wppm_edit_task_priority\" id=\"wppm_edit_task_priority\">\r\n+                \u003Coption>\u003C\u002Foption>\r\n+                \u003C?php\r\n+                if(!empty($priorities)){\r\n+                    foreach ( $priorities as $priority ) :\r\n+                        $selected = $priority_id == $priority->id ? 'selected=\"selected\"' : '';\r\n+                        echo '\u003Coption '.esc_attr($selected).' value=\"'.esc_attr($priority->id).'\">'.esc_html($priority->name).'\u003C\u002Foption>';\r\n+                    endforeach;\r\n+                }\r\n+                ?>\r\n+            \u003C\u002Fselect>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+        \u003Cdiv class=\"col-sm-12\">\r\n+            \u003Clabel class=\"wppm_edit_task_description_label\" id=\"wppm_edit_task_description_label\">\r\n+                \u003C?php echo esc_html_e('Description','taskbuilder');?>\r\n+            \u003C\u002Flabel>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"row\" style=\"padding-left:2px;\">\r\n+        \u003Cdiv class=\"col-sm-12\">\r\n+            \u003Ctextarea id=\"wppm_edit_task_description\" class=\"form-control\" name=\"wppm_edit_task_description\">\r\n+                \u003C?php echo !empty($task_data['description']) ? wp_kses_post(wpautop($task_data['description'])) :\"\"?>\r\n+            \u003C\u002Ftextarea>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003C?php do_action('wppm_edit_task_details',$task_id,$project_id);?>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_change_task_details\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_set_change_task_details'))?>\">\r\n+    \u003Cinput type=\"hidden\" name=\"user_id\" id=\"user_id\" value=\"\">\r\n+    \u003Cinput type=\"hidden\" name=\"task_id\" value=\"\u003C?php echo esc_attr($task_id) ?>\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"proj_id\" value=\"\u003C?php echo esc_attr($proj_id) ?>\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"project_id\" value=\"\u003C?php echo esc_attr($current_project_id) ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003Cstyle>\r\n+.select2-results__options {\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript>\r\n+jQuery( document ).ready( function( jQuery ) {\r\n+    wppm_select_project();\r\n+    jQuery(\"#wppm_edit_task_start_date\").flatpickr({\r\n+        enableTime: true,\r\n+        dateFormat: \"Y-m-d H:i\",\r\n+        defaultDate: \"today\"\r\n+    });\r\n+    jQuery(\"#wppm_edit_task_end_date\").flatpickr({\r\n+        enableTime: true,\r\n+        dateFormat: \"Y-m-d H:i\",\r\n+        defaultDate: \"today\" \u002F\u002F\r\n+    });\r\n+    tinymce.remove();\r\n+    tinymce.init({ \r\n+        selector:'#wppm_edit_task_description',\r\n+        body_id: 'wppm_edit_task_description',\r\n+        directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\r\n+        menubar: false,\r\n+        statusbar: false,\r\n+        height : '200',\r\n+        width  : '100%', \r\n+        plugins: [\r\n+            'lists link image directionality paste'\r\n+        ],\r\n+        image_advtab: true,\r\n+        toolbar: 'bold italic underline blockquote | alignleft aligncenter alignright | bullist numlist | rtl | link image',\r\n+        branding: false,\r\n+        autoresize_bottom_margin: 20,\r\n+        browser_spellcheck : true,\r\n+        relative_urls : false,\r\n+        remove_script_host : false,\r\n+        convert_urls : true,\r\n+        paste_as_text: true,\r\n+        content_style: \r\n+        `body {\r\n+              color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\r\n+            }`,\r\n+        setup: function (editor) {\r\n+        }\r\n+    });\r\n+});\r\n+jQuery('#wppm_task_project').select2();\r\n+function wppm_select_project(){\r\n+  jQuery('.wppm_filter_display_element').hide();\r\n+  \u003C?php do_action('wppm_display_cf_by_project_in_edit_task_details') ?>\r\n+}\r\n+jQuery('#wppm_edit_project_label').select2();\r\n+\r\n+\u003C\u002Fscript>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_close': 'wppm_task_popup_close' ?> \" onclick=\"\u003C?php echo ($proj_id!=0) ? \"wppm_modal_close()\":\"wppm_task_modal_close()\"?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_action': 'wppm_task_popup_action' ?> \" onclick=\"wppm_set_change_task_details(\u003C?php echo esc_attr($task_id)?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($current_project_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+echo wp_json_encode( $output );\r\n+?>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,52 +1,52 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-$proj_id = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-$current_project_id = isset($_POST['project_id']) ? absint(sanitize_text_field(wp_unslash($_POST['project_id']))) : '' ;\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_status',$task_id))) {exit;}\n-$task_data = $wppmfunction->get_task($task_id);\n-$statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses\");\n-$status_id   \t= $task_data['status'];\n-$priority_id \t= $task_data['priority'];\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_task_change_status\" method=\"post\">\n-\t\u003Cdiv class=\"form-group\">\n-\t\t\u003Clabel class=\"wppm_edit_task_status_label\" for=\"wppm_default_task_status\">\u003C?php echo esc_html_e('Task Status','taskbuilder');?>\u003C\u002Flabel>\n-\t\t\u003Cselect class=\"form-control\" name=\"wppm_status\">\n-\t\t\t\u003C?php\n-\t\t\tif(!empty($statuses)){\n-\t\t\t\tforeach ( $statuses as $status ) :\n-\t\t\t\t\t$selected = $status_id == $status->id ? 'selected=\"selected\"' : '';\n-\t\t\t\t\techo '\u003Coption '.esc_attr($selected).' value=\"'.esc_attr($status->id).'\">'.esc_html($status->name).'\u003C\u002Foption>';\n-\t\t\t\tendforeach;\n-\t\t\t}\n-\t\t\t?>\n-\t\t\u003C\u002Fselect>\n-\t\u003C\u002Fdiv>\n-\t\u003C?php do_action('wppm_after_edit_change_task_status',$task_id);?>\n-  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_change_task_status\" \u002F>\n-  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_task_status' ) ); ?>\">\n-  \u003Cinput type=\"hidden\" id=\"wppm_task_id\" name=\"task_id\" value=\"\u003C?php echo (esc_attr($task_id)) ?>\" \u002F>\n-\t\n-\n-\u003C\u002Fform>\n-\u003C?php\n-$body = ob_get_clean();\n-\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\")?'wppm_popup_close':'wppm_task_popup_close'?>\" onclick=\"\u003C?php echo ($proj_id!=\"0\")?'wppm_modal_close();':'wppm_task_modal_close();'?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\")?'wppm_popup_action':'wppm_task_popup_action'?>\" onclick=\"wppm_set_change_task_status(\u003C?php echo (esc_js($task_id))?>,\u003C?php echo esc_js($proj_id) ?>,\u003C?php echo esc_js($current_project_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n-echo wp_json_encode($output);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+$proj_id = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+$current_project_id = isset($_POST['project_id']) ? absint(sanitize_text_field(wp_unslash($_POST['project_id']))) : '' ;\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_status',$task_id))) {exit;}\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses\");\r\n+$status_id   \t= $task_data['status'];\r\n+$priority_id \t= $task_data['priority'];\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_task_change_status\" method=\"post\">\r\n+\t\u003Cdiv class=\"form-group\">\r\n+\t\t\u003Clabel class=\"wppm_edit_task_status_label\" for=\"wppm_default_task_status\">\u003C?php echo esc_html_e('Task Status','taskbuilder');?>\u003C\u002Flabel>\r\n+\t\t\u003Cselect class=\"form-control\" name=\"wppm_status\">\r\n+\t\t\t\u003C?php\r\n+\t\t\tif(!empty($statuses)){\r\n+\t\t\t\tforeach ( $statuses as $status ) :\r\n+\t\t\t\t\t$selected = $status_id == $status->id ? 'selected=\"selected\"' : '';\r\n+\t\t\t\t\techo '\u003Coption '.esc_attr($selected).' value=\"'.esc_attr($status->id).'\">'.esc_html($status->name).'\u003C\u002Foption>';\r\n+\t\t\t\tendforeach;\r\n+\t\t\t}\r\n+\t\t\t?>\r\n+\t\t\u003C\u002Fselect>\r\n+\t\u003C\u002Fdiv>\r\n+\t\u003C?php do_action('wppm_after_edit_change_task_status',$task_id);?>\r\n+  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_change_task_status\" \u002F>\r\n+  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_task_status' ) ); ?>\">\r\n+  \u003Cinput type=\"hidden\" id=\"wppm_task_id\" name=\"task_id\" value=\"\u003C?php echo (esc_attr($task_id)) ?>\" \u002F>\r\n+\t\r\n+\r\n+\u003C\u002Fform>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\")?'wppm_popup_close':'wppm_task_popup_close'?>\" onclick=\"\u003C?php echo ($proj_id!=\"0\")?'wppm_modal_close();':'wppm_task_modal_close();'?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\")?'wppm_popup_action':'wppm_task_popup_action'?>\" onclick=\"wppm_set_change_task_status(\u003C?php echo (esc_js($task_id))?>,\u003C?php echo esc_js($proj_id) ?>,\u003C?php echo esc_js($current_project_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n+echo wp_json_encode($output);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_thread.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_thread.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_thread.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_thread.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,90 +1,90 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $wpdb,$wppmfunction,$current_user;\n-$comment_id = isset($_POST['comment_id']) ? absint(sanitize_text_field(wp_unslash($_POST['comment_id']))) : '' ;\n-$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-$proj_id  = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-$task_data = $wppmfunction->get_task($task_id);\n-$task_comment = $wppmfunction->get_task_comment($comment_id);\n-$settings = get_option(\"wppm-ap-modal\");\n-$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\n-$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('change_task_details',$task_id)) || ($current_user->ID == $task_comment['created_by']))) {exit;}\n-ob_start();\n-?>\n-\u003Cform id=\"frm_edit_task_thread\" method=\"post\">\n-\t\u003Cdiv>\n-        \u003Ctextarea id=\"wppm_edit_task_thread_editor\">\n-        \u003C?php echo !empty($task_comment['body']) ? wp_kses_post(wpautop($task_comment['body'])) : ''; ?>\n-        \u003C\u002Ftextarea>\n-\t\u003C\u002Fdiv>\n-  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_edit_task_thread\" \u002F>\n-  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_task_thread' ) ); ?>\">\n-  \u003Cinput type=\"hidden\" id=\"wppm_task_id\" name=\"task_id\" value=\"\u003C?php echo (esc_attr($task_id)) ?>\" \u002F>\n-  \u003Cinput type=\"hidden\" id=\"wppm_comment_id\" name=\"comment_id\" value=\"\u003C?php echo (esc_attr($comment_id)) ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003Cscript>\n-jQuery( document ).ready( function( jQuery ) { \u003C?php\n-      if((!empty($wppm_rich_text_editor)) && ($wppm_rich_text_editor == 1)){ \n-        $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :\"\";\n-        $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :\"\";   \n-        $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :\"\";   \n-        $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :\"\";   \n-        $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)?  ' alignleft aligncenter alignright ' :\"\";   \n-        $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :\"\"; \n-        $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :\"\";     \n-        $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :\"\";     \n-        $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :\"\"; \n-        $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :\"\";     \n-        $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :\"\"; \n-        $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :\"\"; \n-        $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :\"\"; \n-        $toolbar = trim(\"$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough\");?>\n-        tinymce.remove();\n-        tinymce.init({ \n-          selector:'#wppm_edit_task_thread_editor',\n-          body_id: 'wppm_edit_task_thread_editor',\n-          directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\n-          menubar: false,\n-          statusbar: false,\n-          height : '200',\n-          width  : '100%', \n-          plugins: [\n-              'lists link image directionality'\n-          ],\n-          image_advtab: true,\n-          toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>',        \n-          branding: false,\n-          autoresize_bottom_margin: 20,\n-          browser_spellcheck : true,\n-          relative_urls : false,\n-          remove_script_host : false,\n-          convert_urls : true,\n-          content_style: \n-          `body {\n-                color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\n-            }`,\n-          setup: function (editor) {\n-          }\n-         });\n-         \u003C?php } ?>\n-      }); \n-\u003C?php\n-$body = ob_get_clean();\n-\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=0)?'wppm_modal_close':'wppm_task_modal_close'?>\" onclick=\"\u003C?php echo ($proj_id!=0)?'wppm_modal_close();':'wppm_task_modal_close();'?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=0)?'wppm_popup_action':'wppm_task_popup_action'?>\" onclick=\"wppm_set_edit_task_thread(\u003C?php echo (esc_js($task_id))?>,\u003C?php echo esc_js($proj_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$comment_id = isset($_POST['comment_id']) ? absint(sanitize_text_field(wp_unslash($_POST['comment_id']))) : '' ;\r\n+$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+$proj_id  = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$task_comment = $wppmfunction->get_task_comment($comment_id);\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\r\n+$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('change_task_details',$task_id)) || ($current_user->ID == $task_comment['created_by']))) {exit;}\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_edit_task_thread\" method=\"post\">\r\n+\t\u003Cdiv>\r\n+        \u003Ctextarea id=\"wppm_edit_task_thread_editor\">\r\n+        \u003C?php echo !empty($task_comment['body']) ? wp_kses_post(wpautop($task_comment['body'])) : ''; ?>\r\n+        \u003C\u002Ftextarea>\r\n+\t\u003C\u002Fdiv>\r\n+  \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_edit_task_thread\" \u002F>\r\n+  \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_edit_task_thread' ) ); ?>\">\r\n+  \u003Cinput type=\"hidden\" id=\"wppm_task_id\" name=\"task_id\" value=\"\u003C?php echo (esc_attr($task_id)) ?>\" \u002F>\r\n+  \u003Cinput type=\"hidden\" id=\"wppm_comment_id\" name=\"comment_id\" value=\"\u003C?php echo (esc_attr($comment_id)) ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003Cscript>\r\n+jQuery( document ).ready( function( jQuery ) { \u003C?php\r\n+      if((!empty($wppm_rich_text_editor)) && ($wppm_rich_text_editor == 1)){ \r\n+        $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :\"\";\r\n+        $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :\"\";   \r\n+        $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :\"\";   \r\n+        $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :\"\";   \r\n+        $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)?  ' alignleft aligncenter alignright ' :\"\";   \r\n+        $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :\"\"; \r\n+        $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :\"\";     \r\n+        $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :\"\";     \r\n+        $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :\"\"; \r\n+        $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :\"\";     \r\n+        $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :\"\"; \r\n+        $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :\"\"; \r\n+        $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :\"\"; \r\n+        $toolbar = trim(\"$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough\");?>\r\n+        tinymce.remove();\r\n+        tinymce.init({ \r\n+          selector:'#wppm_edit_task_thread_editor',\r\n+          body_id: 'wppm_edit_task_thread_editor',\r\n+          directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\r\n+          menubar: false,\r\n+          statusbar: false,\r\n+          height : '200',\r\n+          width  : '100%', \r\n+          plugins: [\r\n+              'lists link image directionality'\r\n+          ],\r\n+          image_advtab: true,\r\n+          toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>',        \r\n+          branding: false,\r\n+          autoresize_bottom_margin: 20,\r\n+          browser_spellcheck : true,\r\n+          relative_urls : false,\r\n+          remove_script_host : false,\r\n+          convert_urls : true,\r\n+          content_style: \r\n+          `body {\r\n+                color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\r\n+            }`,\r\n+          setup: function (editor) {\r\n+          }\r\n+         });\r\n+         \u003C?php } ?>\r\n+      }); \r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=0)?'wppm_modal_close':'wppm_task_modal_close'?>\" onclick=\"\u003C?php echo ($proj_id!=0)?'wppm_modal_close();':'wppm_task_modal_close();'?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=0)?'wppm_popup_action':'wppm_task_popup_action'?>\" onclick=\"wppm_set_edit_task_thread(\u003C?php echo (esc_js($task_id))?>,\u003C?php echo esc_js($proj_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,1103 +1,1103 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wpdb,$wppmfunction;\n-$id = isset($_POST) && isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : \"0\";\n-$page = isset($_POST) && isset($_POST['page']) ? sanitize_text_field(wp_unslash($_POST['page'])) : '';\n-$task_list_view = get_option('wppm_default_task_list_view');\n-$project_id = isset($_POST) && isset($_POST['project_id']) ? intval(sanitize_text_field($_POST['project_id'])) : \"0\";\n-$wppm_default_task_date = get_option('wppm_default_task_date');\n-$wppm_task_time = get_option('wppm_task_time');\n-$appearance_settings = get_option(\"wppm-ap-individual-task\");\n-$wppm_tinymce_visibility_open_task = get_option('wppm_tinymce_visibility_open_task');\n-$settings = get_option(\"wppm-ap-modal\");\n-$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\n-$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\n-$wppm_date_setting = get_option('wppm_date_setting');\n-$wppm_task_hide_comment_section = get_option('wppm_task_hide_comment_section');\n-$wppm_deafault_time_duration_task = get_option('wppm_display_time_duration_task');\n-$url_auth = false;\n-$auth_id = $wppmfunction->wppm_get_auth_code($id);\n-$auth_id = sanitize_text_field($auth_id);\n-\u002F\u002F url authentication.\n-$auth_code = isset( $_POST['auth-code'] ) ? sanitize_text_field( wp_unslash($_POST['auth-code'] ) ) : ''; \u002F\u002F phpcs:ignore\n-if ( ! $auth_code ) {\n-  $auth_code = isset( $_POST['auth_code'] ) ? sanitize_text_field( wp_unslash($_POST['auth_code'] ) ) : ''; \u002F\u002F phpcs:ignore\n-}\n-\n-if ( $auth_code && $auth_id == $auth_code ) {\n-  $url_auth = true;\n-}\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('view_task',$id)) || ($url_auth==true))) {  ?>\n-  \u003Cdiv style=\"align-item:center;\" >\u003Ch6>\u003C?php esc_attr_e( 'Unauthorized access!', 'taskbuilder' ); ?>\u003C\u002Fh6>\u003C\u002Fdiv>\n-  \u003C?php\n-  wp_die();\n-}\n-$proj_id = isset($_POST) && isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : 0;\n-$current_date = wp_date('Y-m-d');\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$cu_id = absint($current_user->ID);\n-if(!empty($id)){\n-  $task = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task where id=%d\",$id));\n-  $project_data = $wppmfunction->get_project($task->project);\n-  $task_comment = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment where task_id=%d ORDER BY create_time DESC\",$id));\n-  $orderby_proj_sql = (sanitize_sql_orderby( \"create_time DESC\" ));\n-  $task_comment = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment where task_id=%d ORDER BY \". $orderby_proj_sql,$id));\n-  $task_proj = isset($task->project) ? absint($task->project) :\"\";\n-  $task_id = isset($task->id) ? absint($task->id):\"\";\n-}\n-$user_role = $wpdb->get_var( $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users where proj_id = %d AND user_id = %d\",$task_proj,$cu_id));\n-if(!empty($task_proj)){\n-  $project_name = $wpdb->get_var( $wpdb->prepare(\"SELECT project_name FROM {$wpdb->prefix}wppm_project where id= %d\",$task_proj));\n-}\n-$wppm_checklist=$wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id=%d\",$task_id));\n-if(!empty($task->status)){\n-  $task_status_var = absint($task->status);\n-  $task_status = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id=%d\",$task_status_var));\n-}\n-if(!empty($task->priority)){\n-  $task_priority_var = absint($task->priority);\n-  $task_priority = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id=%d\",$task_priority_var));\n-}\n-if(!empty($task->users)){\n-  $users = explode(\",\",$task->users);\n-} \n-\n-if(!empty($task->description)){\n-  $task_description = !empty($task->description) ? wp_kses_post(wpautop($task->description)) : '';\n-}\n-\n-if($wppm_task_time == 1){\n-  $tsDate = new DateTime($task->start_date);\n-  $teDate = new DateTime($task->end_date);\n-  if($task->start_date=='0000-00-00 00:00:00'){\n-    if($wppm_date_setting=='Y-m-d H:i:s'){\n-      $task_start_date = '0000-00-00 00:00:00';\n-    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-      $task_start_date = '00-00-0000 00:00:00';\n-    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-      $task_start_date = '00-00-0000 00:00:00';\n-    }else{\n-      $task_start_date = '0000-00-00 00:00:00';\n-    }\n-  }if($task->end_date=='0000-00-00 00:00:00'){\n-    if($wppm_date_setting=='Y-m-d H:i:s'){\n-      $task_end_date = '0000-00-00 00:00:00';\n-    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-      $task_end_date = '00-00-0000 00:00:00';\n-    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-      $task_end_date = '00-00-0000 00:00:00';\n-    }else{\n-      $task_end_date = '0000-00-00 00:00:00';\n-    }\n-  }if($task->start_date!='0000-00-00 00:00:00'){\n-    if(!empty($wppm_date_setting)){\n-      $task_start_date = $tsDate->format($wppm_date_setting);\n-    }else{\n-      $task_start_date = isset($task->start_date)? $task->start_date:\"\";\n-    }\n-  }\n-  if($task->end_date!='0000-00-00 00:00:00'){\n-    if(!empty($wppm_date_setting)){\n-      $task_end_date = $teDate->format($wppm_date_setting);\n-    }else{\n-      $task_end_date = isset($task->end_date) ? $task->end_date: \"\" ;\n-    }\n-  }\n-} elseif($wppm_task_time == 0){\n-    $tsDate = isset($task->start_date) ? new DateTime($task->start_date): \"\";\n-    $teDate = isset($task->end_date) ? new DateTime($task->end_date):\"\";\n-    $task_start_date = !empty($tsDate) ? $tsDate->format( $wppm_date_setting):\"\";\n-    $task_end_date =  !empty($teDate) ? $teDate->format( $wppm_date_setting):\"\";\n-    if($task->start_date=='0000-00-00 00:00:00'){\n-      if($wppm_date_setting=='Y-m-d H:i:s'){\n-        $task_start_date = '0000-00-00';\n-      }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-        $task_start_date = '00-00-0000';\n-      }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-        $task_start_date = '00-00-0000';\n-      }else{\n-        $task_start_date = '0000-00-00';\n-      }\n-    }\n-    if($task->end_date=='0000-00-00 00:00:00'){\n-      if($wppm_date_setting=='Y-m-d H:i:s'){\n-        $task_end_date = '0000-00-00';\n-      }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-        $task_end_date = '00-00-0000';\n-      }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-        $task_end_date = '00-00-0000';\n-      }\n-      else{\n-        $task_end_date = '0000-00-00';\n-      }\n-    }if($task->start_date!='0000-00-00 00:00:00'){\n-        if($wppm_date_setting=='Y-m-d H:i:s'){\n-          $task_start_date = $tsDate->format('Y-m-d');\n-        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-          $task_start_date = $tsDate->format('d-m-Y');\n-        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-          $task_start_date = $tsDate->format('m-d-Y');\n-        }else{\n-          $task_start_date = $tsDate->format('Y-m-d');\n-        }\n-    }if($task->end_date!='0000-00-00 00:00:00'){\n-      if($wppm_date_setting=='Y-m-d H:i:s'){\n-          $task_end_date = $teDate->format('Y-m-d');\n-        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-          $task_end_date = $teDate->format('d-m-Y');\n-        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-          $task_end_date = $teDate->format('m-d-Y');\n-        }else{\n-          $task_end_date = $teDate->format('Y-m-d');\n-        }\n-    }\n-}\n-$flag = false;\n-$wppm_task_fillter = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task where id=%d\",$id));\n-if(!empty($wppm_task_fillter)){\n-  foreach($wppm_task_fillter as $key_filter=>$val_filter){\n-      $val_array = (array) $val_filter;\n-      $tusers =  $val_array['users'];\n-      $tusers_arr = explode(',',$tusers);\n-      $tproject_id = $val_array['project'];\n-      $tproject_id = absint($tproject_id);\n-      if(!empty($tusers) && in_array($current_user->ID,$tusers_arr)){\n-        $project_user_role = $wpdb->get_var( $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$tproject_id,$cu_id));\n-        $project_users = $wpdb->get_var( $wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$tproject_id));\n-        $project_users_arr = explode(',',(string)$project_users);\n-        if((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)){\n-          $flag= true;\n-          break;\n-        }\n-      }\n-  }\n-}\n-$project_creator = $wpdb->get_var( $wpdb->prepare(\"SELECT created_by FROM {$wpdb->prefix}wppm_project WHERE created_by = %d\",$cu_id));\n-?>\n-\u003Cform id=\"wppm_open_task\" method=\"post\">\n-  \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\n-    \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\n-    \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv class=\"wppm_headers row\">\n-      \u003Cdiv class=\"col-sm-8\">\n-        \u003Cspan class=\"wppm-heading-inline\">\n-          \u003C?php echo esc_html_e('Task','taskbuilder');?>\n-        \u003C\u002Fspan>\u003C?php\n-        if(($current_user->has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',$task_id) || ($flag==true) || $project_creator!=\"\") && $task->is_archived!=1){\n-          $style = \"display:inline;\";\n-        }else{\n-          $style = \"display:none;\";\n-        }\n-        $style = apply_filters('wppm_add_new_task_btn_style_open_task_form',$style);\n-        if(($wppm_task_fillter && (!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)) || $wppm_current_user_capability == 'wppm_admin'|| $wppm_current_user_capability == 'wppm_manager' ||  $current_user->has_cap('manage_options') || $project_data['created_by']==$current_user->ID){\n-          $archive_style= \"display:inline;\";\n-        }else{\n-          $archive_style= \"display:none;\";\n-        }\n-        if($proj_id==0) { \n-          ?> \u003Cspan onclick=\"wppm_add_new_task(\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>)\" class=\"wppm_add_new_task_btn\" id=\"wppm_add_new_task_btn\" style=\"\u003C?php echo esc_attr($style)?>\" title=\"\u003C?php esc_attr_e( 'Create Task', 'taskbuilder' ); ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus.svg'); ?>\" alt=\"add\">\u003C\u002Fspan>\n-        \u003C?php } \n-        else{ ?>\n-            \u003Cspan class=\"wppm_add_new_task_btn\" id=\"wppm_add_new_task_btn\" title=\"\u003C?php esc_attr_e( '\"Create Task', 'taskbuilder' ); ?>\" onclick=\"wppm_create_project_task(\u003C?php echo esc_attr($proj_id) ?>)\" style=\"\u003C?php echo esc_attr($style) ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus.svg'); ?>\" alt=\"add\">\u003C\u002Fspan>\n-        \u003C?php } ?>\n-        \u003C?php if($proj_id==0) {\n-                 if (($project_id!=0)) {\n-                  $task_list_function = \"wppm_get_project_tasks_kanban_view( {$project_id})\";\n-                }\n-                if (empty($project_id) && $task_list_view == 1) {\n-                  $task_list_function = \"wppm_get_task_list('', {$project_id})\";\n-                }\n-                if(empty($task_list_view) && empty($project_id)) {\n-                  $task_list_function = \"wppm_view_task_search_filter('', '', {$project_id})\";\n-                }\n-                ?>\n-                \u003Cspan class=\"wppm-task-list-btn\" id=\"wppm_task_list_btn\" title=\"\u003C?php esc_attr_e( 'Task List', 'taskbuilder' ); ?>\"onclick=\"\u003C?php echo esc_attr($task_list_function) ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist.svg'); ?>\" alt=\"list\">\u003C\u002Fspan>\n-        \u003C?php } \n-        else{\n-          ?>\n-          \u003Cspan class=\"wppm-task-list-btn\" id=\"wppm_task_list_btn\" title=\"\u003C?php esc_attr_e( 'Task List', 'taskbuilder' ); ?>\" onclick=\"wppm_get_project_tasks(\u003C?php echo esc_attr($proj_id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist.svg'); ?>\" alt=\"list\">\u003C\u002Fspan>\n-        \u003C?php } ?>\n-        \u003C?php $style = ((($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('delete_task',$id)) || $wppm_current_user_capability == 'wppm_admin'|| $project_data['created_by']==$current_user->ID ) && $user_role != 3) ? \"display:inline\":\"display:none\"; ?>\n-        \u003C?php $clone_style = ((($current_user->ID && $current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') || ($wppmfunction->has_permission('clone_task',$id)) || $project_data['created_by']==$current_user->ID ) && $task->is_archived!=1 && $user_role != 3) ? \"display:inline\":\"display:none\"; ?>\n-        \u003C?php $ar_css = ($task->is_archived==1) ? \"display:none;\" : \"display:inline\"; ?>\n-        \u003Cspan class=\"wppm-dashboard-btn\" id=\"wppm_dashboard_btn\" title=\"\u003C?php esc_attr_e( 'Dashboard', 'taskbuilder' ); ?>\" onclick=\"wppm_get_project_tasks(\u003C?php echo esc_attr($proj_id) ?>)\">\n-          \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-dashboard')); ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdashboard-icon.svg'); ?>\" alt=\"dashboard\">\u003C\u002Fa>\n-        \u003C\u002Fspan>\n-        \u003Cspan class=\"wppm-delete_task_btn\" id=\"wppm_delete_task_btn\" title=\"Delete Task\" onclick=\"wppm_get_delete_task(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>)\" style=\"\u003C?php echo esc_attr($style) ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fbin.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\n-        \u003Cdiv class=\"wppm-clone_task_btn\" id=\"wppm_clone_task_btn\" title=\"Clone Task\" onclick=\"wppm_clone_task(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id)?>,\u003C?php echo esc_attr($project_id) ?>)\" style=\"\u003C?php echo esc_attr($clone_style) ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fduplicate.svg'); ?>\" alt=\"clone\">\u003C\u002Fdiv>\n-        \u003Cspan class=\"wppm-print_task_btn\" id=\"wppm_print_task_btn\" title=\"Print Task\" onclick=\"wppm_print_task(\u003C?php echo esc_attr($id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fprinter_menu.svg'); ?>\" alt=\"print\" style=\"\u003C?php echo esc_attr($ar_css);?>\">\u003C\u002Fspan>\n-        \u003Cspan class=\"wppm-archieve_task_btn\" id=\"wppm_archieve_task_btn\" title=\"\u003C?php echo ($task->is_archived==1 ) ? 'Restore Task' : 'Archive Task'; ?>\" onclick=\"wppm_archive_task(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($task->is_archived) ?>,\u003C?php echo esc_attr($project_id) ?>)\" style=\"\u003C?php echo esc_attr($archive_style) ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farchive.svg'); ?>\" alt=\"archive\">\u003C\u002Fspan>\n-        \u003Cinput type=\"hidden\" name=\"wppm_archive_task_ajax_nonce\" id=\"wppm_archive_task_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_archive_task_ajax_nonce' ) ); ?>\">\n-        \u003Cdiv class=\"menu\" id=\"wppmprint_menu\" onclick=\"event.stopPropagation();\">\n-          \u003Ca href=\"#\" id=\"wppm_openPDF\" onclick=\"wppm_open_pdf(\u003C?php echo esc_attr($id) ?>)\">🖨️ \u003C?php echo esc_html_e('Open In Browser','taskbuilder');?>\u003C\u002Fa>\n-          \u003Ca href=\"#\" id=\"wppm_downloadPDF\" onclick=\"wppm_download_pdf(\u003C?php echo esc_attr($id) ?>)\">💾 \u003C?php echo esc_html_e('Download PDF','taskbuilder');?>\u003C\u002Fa>\n-        \u003C\u002Fdiv>\n-        \u003C?php do_action('wppm_individual_task_button',$id);?>\n-      \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv id=\"wppm_load_individual_task_container\" class=\"row\">\n-    \u003Cdiv class=\"col-sm-8 wppm_body col-md-9\">\n-      \u003Cdiv class=\"wppm_task_details_container\">\n-        \u003Cdiv class=\"row\">\n-          \u003Cdiv class=\"col-sm-12\">\n-            \u003Cspan class=\"wppm_task_label\"> \u003C?php echo isset($task->task_name) ? esc_html($task->task_name ):\"\" ?>\n-              \u003C?php if (($wppmfunction->has_permission('change_task_details',$id) || $current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') && $task->is_archived!=1) { ?>\n-                  \u003Cspan id=\"wppm_individual_edit_task_subject\" onclick=\"wppm_edit_task_details(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>)\" class=\"btn btn-sm wppm_action_btn\" style=\"background-color:#FFFFFF !important;color:#000000 !important;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\n-              \u003C?php } ?>\n-              \u003C\u002Fspan>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"row\">\n-          \u003Cdiv class=\"col-sm-3\">\n-            \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('Project:','taskbuilder');?>\u003C\u002Fspan>\n-          \u003C\u002Fdiv>\n-          \u003Cdiv class=\"col-sm-9\">\n-            \u003Cspan class=\"wppm_task_details\">\u003C?php echo (isset($project_name))? esc_html($project_name ):\"\"  ?>\u003C\u002Fspan>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"row\">\n-          \u003Cdiv class=\"col-sm-3\">\n-            \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('Created On:','taskbuilder');?>\u003C\u002Fspan>\n-          \u003C\u002Fdiv>\n-          \u003Cdiv class=\"col-sm-9\">\u003C?php\n-            $tcDate = isset($task->date_created) ? new DateTime($task->date_created): \"\";\n-                if($wppm_task_time !=0){\n-                  if($wppm_date_setting=='Y-m-d H:i:s'){\n-                    $task_create_date = !empty($tcDate) ? $tcDate->format('Y-m-d H:i:s'):\"\";\n-                  } elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                    $task_create_date = !empty($tcDate) ? $tcDate->format('d-m-Y H:i:s'):\"\";\n-                  } elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                    $task_create_date = !empty($tcDate) ? $tcDate->format('m-d-Y H:i:s'):\"\";\n-                  } else {\n-                    $task_create_date = !empty($tcDate) ? $tcDate->format('Y-m-d H:i:s'):\"\";\n-                  }\n-                } elseif($wppm_task_time == 0){\n-                  if($wppm_date_setting=='Y-m-d H:i:s'){\n-                    $task_create_date = !empty($tcDate) ? $tcDate->format('Y-m-d'):\"\";\n-                  } elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                    $task_create_date = !empty($tcDate) ? $tcDate->format('d-m-Y'):\"\";\n-                  } elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                    $task_create_date = !empty($tcDate) ? $tcDate->format('m-d-Y'):\"\";\n-                  } else {\n-                    $task_create_date = !empty($tcDate) ? $tcDate->format('Y-m-d'):\"\";\n-                  }\n-                } ?>\n-            \u003Cspan class=\"wppm_task_details\">\u003C?php echo (isset($task_create_date))? esc_html($task_create_date):\"\" ?>\u003C\u002Fspan>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003C?php if($wppm_default_task_date == 1 && $wppm_deafault_time_duration_task==0){ ?>\n-                \u003Cdiv class=\"row\">\n-                  \u003Cdiv class=\"col-sm-3\">\n-                    \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('Start Date:','taskbuilder');?>\u003C\u002Fspan>\n-                  \u003C\u002Fdiv>\n-                  \u003Cdiv class=\"col-sm-9\">\n-                    \u003Cspan class=\"wppm_task_details\" id=\"wppm_edit_tstart_date\">\u003C?php echo (isset($task_start_date))? esc_html($task_start_date):\"\" ?>\u003C\u002Fspan>\n-                  \u003C\u002Fdiv>\n-                  \u003Cinput type=\"hidden\" name=\"wppm_edit_tstart_date_ajax_nonce\" id=\"wppm_edit_tstart_date_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_task_start_date' ) ); ?>\">\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"row\">\n-                  \u003Cdiv class=\"col-sm-3\">\n-                    \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('End Date:','taskbuilder');?>\u003C\u002Fspan>\n-                  \u003C\u002Fdiv>\n-                  \u003Cdiv class=\"col-sm-9\">\n-                    \u003C?php $style = (!empty($task->end_date) && ($task->status!=4 && $task->end_date \u003C $current_date && $task->end_date != '0000-00-00 00:00:00' && $task->end_date != '00-00-0000 00:00:00' && $task->end_date != '00-00-0000' && $task->end_date != '0000-00-00')) ? \"color:#FF0000\":\"color:#2C3E50\"; ?>\n-                    \u003Cspan class=\"wppm_task_details\" id=\"wppm_edit_tend_date\" style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo (isset($task_end_date))? esc_html($task_end_date):\"\" ?>\u003C\u002Fspan>\n-                  \u003C\u002Fdiv>\n-                  \u003Cinput type=\"hidden\" name=\"wppm_edit_tend_date_ajax_nonce\" id=\"wppm_edit_tend_date_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_task_end_date' ) ); ?>\">\n-                \u003C\u002Fdiv>\n-        \u003C?php }\n-         if($wppm_deafault_time_duration_task==1){ \n-                $wppm_task_duration = $wppmfunction->wppm_get_duration($task->start_date,$task->end_date);\n-                $tstatus = isset($task->status) ? $task->status :\"\";\n-                $style = (!empty($task->end_date) && $tstatus!=4 && $task->end_date \u003C $current_date && ($task->end_date != '0000-00-00 00:00:00' && $task->end_date != '00-00-0000 00:00:00' && $task->end_date != '00-00-0000' && $task->end_date != '0000-00-00')) ? \"color:#FF1111\":\"color:#2C3E51\"; ?>\n-                \u003Cdiv class=\"row\">\n-                  \u003Cdiv class=\"col-sm-3\">\n-                    \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('Task Duration:','taskbuilder');?>\u003C\u002Fspan>\n-                  \u003C\u002Fdiv>\n-                  \u003Cdiv class=\"col-sm-9\">\n-                    \u003Cspan class=\"wppm_task_details\"  id=\"wppm_edit_task_duration\" style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo (isset($wppm_task_duration))? esc_html($wppm_task_duration ): \"\" ?>\u003C\u002Fspan>\n-                  \u003C\u002Fdiv>\n-                \u003C\u002Fdiv> \u003C?php\n-        }?>\n-        \u003Cdiv class=\"row\">\n-          \u003Cdiv class=\"col-sm-3\">\n-            \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('Task Priority:','taskbuilder');?>\u003C\u002Fspan>\n-          \u003C\u002Fdiv>\n-          \u003Cdiv class=\"col-sm-9\">\n-            \u003Cspan class=\"wppm_task_details_priority\">\u003Cspan class=\"wppm_admin_label\" style=\"background-color:\u003C?php echo (isset($task_priority->bg_color))? esc_html($task_priority->bg_color):\"\"?>;color:\u003C?php echo (isset($task_priority->color))? esc_html($task_priority->color):\"\"?>;\">\u003C?php echo (isset($task_priority->name)) ? esc_html($task_priority->name):\"\" ?> \u003C\u002Fspan>\u003C\u002Fspan>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"row\">\n-          \u003Cdiv class=\"col-sm-3\">\n-            \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('Description:','taskbuilder');?>\u003C\u002Fspan>\n-          \u003C\u002Fdiv>\n-          \u003Cdiv class=\"col-sm-9\">\n-            \u003Cspan class=\"wppm_task_description\">\u003C?php echo (!empty($task_description))? wp_kses_post(wpautop($task_description)):\"\" ?>\u003C\u002Fspan>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003C?php do_action('wppm_after_task_details_in_open_task',$task->id, $task->project);?>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv class=\"wppm_task_checklist_container\" id=\"wppm_task_checklist_container\">\n-        \u003Cdiv id=\"wppm_checklist_container\">\n-          \u003C?php \n-          if(!empty($wppm_checklist)){\n-            foreach( $wppm_checklist as $key=>$list){\n-              ?>\n-              \u003Cdiv class=\"row\">\n-                \u003Cdiv class=\"col-sm-8\">\n-                  \u003Cspan class=\"wppm_checklist_label\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fchecklist.svg'); ?>\" alt=\"checklist\">\u003C?php echo isset($list->checklist_name) ? esc_html($list->checklist_name):\"\" ?>\u003C\u002Fspan>\n-                \u003C\u002Fdiv>\n-                \u003C?php \n-                $check_style = (($list->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('edit_checklist',$task->id)) && $task->is_archived!=1)? \"display:inline\":\"display:none\"; ?>\n-                \u003C?php $disabled = (($list->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('delete_checklist',$task->id)|| ($wppmfunction->has_permission('add_checklist',0))) && $task->is_archived!=1)? \"\":\"disabled\"; ?>\n-                \u003C?php if($wppmfunction->has_permission('add_checklist',$task->id) || $current_user->has_cap('manage_options')){ ?>\n-                        \u003Cdiv class=\"col-sm-4\" style=\"text-align:right;\u003C?php echo esc_attr($check_style) ?>\">\n-                          \u003Ca class=\"wppm_delete_checklist\" onclick=\"wppm_delete_checklist(\u003C?php echo esc_attr($list->id);?>,\u003C?php echo esc_attr($task->id);?>,\u003C?php echo esc_attr($proj_id);?>)\">\u003C?php echo esc_html_e('Delete Checklist','taskbuilder');?>\u003C\u002Fa>\n-                          \u003Cinput type=\"hidden\" name=\"wppm_delete_checklist_ajax_nonce\" id=\"wppm_delete_checklist_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_delete_checklist' ) ); ?>\">\n-                        \u003C\u002Fdiv>\n-                \u003C?php }?>\n-              \u003C\u002Fdiv> \n-              \u003Cdiv class=\"wppm_progress_bar_container row\">\n-                \u003Cdiv class=\"col-sm-4\">\n-                    \u003Cspan class=\"wppm_progressbar_label\" id=\"wppm_progressbar_label_\u003C?php echo esc_attr($list->id)?>\">0%\u003C\u002Fspan>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"wppm_progress_bar col-sm-8\">\n-                  \u003Cdiv id=\"CheckProgress_\u003C?php echo esc_attr($list->id);?>\" class=\"wppm_checkprogress\" role=\"progressbar\" style=\"width: 0%\" aria-valuemin=\"0\" aria-valuemax=\"100\">\u003C\u002Fdiv>   \n-                \u003C\u002Fdiv>\n-              \u003C\u002Fdiv>\n-              \u003C?php\n-              $list_id = absint($list->id);\n-              $sql = $wpdb->prepare(\n-                  \"SELECT * \n-                  FROM {$wpdb->prefix}wppm_checklist_items \n-                  WHERE checklist_id = %d \n-                  ORDER BY load_order ASC\",\n-                  $list_id\n-              );\n-              \u002F\u002F Execute\n-             $wppm_checklist_items = $wpdb->get_results($sql);\n-              ?>\n-              \u003Cul id=\"wppm_checklist_items_container_\u003C?php echo esc_attr($list->id) ?>\" class=\"wppm_checklist_items_container\" style=\"list-style-type: none; padding-left:0px; margin-top:10px; margin-bottom:10px;\">\n-              \u003C?php\n-                if(!empty( $wppm_checklist_items)){\n-                  foreach($wppm_checklist_items as $key=>$val){\n-                    $checked = $val->checked == 1 ? 'checked=\"checked\"' : '';\n-                    ?>\n-                    \u003Cli id=\"wppm_checklist_\u003C?php echo esc_attr($val->id) ?>\" data-id=\"\u003C?php echo esc_attr($val->id); ?>\" class=\"row wppm_checklist_item\" style=\"margin-bottom:10px;font: 15px 'Helvetica Neue',Helvetica,Arial,sans-serif;\">\n-                      \u003Cdiv class=\"col-sm-8\" id=\"wppm_checklist_item_container_\u003C?php echo esc_attr($val->id) ?>\">\n-                        \u003Cspan class=\"wppm_chk_items_drag\">☰\u003C\u002Fspan>\n-                        \u003Cinput id=\"wppm_checklist_item_\u003C?php echo esc_attr($val->id) ?>\" class=\"wppm_checklist_item_\u003C?php echo esc_attr($val->checklist_id) ?>\" onchange=\"wppm_checklist_progress(\u003C?php echo esc_attr($val->checklist_id) ?>,\u003C?php echo esc_attr($val->id) ?>,\u003C?php echo esc_attr($task->id) ?>)\" type=\"checkbox\" name=\"wppm_checklist\" \u003C?php echo esc_attr($checked) ?> value=\"\u003C?php echo esc_attr($val->id) ?>\" \u003C?php echo esc_attr($disabled) ?> style=\"margin:5px;\">\u003Clabel style=\"padding-top: 5px;font-weight: normal;font: 13px 'Helvetica Neue',Helvetica,Arial,sans-serif;\">\u003C?php  echo isset($val->item_name) ? esc_html($val->item_name) : \"\" ?>\u003C\u002Flabel>\n-                        \u003Cinput type=\"hidden\" name=\"wppm_checklist_progress_ajax_nonce\" id=\"wppm_checklist_progress_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_checklist_progress' ) ); ?>\">\n-                      \u003C\u002Fdiv>\n-                      \u003C?php if (($list->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('delete_checklist',$task->id)) && $task->is_archived!=1) { ?>\n-                      \u003Cdiv class=\"col-sm-4\" id=\"wppm_checklist_action_\u003C?php echo esc_attr($val->id) ?>\" style=\"text-align:right; display:none;cursor:pointer;\">\n-                          \u003Cspan onclick=wppm_edit_checklist_item(\u003C?php echo esc_attr($val->id) ?>,\u003C?php echo esc_attr($val->checklist_id) ?>,\u003C?php echo esc_attr( $proj_id);?>,\u003C?php echo esc_attr($id) ?>)>\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\n-                          \u003Cinput type=\"hidden\" name=\"wppm_edit_checklist_item_ajax_nonce\" id=\"wppm_edit_checklist_item_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_edit_checklist_item' ) ); ?>\">\n-                          \u003Cspan onclick=wppm_delete_checklist_item(\u003C?php echo esc_attr($val->id) ?>,\u003C?php echo esc_attr($val->checklist_id) ?>,\u003C?php echo esc_attr($proj_id);?>,\u003C?php echo esc_attr($id) ?>)>\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\n-                          \u003Cinput type=\"hidden\" name=\"wppm_delete_checklist_item_ajax_nonce\" id=\"wppm_delete_checklist_item_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_remove_checklist_item' ) ); ?>\">\n-                      \u003C\u002Fdiv>\n-                      \u003C?php } ?>\n-                    \u003C\u002Fli>\n-                    \u003C?php\n-                  }\n-                } ?>\n-              \u003C?php if(($wppmfunction->has_permission('add_checklist',$task->id) || $current_user->has_cap('manage_options')) && $task->is_archived!=1){ ?>\n-                \u003Cdiv class=\"row\">\n-                  \u003Cdiv class=\"col-sm-12 wppm_add_checklist_item_container_\u003C?php echo esc_attr($list->id) ?>\" style=\"padding-top:15px;\">\n-                    \u003Ca class=\"wppm_add_checklist\" id=\"wppm_add_checklist_item_btn_\u003C?php echo esc_attr($list->id) ?>\" onclick=\"wppm_add_checklist_item(\u003C?php echo esc_attr($list->id)?>)\">\u003C?php echo esc_html_e('+ Add item','taskbuilder');?>\u003C\u002Fa>\n-                  \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-              \u003C?php }?>\n-              \u003C?php if(($wppmfunction->has_permission('add_checklist',$task->id) || $current_user->has_cap('manage_options')) && $task->is_archived!=1){ ?>\n-                    \u003Cdiv class=\"row\">\n-                      \u003Cdiv class=\"col-sm-12\" style=\"display:none;\" id=\"wppm_add_checklist_label_container_\u003C?php echo esc_attr($list->id) ?>\">\n-                        \u003Cdiv class=\"row\" id=\"wppm_add_new_checklist_item_\u003C?php echo esc_attr($list->id) ?>\">\n-                          \u003Cdiv class=\"col-sm-12\">\n-                            \u003Cinput type=\"text\" id=\"wppm_checklist_item_label_\u003C?php echo esc_attr($list->id) ?>\" class=\"wppm_checklist_item_label_\u003C?php echo esc_attr($list->id) ?>\" placeholder=\"\u003C?php echo esc_attr__('Add an item','taskbuilder') ?>\" name=\"wppm_checklist_item_label\" style=\"font: 13px 'Helvetica Neue',Helvetica,Arial,sans-serif;\">\n-                            \u003Cinput type=\"button\" value=\"Add\" class=\"btn btn-success btn-sm wppm_add_new_item_btn_\u003C?php echo esc_attr($list->id); ?>\" onclick=\"wppm_add_new_checklist_item(\u003C?php echo esc_attr($list->id)?>,\u003C?php echo esc_attr($task->id)?>,\u003C?php echo esc_attr($proj_id) ?>)\">\n-                            \u003Cinput type=\"hidden\" name=\"wppm_checklist_item_ajax_nonce\" id=\"wppm_checklist_item_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_add_new_checklist_item' ) ); ?>\">\n-                            \u003Cspan onclick=\"wppm_remove_add_checklist_container(\u003C?php echo esc_attr($list->id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcancel.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\n-                          \u003C\u002Fdiv>\n-                        \u003C\u002Fdiv>\n-                        \u003C\u002Fbr>\n-                      \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-              \u003C?php }?>\n-            \u003Chr class=\"wppm_checklist_divider\">\n-            \u003C\u002Ful>\n-            \u003C?php\n-            }\n-          } ?>\n-        \u003C\u002Fdiv>\u003C?php \n-        if($user_role != 3){\n-          if(($wppmfunction->has_permission('add_checklist',$task->id) || $current_user->has_cap('manage_options')) && $task->is_archived!=1){ ?>\n-            \u003Cdiv id=\"wppm_add_checklist_container\">\n-              \u003Cdiv class=\"row\">\n-                \u003Cdiv class=\"col-sm-12\">\n-                  \u003Cspan id=\"wppm_add_checklist\" onclick=\"wppm_add_checklist()\"> \u003C?php echo esc_html_e('+Add a checklist','taskbuilder')?> \u003C\u002Fspan>\n-                \u003C\u002Fdiv>\n-              \u003C\u002Fdiv>\n-              \u003Cdiv class=\"row\" id=\"wppm_add_new_checklist\" style=\"display:none;\">\n-                \u003Cdiv class=\"col-sm-12\">\n-                  \u003Cinput type=\"text\" class=\"wppm_checklist_label\" placeholder=\"\u003C?php echo esc_attr__('Please insert checklist title','taskbuilder');?>\" id=\"wppm_checklist_label\" name=\"wppm_checklist_label\">\n-                  \u003Cinput type=\"button\" value=\"Add\" id=\"wppm_checklist_btn\" class=\"btn btn-success btn-sm\" onclick=\"wppm_add_new_checklist(\u003C?php echo esc_attr($id)?>,\u003C?php echo esc_attr($proj_id) ?>)\">\n-                  \u003Cinput type=\"hidden\" name=\"wppm_checklist_ajax_nonce\" id=\"wppm_checklist_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_add_new_checklist' ) ); ?>\">\n-                  \u003Cspan onclick=\"wppm_remove_add_checklist()\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcross1.svg'); ?>\">\u003C\u002Fspan>\n-                \u003C\u002Fdiv>\n-              \u003C\u002Fdiv>\n-              \u003C\u002Fbr>\n-            \u003C\u002Fdiv>\u003C?php\n-          } \n-        }?>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv id=\"wppm_activity_container\"  style=\"\u003C?php echo ($wppm_task_hide_comment_section==0 || $user_role==3) ? 'display:none;' : 'display:block;' ?>\">\n-        \u003Cdiv class=\"row\">\n-          \u003Cdiv class=\"col-sm-12\" style=\"margin-top:5px;\">\n-            \u003Cspan class=\"wppm_task_discussion\">\u003C?php echo esc_html_e('Comment','taskbuilder')?>\u003C\u002Fspan>\u003Cbr>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"row\">\n-          \u003Cdiv class=\"col-sm-12\" style=\"\u003C?php echo ($task->is_archived==1) ? 'display:none;' : 'display:block;' ?>\">\n-            \u003Ctextarea id=\"wppm_task_comment\" placeholder=\"\u003C?php echo esc_attr__('Write a comment...','taskbuilder');?>\" onclick=\"wppm_add_task_comment()\" name=\"wppm_task_comment\">\u003C\u002Ftextarea>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"row\" id=\"wppm_comment_btn\" style=\"\u003C?php echo ($task->is_archived==1) ? 'display:none;' : 'display:block;' ?>\">\n-          \u003Cdiv class=\"col-sm-6\">\n-            \u003Cspan id=\"wppm_attach_file\" onclick=\"wppm_upload_file()\">\u003C?php echo esc_html_e('Attach Files','taskbuilder')?>\u003C\u002Fspan>\n-          \u003C\u002Fdiv>\n-          \u003Cdiv class=\"col-sm-6\">\n-            \u003Cbutton type=\"button\" id=\"wppm_individual_cancel_comment_btn\" onclick=\"wppm_cancel_comment();\" class=\"wppm-btn-cancel\">\n-              \u003C?php echo esc_html_e('Cancel','taskbuilder')?> \n-            \u003C\u002Fbutton>\n-            \u003Cbutton type=\"button\" id=\"wppm_individual_submit_task_comment_btn\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['comment-send-btn-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['comment-send-btn-color'])?>!important;\" onclick=\"wppm_submit_task_comment(\u003C?php echo esc_attr($id); ?>,\u003C?php echo esc_attr($proj_id); ?>);\" class=\"wppm-btn\">\n-              \u003C?php echo esc_html_e('SEND','taskbuilder')?> \n-            \u003C\u002Fbutton>\n-            \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_submit_task_comment' ) ); ?>\">\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"row\" style=\"\u003C?php echo ($task->is_archived==1) ? 'display:none;' : 'display:block;' ?>\">\n-          \u003Cdiv class=\"wppm_attachment_container col-sm-12\" style=\"display:none;\">\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv class=\"wppm_thread_container\"  style=\"\u003C?php echo ($wppm_task_hide_comment_section==0 || $user_role==3) ? 'display:none;' : 'display:block;' ?>\">\n-        \u003C?php \n-            if(!empty($task_comment)){\n-              foreach($task_comment as $comment){\n-                $task_comment_meta = $wpdb->get_row( $wpdb->prepare(\n-                        \"SELECT * \n-                        FROM {$wpdb->prefix}wppm_task_comment_meta \n-                        WHERE task_id = %d \n-                          AND comment_id = %d\",\n-                        absint($id),\n-                        absint($comment->id)\n-                    )\n-                );\n-                $user = get_userdata( $comment->created_by );\n-                $comment_body = (!empty($comment->body) ? wp_kses_post(wpautop($comment->body)) : '');\n-                $date = wp_date(\"Y-m-d H:i:s\" ,strtotime($comment->create_time));\n-                $thread_date = wp_date(\"d F Y, h:i:s A\" ,strtotime($date));\n-                $attachment_ids = isset($comment->attachment_ids)? $comment->attachment_ids : '';\n-                if($attachment_ids!=\"\"){\n-                  $attachments = explode(\",\",$attachment_ids);\n-                } else {\n-                  $attachments = array();\n-                }\n-                ?>\n-                \u003Cdiv class=\"wppm_thread\">\n-                  \u003Cdiv class=\"wppm_thread_avatar\">\n-                    \u003C?php echo (get_avatar($comment->created_by, 40));?>\n-                  \u003C\u002Fdiv>\n-                  \u003Cdiv class=\"wppm_thread_body\">\n-                    \u003Cdiv class=\"wppm_thread_user_name\">\n-                      \u003Cstrong style=\"color:\u003C?php echo esc_attr($appearance_settings['comment-primary-color']);?>\">\u003C?php echo isset($user->display_name) ? esc_html($user->display_name) : '' ?>\u003C\u002Fstrong>\n-                      \u003Cspan>\u003C?php if(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_status')){\n-                        $comment_log_body = unserialize($comment->body);\n-                        $prev_status = $comment_log_body['prev_status'];\n-                        $new_status = $comment_log_body['new_status'];\n-                        if(isset($prev_status)){\n-                          $task_prev_status = $wpdb->get_row( $wpdb->prepare(\n-                            \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id = %d\",\n-                            absint($prev_status)\n-                          ));\n-                        }\n-                        if(isset($new_status)){\n-                          $task_new_status = $wpdb->get_row( $wpdb->prepare(\n-                            \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id = %d\",\n-                            absint($new_status)\n-                          ));\n-                        }\n-                        printf(\n-                            esc_html__( 'Changed status from %1$s to %2$s', 'taskbuilder' ),\n-                            esc_html( $task_prev_status->name ),\n-                            esc_html( $task_new_status->name )\n-                        );\n-                      } if(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_creator')){\n-                        $comment_log_body = unserialize($comment->body);\n-                        $prev_user = $comment_log_body['prev_user'];\n-                        $new_user = $comment_log_body['new_user'];\n-                        $prev_user_data = get_userdata($prev_user);\n-                        $new_user_data = get_userdata($new_user);\n-                        printf(\n-                            esc_html__( 'Changed creator from %1$s to %2$s', 'taskbuilder' ),\n-                            esc_html( $prev_user_data->display_name ),\n-                            esc_html( $new_user_data->display_name )\n-                        );\n-                      }\n-                      if( !empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_assign_user')){\n-                        esc_html_e(\"changed the Assignee\",\"taskbuilder\");\n-                      } \n-                      if(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_priority')){\n-                        $comment_log_body = unserialize($comment->body);\n-                        $prev_prio = $comment_log_body['prev_prio'];\n-                        $new_prio = $comment_log_body['new_prio'];\n-                        if(isset($prev_prio)){\n-                          $prev_prio = absint($prev_prio);\n-                          $task_prev_prio = $wpdb->get_row( $wpdb->prepare(\n-                            \"SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = %d\",\n-                            $prev_prio\n-                          ));\n-                        }\n-                        if(isset($new_prio)){\n-                          $new_prio = absint($new_prio);\n-                          $task_new_prio = $wpdb->get_row( $wpdb->prepare(\n-                            \"SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = %d\",\n-                            $new_prio\n-                          ));\n-                        }\n-                        $task_prev_prio_name = !empty($task_prev_prio) ? $task_prev_prio->name: \"None\";\n-                        $task_new_prio_name = !empty($task_new_prio) ? $task_new_prio->name: \"None\";\n-                        printf(\n-                            esc_html__( 'Changed priority from %1$s to %2$s', 'taskbuilder' ),\n-                            esc_html( $task_prev_prio_name ),\n-                            esc_html( $task_new_prio_name )\n-                        );\n-                      }\n-                      ?>\n-                      \u003Csmall class=\"wppm_comment_date\" style=\"color:\u003C?php echo esc_attr($appearance_settings['comment-date-color']);?>\">\u003Ci>\u003C?php echo isset($thread_date) ? esc_html($thread_date) : '' ?>\u003C\u002Fi>\u003C\u002Fsmall>\n-                      \u003Cdiv class=\"wppm_thread_action\">\n-                        \u003C?php if((((($current_user->has_cap('manage_options')) || ($wppmfunction->has_comment_permission('edit_task_comment',$id,$comment->id))) && ((empty($task_comment_meta->comment_type)) || (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='comment')))) && ($task->is_archived!=1)){ ?>\n-                          \u003Cspan title=\"Edit this thread\" onclick=\"wppm_edit_thread(\u003C?php echo esc_attr($comment->id)?>,\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\n-                          \u003Cspan title=\"Delete this thread\" onclick=\"wppm_delete_thread(\u003C?php echo esc_attr($comment->id) ?>,\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\n-                        \u003C?php } ?>\n-                      \u003C\u002Fdiv>\n-                    \u003C\u002Fdiv>\n-                    \u003Cdiv class=\"wppm_thread_messege\" style=\"color:\u003C?php echo esc_attr($appearance_settings['comment-secondary-color']);?>\">\n-                      \u003C?php \n-                      $allowedtags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'target'=> array(), 'rel'=>array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\n-                      if(!empty($comment_body) && ((empty($task_comment_meta->comment_type)) || (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='comment') || (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='delete_task_comment'))){\n-                        echo wp_kses(wpautop($comment_body),$allowedtags);\n-                      } elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_status')){ ?>\n-                        \u003Cspan class=\"wppm_admin_label\" style=\"margin-right: 10px; background-color:\u003C?php echo isset($task_prev_status->bg_color) ? esc_attr($task_prev_status->bg_color):\"\"; ?>;color:\u003C?php echo isset($task_prev_status->color) ? esc_attr($task_prev_status->color): \"\" ?>;\">\u003C?php echo isset($task_prev_status->name) ? esc_attr($task_prev_status->name) : \"\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan class=\"wppm_admin_label\" style=\"margin-left:10px; background-color:\u003C?php echo isset($task_new_status->bg_color) ? esc_attr($task_new_status->bg_color):\"\"; ?>;color:\u003C?php echo isset($task_new_status->color) ? esc_attr($task_new_status->color): \"\" ?>;\">\u003C?php echo isset($task_new_status->name) ? esc_attr($task_new_status->name) : \"\" ?>\u003C\u002Fspan>\u003C?php\n-                      }elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_creator')){ ?>\n-                        \u003Cspan style=\"margin-right: 10px;\">\u003C?php echo isset($prev_user_data->display_name) ? esc_attr($prev_user_data->display_name) : \"\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan style=\"margin-left:10px;\">\u003C?php echo isset($new_user_data->display_name) ? esc_attr($new_user_data->display_name) : \"\" ?>\u003C\u002Fspan>\u003C?php\n-                      } elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_assign_user')) { \n-                        $comment_log_body = unserialize($comment->body);\n-                        $prev_assign_user = $comment_log_body['prev_assign_user'];\n-                        $new_assign_user = $comment_log_body['new_assign_user'];\n-                        $prev_assign_user_array = array();\n-                        $new_assign_user_array = array();\n-                        if(!empty($prev_assign_user)){\n-                          $prev_assign_user_array = explode(\",\",$prev_assign_user);\n-                        }\n-                        if(!empty($new_assign_user)){\n-                          $new_assign_user_array = explode(\",\",$new_assign_user);\n-                        }\n-                        $assign_user_name = array();\n-                        $assign_user_name_str = \"\";\n-                        if(!empty($prev_assign_user_array)){\n-                          foreach($prev_assign_user_array as $val){\n-                            $assign_user = get_userdata($val);\n-                            $assign_user_name[] = $assign_user->display_name;\n-                          }\n-                          $assign_user_name_str = implode(\",\",$assign_user_name);\n-                        }\n-                        $new_assign_user_name = array();\n-                        $new_assign_user_name_str = \"\";\n-                        if(!empty($new_assign_user_array)){\n-                          foreach($new_assign_user_array as $val){\n-                            $new_assign_user = get_userdata($val);\n-                            $new_assign_user_name[] = $new_assign_user->display_name;\n-                          }\n-                          $new_assign_user_name_str = implode(\",\",$new_assign_user_name);\n-                        }\n-                        ?>\n-                        \u003Cspan style=\"margin-right: 10px;\">\u003C?php echo !empty($assign_user_name) ? esc_attr( $assign_user_name_str) : \"None\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan style=\"margin-left:10px;\">\u003C?php echo !empty($new_assign_user_name_str) ? esc_attr($new_assign_user_name_str) : \"None\" ?>\u003C\u002Fspan>\u003C?php\n-                      } elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_priority')){ ?>\n-                        \u003Cspan class=\"wppm_admin_label\" style=\"margin-right: 10px; background-color:\u003C?php echo isset($task_prev_prio->bg_color) ? esc_attr($task_prev_prio->bg_color):\"\"; ?>;color:\u003C?php echo isset($task_prev_prio->color) ? esc_attr($task_prev_prio->color): \"\" ?>;\">\u003C?php echo !empty($task_prev_prio->name) ? esc_attr($task_prev_prio->name) : \"None\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan class=\"wppm_admin_label\" style=\"margin-left:10px; background-color:\u003C?php echo isset($task_new_prio->bg_color) ? esc_attr($task_new_prio->bg_color):\"\"; ?>;color:\u003C?php echo isset($task_new_prio->color) ? esc_attr($task_new_prio->color): \"\" ?>;\">\u003C?php echo !empty($task_new_prio->name) ? esc_attr($task_new_prio->name) : \"None\" ?>\u003C\u002Fspan>\u003C?php\n-                      } ?>\n-                       \n-                    \u003C\u002Fdiv>\n-                    \u003C?php \n-                    if(!empty($attachments)&& (isset($task_comment_meta->comment_type) && !($task_comment_meta->comment_type=='delete_task_comment'))):?> \u003Cbr>\n-                      \u003Cstrong class=\"wppm_attachment_title\">\u003C?php echo esc_html_e('Attachments','taskbuilder');?>:\u003C\u002Fstrong>\u003Cbr>\n-                      \u003Ctable class=\"wppm_attachment_tbl\">\n-                        \u003Ctbody>\n-                        \u003C?php\n-                        if(!empty($attachments)){\n-                          foreach( $attachments as $attachment ):\n-                            $download_url = site_url('\u002F').'?wppm_attachment='.$attachment.'&tid='.$id.'&tac='.$auth_id;\n-                            $attachment = absint($attachment);\n-                            $attach = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments where id=%d\",$attachment));\n-                            $findStr = \".txt\";\n-                            if(!empty( $attach)){\n-                              $attachment_name = preg_replace('\u002F' . $findStr . '\u002F', \"\", $attach->name, 1);\n-                              $attachment_name = sanitize_file_name($attachment_name);\n-                            }\n-                            if((!empty($attachment_name))){\n-                              ?>\n-                              \u003Ctr class=\"wppm_attachment_tr\">\n-                                \u003Ctd>\n-                                  \u003Ca class=\"wppm_attachment_link\" href=\"\u003C?php echo esc_url($download_url) ?>\" target=\"_blank\">\n-                                  \u003Cspan class=\"wppm_attachment_file_name\" style=\"padding: 7px;\">\u003C?php echo isset($attach->file_name) ? esc_html($attach->file_name):\"\";?>\u003C\u002Fspan>\u003C\u002Fa>\n-                                  \u003C?php if((($comment->created_by == $current_user->ID) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_comment_permission('edit_task_comment',$id,$comment->id))) && ($task->is_archived!=1)){ ?>\n-                                    \u003Cspan class=\"wppm_thread_action_btn\" onclick=\"wppm_thread_attachment_remove(this,\u003C?php echo !empty($attach->id) ? esc_attr($attach->id) : 0; ?>,\u003C?php echo !empty($comment->id) ? esc_attr($comment->id) : 0; ?>,\u003C?php echo !empty($id) ? esc_attr($id) : 0; ?>,\u003C?php echo !empty($proj_id) ? esc_attr($proj_id) : 0;?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcancel.svg'); ?>\" alt=\"cancel\">\u003C\u002Fspan>\n-                                  \u003C?php } ?>\n-                                \u003C\u002Ftd>\n-                              \u003C\u002Ftr>\n-                              \u003Cinput type=\"hidden\" name=\"wppm_ajax_nonce\" id=\"wppm_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_remove_thread_attachment' ) ); ?>\">\n-                            \u003C?php }\n-                          endforeach;\n-                        } ?>\n-                        \u003C\u002Ftbody>\n-                      \u003C\u002Ftable>\n-                    \u003C?php do_action('wppm_after_comment_attachment',$id,$comment->id);?>\n-                    \u003C?php endif;?>\n-                  \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-            \u003C?php } \n-            } ?>\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm_individual_task_widget col-sm-4 wppm_sidebar col-md-3\">\n-      \u003Cdiv class=\"row wppm_widget\" id=\"wppm_status_widget\">\n-        \u003Cdiv class=\"wppm-widget-header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>\"> \n-          \u003Ch4 class=\"widget_header\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>\">\u003C?php echo esc_html_e('Status','taskbuilder')?>\u003C\u002Fh4>\n-            \u003C?php\n-            if($user_role != 3){\n-              if((($current_user->has_cap('manage_options') || $wppm_current_user_capability == ('wppm_admin')  || ($flag==true) || ($wppmfunction->has_permission('change_task_status',$id))!=\"\") && ($task->is_archived!=1))){\n-                ?>\n-                \u003Cspan class=\"wppm_edit_task_details_widget\" onclick=\"wppm_edit_task_status(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\n-                \u003C?php\n-              }\n-            }\n-          ?>\n-        \u003C\u002Fdiv>\n-        \u003Chr class=\"widget_divider\">\n-        \u003Cdiv class=\"wppm-widget-body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>\">\n-          \u003Cdiv class=\"wppm_sidebar_labels\">\u003Cspan class=\"wppm_label_info\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-label-color'])?>\">\u003C?php echo esc_html_e('Status','taskbuilder')?>:\u003C\u002Fspan> \u003Cspan class=\"wppm_admin_label\" style=\"background-color:\u003C?php echo (isset($task_status->bg_color))? esc_attr($task_status->bg_color):\"\"?>;color:\u003C?php echo (isset($task_status->color))? esc_attr($task_status->color):\"\"?>;\">\u003C?php echo (isset($task_status->name))? esc_attr($task_status->name):\"\" ?> \u003C\u002Fspan>\u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv class=\"row wppm_widget\" id=\"wppm_raisedby_widget\">\n-        \u003Cdiv class=\"wppm-widget-header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>\"> \n-          \u003Ch4 class=\"widget_header\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>\">\n-          \u003C?php echo esc_html_e('Task Creator','taskbuilder')?>\u003C\u002Fh4>\n-          \u003C?php if($user_role != 3){\n-                  if ((($wppmfunction->has_permission('change_raised_by',$id ) || $current_user->has_cap('manage_options')) && ($task->is_archived!=1))) { ?>\n-                    \u003Cspan class=\"wppm_edit_task_details_widget\" onclick=\"wppm_edit_task_creator(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\n-            \u003C?php } \n-                }?>\n-        \u003C\u002Fdiv>\n-        \u003Chr class=\"widget_divider\"> \u003C?php\n-        if(isset($task->created_by)){\n-          $user_info = get_userdata($task->created_by);\n-        }else{\n-          $user_info =\"\";\n-        }\n-        ?>\n-        \u003Cdiv class=\"wppm-widget-body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>\">\n-          \u003Cdiv style=\"padding:2px 0;\">\n-              \u003Cspan class=\"wppm_task_user_avatar\">\u003C?php echo (get_avatar($task->created_by, 25, \"mysteryman\")); ?>\u003C\u002Fspan>\n-              \u003Cspan class=\"wppm_task_user_names\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-text-color'])?>;\">\u003C?php echo isset($user_info->display_name)?esc_html($user_info->display_name):\"\"; ?>\u003C\u002Fspan>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003Cdiv class=\"row wppm_widget\" id=\"wppm_task_users_widget_container\">\n-        \u003Cdiv class=\"wppm-widget-header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>\"> \n-          \u003Ch4 class=\"widget_header\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>;\">\u003C?php echo esc_html_e('Users','taskbuilder')?>\u003C\u002Fh4>\n-          \u003C?php \n-              if($user_role != 3){\n-                  if ((($wppmfunction->has_permission('assign_task_users',$id ) || $current_user->has_cap('manage_options')) && ($task->is_archived!=1))) { ?>\n-                    \u003Cspan class=\"wppm_edit_task_details_widget\" onclick=\"wppm_edit_task_users(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\n-            \u003C?php } \n-              }?>\n-        \u003C\u002Fdiv>\n-        \u003Chr class=\"widget_divider\">\n-        \u003Cdiv class=\"wppm-widget-body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>\">\n-          \u003Cdiv id=\"wppm_task_users\">\n-            \u003C?php \n-            $i=0;\n-            if(!empty($users)){\n-              foreach($users as $user) { \n-                $user_data = get_userdata($user);\n-                if(!empty($project_data['users'])){\n-                  $proj_users = explode(',',$project_data['users']);\n-                  if(in_array($user,$proj_users)){\n-                    $i++;\n-                    ?>\n-                    \u003Cdiv style=\"padding:2px 0;\">\n-                        \u003Cspan class=\"wppm_task_user_avatar\">\u003C?php echo (get_avatar($user, 25, \"mysteryman\")); ?>\u003C\u002Fspan>\n-                        \u003Cspan class=\"wppm_task_user_names\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-text-color'])?>;\">\u003C?php echo ((!empty($user_data))? esc_html($user_data->display_name) :\"\") ?>\u003C\u002Fspan>\n-                    \u003C\u002Fdiv>\n-                    \u003C?php \n-                  }\n-                }\n-              }\n-            }\n-            if($i==0){ ?>\n-              \u003Cspan class=\"wppm_display_user_none\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-text-color'])?>\">\u003C?php echo esc_html_e('None','taskbuilder'); ?>\u003C\u002Fspan> \u003C?php\n-            } \n-            ?>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003C?php do_action('wppm_after_task_widgets',$id,$task_id );?>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" id=\"wppm_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_upload_file'))?>\">\n-    \u003Cinput type=\"file\" id=\"wppm_attachment_upload\" class=\"hidden\" onchange=\"\">\n-  \u003C\u002Fdiv>\n-\u003C\u002Fform>\n-\u003Cstyle>\n-  .wppm_comment_date i:hover{\n-    color: \u003C?php echo esc_attr($appearance_settings['comment-date-hover-color'])?>;\n-  }\n-  #Layer_1{\n-    fill:red!important;\n-  }\n-\u003C\u002Fstyle>\n-\u003Cscript>\n-jQuery( document ).ready( function( jQuery ) {\n-  const button = document.getElementById('wppm_print_task_btn');\n-  const box = document.getElementById('wppmprint_menu');\n-\n-  \u002F\u002F Show box on button click\n-  button.addEventListener('click', (e) => {\n-    e.stopPropagation(); \u002F\u002F prevent document click from firing immediately\n-    box.style.display = 'flex';\n-  });\n-\n-  \u002F\u002F Prevent hiding when clicking inside box\n-  box.addEventListener('click', (e) => {\n-    e.stopPropagation();\n-  });\n-\n-  \u002F\u002F Hide when clicking outside\n-  document.addEventListener('click', () => {\n-    box.style.display = 'none';\n-  });\n-\u003C?php\n-  if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task->id))){ ?>\n-    jQuery(\"#wppm_edit_tstart_date\").flatpickr({\n-      enableTime: true,\n-      dateFormat: \"Y-m-d H:i\",\n-      onChange: function(selectedDates, dateStr, instance) {\n-        var data = {\n-          action: 'wppm_set_change_task_start_date',\n-          task_id:\u003C?php echo esc_attr($task->id);?>,\n-          date:dateStr,\n-          _ajax_nonce:jQuery('#wppm_edit_tstart_date_ajax_nonce').val()\n-        };\n-        jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-          instance.close();\n-          wppm_open_task(\u003C?php echo esc_attr($task->id);?>);\n-        }); \n-      },\n-    });\n-    jQuery(\"#wppm_edit_tend_date\").flatpickr({\n-      enableTime: true,\n-      dateFormat: \"Y-m-d H:i\",\n-      onChange: function(selectedDates, dateStr, instance) {\n-        var data = {\n-          action: 'wppm_set_change_task_end_date',\n-          task_id:\u003C?php echo esc_attr($task->id);?>,\n-          date:dateStr,\n-          _ajax_nonce:jQuery('#wppm_edit_tend_date_ajax_nonce').val()\n-        };\n-        jQuery.post(wppm_admin.ajax_url, data, function(response) {\n-          instance.close();\n-          wppm_open_task(\u003C?php echo esc_attr($task->id);?>);\n-        }); \n-      },\n-    });\n-  \u003C?php } ?>\n-  \u003C?php foreach ($wppm_checklist as $chklist) { ?>\n-          var $checkboxes = jQuery('.wppm_checklist_item_'+\u003C?php echo esc_attr($chklist->id);?>);\n-          var $progress = jQuery('#CheckProgress_'+\u003C?php echo esc_attr($chklist->id);?>);\n-          var total = $checkboxes.length;\n-          var checked = jQuery('.wppm_checklist_item_'+\u003C?php echo esc_attr($chklist->id);?>).filter(':checked').length;\n-          var progressWidth = Math.ceil((checked \u002F total) * 100);\n-          jQuery('#CheckProgress_'+\u003C?php echo esc_attr($chklist->id);?>).css('background','#5ba4cf');\n-          jQuery('#CheckProgress_'+\u003C?php echo esc_attr($chklist->id);?>).css('width', progressWidth + '%');\n-          if(progressWidth>0){\n-            jQuery('#wppm_progressbar_label_'+\u003C?php echo esc_attr($chklist->id);?>).text(progressWidth+'%');\n-          }\n-    \u003C?php $wppm_checklist_items = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist_items where checklist_id=%d\",$chklist->id));\n-          foreach ($wppm_checklist_items as $chkitems) { \n-          ?>  jQuery( '#wppm_checklist_'+\u003C?php echo esc_attr($chkitems->id);?>).on(\"mouseover\", function () {\n-                jQuery( '#wppm_checklist_action_'+\u003C?php echo esc_attr($chkitems->id);?>).css(\"display\",\"inline\");\n-                jQuery( '#wppm_checklist_'+\u003C?php echo esc_attr($chkitems->id);?>).css(\"background-color\",\"#e7e8ea\");\n-              })\n-              jQuery( '#wppm_checklist_'+\u003C?php echo esc_attr($chkitems->id);?>).on(\"mouseout\", function () {\n-                jQuery( '#wppm_checklist_action_'+\u003C?php echo esc_attr($chkitems->id);?>).css(\"display\",\"none\");\n-                jQuery( '#wppm_checklist_'+\u003C?php echo esc_attr($chkitems->id);?>).css(\"background-color\",\"#ffffff\");\n-              })\n-          \u003C?php\n-          }\n-    } \n-    $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :\"\";\n-    $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :\"\";   \n-    $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :\"\";   \n-    $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :\"\";   \n-    $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)?  ' alignleft aligncenter alignright ' :\"\";   \n-    $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :\"\"; \n-    $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :\"\";     \n-    $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :\"\";     \n-    $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :\"\"; \n-    $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :\"\";     \n-    $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :\"\"; \n-    $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :\"\"; \n-    $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :\"\";\n-    $toolbar = trim(\"$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough\");\n-    if(($wppm_tinymce_visibility_open_task==1)){ ?>\n-     if((wppm_admin.rich_text_editor) && (wppm_admin.rich_text_editor.trim().length > 0) && (wppm_admin.rich_text_editor == 1)){\n-      tinymce.remove();\n-      tinymce.init({ \n-        selector:'#wppm_task_comment',\n-        body_id: 'wppm_task_comment',\n-        directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\n-        menubar: false,\n-        statusbar: false,\n-        height : '200',\n-        width  : '100%',\n-        plugins: [\n-            'lists link image directionality paste textcolor'\n-        ],\n-        image_advtab: true,\n-        toolbar:'\u003C?php echo esc_js(  $toolbar  ); ?>',\n-        branding: false,\n-        autoresize_bottom_margin: 20,\n-        browser_spellcheck : true,\n-        relative_urls : false,\n-        remove_script_host : false,\n-        convert_urls : true,\n-        paste_as_text: true,\n-        setup: function (editor) {\n-        }\n-      });\n-      jQuery('#wppm_comment_btn').show();\n-    }\n-    \u003C?php } ?>\n-});\n-\n-jQuery(function(jQuery){\n-    \u002F\u002F Checklist Sorting\n-  jQuery(\".wppm_checklist_items_container\").sortable({\n-      handle: \".wppm_chk_items_drag\",\n-      update: function() {\n-          let order = [];\n-          jQuery(this).find(\"li\").each(function(){\n-              order.push(jQuery(this).data(\"id\")); \u002F\u002F checklist item id\n-          });\n-\n-          \u002F\u002F AJAX Save\n-          jQuery.post(wppm_admin.ajax_url, {\n-              action: \"wppm_update_checklist_order\",\n-              order: order,\n-              task_id: \u003C?php echo esc_attr($id); ?>,\n-              _ajax_nonce: '\u003C?php echo esc_attr( wp_create_nonce( 'wppm_update_checklist_order' ) ); ?>'\n-          }, function(response_str){\n-              var response = JSON.parse(response_str);\n-              jQuery('.wppm_submit_wait').hide();\n-              if (response.sucess_status=='1') {\n-                jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\n-              }\n-              jQuery('#wppm_alert_success').slideDown('fast',function(){});\n-              setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\n-          });\n-      }\n-  });\n-\n-});\n-\n-function wppm_cancel_comment(){ \u003C?php\n-  if(!empty($wppm_rich_text_editor) && ($wppm_rich_text_editor == 1)){\n-  ?>\n-    tinyMCE. activeEditor. setContent('');\n-    tinymce.remove('#wppm_task_comment');\n-    jQuery('#wppm_comment_btn').hide();\n-  \u003C?php } else{ \n-    ?>\n-    jQuery('#wppm_task_comment').css(\"width\", \"80%\");\n-    jQuery('#wppm_task_comment').css(\"height\", \"30px\");\n-    jQuery('#wppm_task_comment').css(\"color\", \"#000\");\n-    jQuery('#wppm_task_comment').css(\"padding\", \"5px\");\n-    jQuery('#wppm_task_comment').css(\" margin-bottom\", \"15px\");\n-    jQuery('#wppm_task_comment').css(\"overflow\", \"hidden\");\n-    jQuery('#wppm_task_comment').css(\"border\", \"1 px solid #eee\");\n-    jQuery('#wppm_task_comment').css(\"color\", \"#eee\");\n-    jQuery('#wppm_task_comment').css(\"margin-top\", \"10px\");\n-    jQuery('#wppm_comment_btn').hide();\n-  \u003C?php }?>\n-}\n-\n-function wppm_add_task_comment(){\n-  if((wppm_admin.rich_text_editor == 1)){\n-    tinymce.remove();\n-    tinymce.init({ \n-      selector:'#wppm_task_comment',\n-      body_id: 'wppm_task_comment',\n-      directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\n-      menubar: false,\n-      statusbar: false,\n-      height : '200',\n-      width  : '100%',\n-      plugins: [\n-          'lists link image directionality paste textcolor'\n-      ],\n-      image_advtab: true,\n-      toolbar:'\u003C?php echo esc_js(  $toolbar  ); ?>',\n-      branding: false,\n-      autoresize_bottom_margin: 20,\n-      browser_spellcheck : true,\n-      relative_urls : false,\n-      remove_script_host : false,\n-      convert_urls : true,\n-      paste_as_text: true,\n-      setup: function (editor) {\n-      }\n-    });\n-  } else{\n-    jQuery('#wppm_task_comment').css(\"width\", \"100%\");\n-    jQuery('#wppm_task_comment').css(\"height\", \"160px\");\n-    jQuery('#wppm_task_comment').css(\"color\", \"#000\");\n-  }\n-  jQuery('#wppm_comment_btn').show();\n-}\n-\n-function wppm_submit_task_comment(id,proj_id){\n-  var dataform = new FormData(jQuery('#wppm_open_task')[0]);\n-  dataform.append('action','wppm_submit_task_comment');\n- if((wppm_admin.rich_text_editor == 1)){\n-    var comment_body = tinyMCE.get('wppm_task_comment').getContent().trim();\n-  } else{\n-    var comment_body = jQuery(\"#wppm_task_comment\").val();\n-  }\n-  dataform.append('comment_body',comment_body);\n-  dataform.append('task_id',id);\n-  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-  jQuery.ajax({\n-    url: wppm_admin.ajax_url,\n-    type: 'POST',\n-    data: dataform,\n-    processData: false,\n-    contentType: false\n-  })\n-  .done(function (response_str) {\n-    if((proj_id!=0)||(proj_id!=\"\")){\n-      wppm_open_project_tasks(id,proj_id);\n-    }else if((proj_id==0)||(proj_id==\"\")){\n-      wppm_open_task(id);\n-    }\n-  });\n-}\n-\n-function wppm_add_checklist_item(checklist_id){\n-  jQuery('#wppm_add_checklist_label_container_'+checklist_id).show();\n-  jQuery('#wppm_add_checklist_item_btn_'+checklist_id).hide();\n-  jQuery('.wppm_add_checklist_label_container_'+checklist_id).show();\n-  jQuery('.wppm_checklist_item_label_'+checklist_id).css('height', '30px');\n-  jQuery('.wppm_add_new_item_btn_'+checklist_id).css('margin', '10px');\n-}\n-\n-function wppm_add_checklist(){\n-  jQuery('#wppm_add_checklist').hide();\n-  jQuery('#wppm_add_new_checklist').show();\n-}\n-\n-function wppm_remove_add_checklist_container(checklist_id){\n-  jQuery('#wppm_add_checklist_label_container_'+checklist_id).hide();\n-  jQuery('#wppm_add_checklist_item_btn_'+checklist_id).show();\n-}\n-\n-function wppm_remove_add_checklist(){\n-  jQuery('#wppm_add_new_checklist').hide();\n-  jQuery('#wppm_add_checklist').show();\n-}\n-\n-function wppm_upload_file(){\n-    jQuery('#wppm_attachment_upload').unbind('change');\n-    jQuery('#wppm_attachment_upload').on('change', function() {\n-      var flag = false;\n-      var file = this.files[0];\n-      jQuery('#wppm_attachment_upload').val('');\n-      var allowedExtension = ['exe', 'php','js'];\n-\t    var file_name_split = file.name.split('.');\n-\t    var file_extension = file_name_split[file_name_split.length-1];\n-      file_extension = file_extension.toLowerCase();\t\n-      if( (jQuery.inArray(file_extension,allowedExtension)  > -1)){\n-        flag = true;\n-        alert(\"\u003C?php echo esc_js(__( 'Attached file type not allowed!', 'taskbuilder' ) ); ?>\");\n-\n-      };\n-      \u003C?php\n-      $max_upload = (int)(ini_get('upload_max_filesize')); ?>\n-      var current_filesize=file.size\u002F1000000;\n-      if(current_filesize > \u003C?php echo esc_attr($max_upload); ?>){\n-\t\t\t\tflag = true;\n-\t\t\t\talert(\"\u003C?php echo esc_js(__('File size exceed allowed limit!','taskbuilder')); ?>\");\n-\t\t\t}\n-      if (!flag){\n-        var html_str = '\u003Cdiv class=\"wppm_attachment\">'+\n-                          '\u003Cdiv class=\"progress\" style=\"float: none !important; width: unset !important;\">'+\n-                              '\u003Cdiv class=\"progress-bar\" role=\"progressbar\" aria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width:0%\">'+\n-                                file.name+\n-                              '\u003C\u002Fdiv>'+\n-                              '\u003Cspan class=\"wppm_attachment_cancel\" onclick=\"wppm_attachment_cancel(this);\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcross_icon.svg'); ?>\" alt=\"delete_icon\">\u003C\u002Fspan>'+\n-                          '\u003C\u002Fdiv>'+\n-                        '\u003C\u002Fdiv>';\n-          jQuery('.wppm_attachment_container').show();\n-          jQuery('.wppm_attachment_container').append(html_str);\n-          var attachment = jQuery('.wppm_attachment_container').find('.wppm_attachment').last();\n-          var data = new FormData();\n-            data.append('file', file);\n-            data.append('arr_name', file.name);\n-            data.append('action', 'wppm_upload_file');\n-            data.append('nonce', jQuery('#wppm_nonce').val().trim());\n-            jQuery.ajax({\n-              type: 'post',\n-              url: wppm_admin.ajax_url,\n-              data: data,\n-              xhr: function(){\n-                var xhr = new window.XMLHttpRequest();\n-                xhr.upload.addEventListener(\"progress\", function(evt){\n-                  if (evt.lengthComputable) {\n-                    var percentComplete = Math.floor((evt.loaded \u002F evt.total) * 100);\n-                    jQuery(attachment).find('.progress-bar').css('width',percentComplete+'%');\n-                  }\n-                }, false);\n-                return xhr;\n-              },\n-              processData: false,\n-              contentType: false,\n-              success: function(response) {\n-                var return_obj=JSON.parse(response);\n-                jQuery(attachment).find('.wppm_attachment_cancel').show();\n-                if( parseInt(return_obj.id) != 0 ){\n-                  jQuery(attachment).append('\u003Cinput type=\"hidden\" class=\"wppm_comment_attachment\" name=\"wppm_comment_attachment[]\" value=\"'+return_obj.id+'\">');\n-                  jQuery(attachment).find('.progress-bar').addClass('progress-bar-success');\n-                }else {\n-                  jQuery(attachment).find('.progress-bar').addClass('progress-bar-danger');\n-                }\n-              }\n-            });    \n-      }\n-    });\n-    jQuery('#wppm_attachment_upload').trigger('click');\n-}\n-\u003C\u002Fscript>\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+$id = isset($_POST) && isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : \"0\";\r\n+$page = isset($_POST) && isset($_POST['page']) ? sanitize_text_field(wp_unslash($_POST['page'])) : '';\r\n+$task_list_view = get_option('wppm_default_task_list_view');\r\n+$project_id = isset($_POST) && isset($_POST['project_id']) ? intval(sanitize_text_field($_POST['project_id'])) : \"0\";\r\n+$wppm_default_task_date = get_option('wppm_default_task_date');\r\n+$wppm_task_time = get_option('wppm_task_time');\r\n+$appearance_settings = get_option(\"wppm-ap-individual-task\");\r\n+$wppm_tinymce_visibility_open_task = get_option('wppm_tinymce_visibility_open_task');\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\r\n+$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\r\n+$wppm_date_setting = get_option('wppm_date_setting');\r\n+$wppm_task_hide_comment_section = get_option('wppm_task_hide_comment_section');\r\n+$wppm_deafault_time_duration_task = get_option('wppm_display_time_duration_task');\r\n+$url_auth = false;\r\n+$auth_id = $wppmfunction->wppm_get_auth_code($id);\r\n+$auth_id = sanitize_text_field($auth_id);\r\n+\u002F\u002F url authentication.\r\n+$auth_code = isset( $_POST['auth-code'] ) ? sanitize_text_field( wp_unslash($_POST['auth-code'] ) ) : ''; \u002F\u002F phpcs:ignore\r\n+if ( ! $auth_code ) {\r\n+  $auth_code = isset( $_POST['auth_code'] ) ? sanitize_text_field( wp_unslash($_POST['auth_code'] ) ) : ''; \u002F\u002F phpcs:ignore\r\n+}\r\n+\r\n+if ( $auth_code && $auth_id == $auth_code ) {\r\n+  $url_auth = true;\r\n+}\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('view_task',$id)) || ($url_auth==true))) {  ?>\r\n+  \u003Cdiv style=\"align-item:center;\" >\u003Ch6>\u003C?php esc_attr_e( 'Unauthorized access!', 'taskbuilder' ); ?>\u003C\u002Fh6>\u003C\u002Fdiv>\r\n+  \u003C?php\r\n+  wp_die();\r\n+}\r\n+$proj_id = isset($_POST) && isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : 0;\r\n+$current_date = wp_date('Y-m-d');\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$cu_id = absint($current_user->ID);\r\n+if(!empty($id)){\r\n+  $task = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task where id=%d\",$id));\r\n+  $project_data = $wppmfunction->get_project($task->project);\r\n+  $task_comment = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment where task_id=%d ORDER BY create_time DESC\",$id));\r\n+  $orderby_proj_sql = (sanitize_sql_orderby( \"create_time DESC\" ));\r\n+  $task_comment = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment where task_id=%d ORDER BY \". $orderby_proj_sql,$id));\r\n+  $task_proj = isset($task->project) ? absint($task->project) :\"\";\r\n+  $task_id = isset($task->id) ? absint($task->id):\"\";\r\n+}\r\n+$user_role = $wpdb->get_var( $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users where proj_id = %d AND user_id = %d\",$task_proj,$cu_id));\r\n+if(!empty($task_proj)){\r\n+  $project_name = $wpdb->get_var( $wpdb->prepare(\"SELECT project_name FROM {$wpdb->prefix}wppm_project where id= %d\",$task_proj));\r\n+}\r\n+$wppm_checklist=$wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id=%d\",$task_id));\r\n+if(!empty($task->status)){\r\n+  $task_status_var = absint($task->status);\r\n+  $task_status = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id=%d\",$task_status_var));\r\n+}\r\n+if(!empty($task->priority)){\r\n+  $task_priority_var = absint($task->priority);\r\n+  $task_priority = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id=%d\",$task_priority_var));\r\n+}\r\n+if(!empty($task->users)){\r\n+  $users = explode(\",\",$task->users);\r\n+} \r\n+\r\n+if(!empty($task->description)){\r\n+  $task_description = !empty($task->description) ? wp_kses_post(wpautop($task->description)) : '';\r\n+}\r\n+\r\n+if($wppm_task_time == 1){\r\n+  $tsDate = new DateTime($task->start_date);\r\n+  $teDate = new DateTime($task->end_date);\r\n+  if($task->start_date=='0000-00-00 00:00:00'){\r\n+    if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+      $task_start_date = '0000-00-00 00:00:00';\r\n+    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+      $task_start_date = '00-00-0000 00:00:00';\r\n+    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+      $task_start_date = '00-00-0000 00:00:00';\r\n+    }else{\r\n+      $task_start_date = '0000-00-00 00:00:00';\r\n+    }\r\n+  }if($task->end_date=='0000-00-00 00:00:00'){\r\n+    if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+      $task_end_date = '0000-00-00 00:00:00';\r\n+    }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+      $task_end_date = '00-00-0000 00:00:00';\r\n+    }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+      $task_end_date = '00-00-0000 00:00:00';\r\n+    }else{\r\n+      $task_end_date = '0000-00-00 00:00:00';\r\n+    }\r\n+  }if($task->start_date!='0000-00-00 00:00:00'){\r\n+    if(!empty($wppm_date_setting)){\r\n+      $task_start_date = $tsDate->format($wppm_date_setting);\r\n+    }else{\r\n+      $task_start_date = isset($task->start_date)? $task->start_date:\"\";\r\n+    }\r\n+  }\r\n+  if($task->end_date!='0000-00-00 00:00:00'){\r\n+    if(!empty($wppm_date_setting)){\r\n+      $task_end_date = $teDate->format($wppm_date_setting);\r\n+    }else{\r\n+      $task_end_date = isset($task->end_date) ? $task->end_date: \"\" ;\r\n+    }\r\n+  }\r\n+} elseif($wppm_task_time == 0){\r\n+    $tsDate = isset($task->start_date) ? new DateTime($task->start_date): \"\";\r\n+    $teDate = isset($task->end_date) ? new DateTime($task->end_date):\"\";\r\n+    $task_start_date = !empty($tsDate) ? $tsDate->format( $wppm_date_setting):\"\";\r\n+    $task_end_date =  !empty($teDate) ? $teDate->format( $wppm_date_setting):\"\";\r\n+    if($task->start_date=='0000-00-00 00:00:00'){\r\n+      if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+        $task_start_date = '0000-00-00';\r\n+      }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+        $task_start_date = '00-00-0000';\r\n+      }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+        $task_start_date = '00-00-0000';\r\n+      }else{\r\n+        $task_start_date = '0000-00-00';\r\n+      }\r\n+    }\r\n+    if($task->end_date=='0000-00-00 00:00:00'){\r\n+      if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+        $task_end_date = '0000-00-00';\r\n+      }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+        $task_end_date = '00-00-0000';\r\n+      }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+        $task_end_date = '00-00-0000';\r\n+      }\r\n+      else{\r\n+        $task_end_date = '0000-00-00';\r\n+      }\r\n+    }if($task->start_date!='0000-00-00 00:00:00'){\r\n+        if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+          $task_start_date = $tsDate->format('Y-m-d');\r\n+        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+          $task_start_date = $tsDate->format('d-m-Y');\r\n+        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+          $task_start_date = $tsDate->format('m-d-Y');\r\n+        }else{\r\n+          $task_start_date = $tsDate->format('Y-m-d');\r\n+        }\r\n+    }if($task->end_date!='0000-00-00 00:00:00'){\r\n+      if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+          $task_end_date = $teDate->format('Y-m-d');\r\n+        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+          $task_end_date = $teDate->format('d-m-Y');\r\n+        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+          $task_end_date = $teDate->format('m-d-Y');\r\n+        }else{\r\n+          $task_end_date = $teDate->format('Y-m-d');\r\n+        }\r\n+    }\r\n+}\r\n+$flag = false;\r\n+$wppm_task_fillter = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task where id=%d\",$id));\r\n+if(!empty($wppm_task_fillter)){\r\n+  foreach($wppm_task_fillter as $key_filter=>$val_filter){\r\n+      $val_array = (array) $val_filter;\r\n+      $tusers =  $val_array['users'];\r\n+      $tusers_arr = explode(',',$tusers);\r\n+      $tproject_id = $val_array['project'];\r\n+      $tproject_id = absint($tproject_id);\r\n+      if(!empty($tusers) && in_array($current_user->ID,$tusers_arr)){\r\n+        $project_user_role = $wpdb->get_var( $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$tproject_id,$cu_id));\r\n+        $project_users = $wpdb->get_var( $wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$tproject_id));\r\n+        $project_users_arr = explode(',',(string)$project_users);\r\n+        if((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)){\r\n+          $flag= true;\r\n+          break;\r\n+        }\r\n+      }\r\n+  }\r\n+}\r\n+$project_creator = $wpdb->get_var( $wpdb->prepare(\"SELECT created_by FROM {$wpdb->prefix}wppm_project WHERE created_by = %d\",$cu_id));\r\n+?>\r\n+\u003Cform id=\"wppm_open_task\" method=\"post\">\r\n+  \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+    \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+    \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"wppm_headers row\">\r\n+      \u003Cdiv class=\"col-sm-8\">\r\n+        \u003Cspan class=\"wppm-heading-inline\">\r\n+          \u003C?php echo esc_html_e('Task','taskbuilder');?>\r\n+        \u003C\u002Fspan>\u003C?php\r\n+        if(($current_user->has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',$task_id) || ($flag==true) || $project_creator!=\"\") && $task->is_archived!=1){\r\n+          $style = \"display:inline;\";\r\n+        }else{\r\n+          $style = \"display:none;\";\r\n+        }\r\n+        $style = apply_filters('wppm_add_new_task_btn_style_open_task_form',$style);\r\n+        if(($wppm_task_fillter && (!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)) || $wppm_current_user_capability == 'wppm_admin'|| $wppm_current_user_capability == 'wppm_manager' ||  $current_user->has_cap('manage_options') || $project_data['created_by']==$current_user->ID){\r\n+          $archive_style= \"display:inline;\";\r\n+        }else{\r\n+          $archive_style= \"display:none;\";\r\n+        }\r\n+        if($proj_id==0) { \r\n+          ?> \u003Cspan onclick=\"wppm_add_new_task(\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>)\" class=\"wppm_add_new_task_btn\" id=\"wppm_add_new_task_btn\" style=\"\u003C?php echo esc_attr($style)?>\" title=\"\u003C?php esc_attr_e( 'Create Task', 'taskbuilder' ); ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus.svg'); ?>\" alt=\"add\">\u003C\u002Fspan>\r\n+        \u003C?php } \r\n+        else{ ?>\r\n+            \u003Cspan class=\"wppm_add_new_task_btn\" id=\"wppm_add_new_task_btn\" title=\"\u003C?php esc_attr_e( '\"Create Task', 'taskbuilder' ); ?>\" onclick=\"wppm_create_project_task(\u003C?php echo esc_attr($proj_id) ?>)\" style=\"\u003C?php echo esc_attr($style) ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus.svg'); ?>\" alt=\"add\">\u003C\u002Fspan>\r\n+        \u003C?php } ?>\r\n+        \u003C?php if($proj_id==0) {\r\n+                 if (($project_id!=0)) {\r\n+                  $task_list_function = \"wppm_get_project_tasks_kanban_view( {$project_id})\";\r\n+                }\r\n+                if (empty($project_id) && $task_list_view == 1) {\r\n+                  $task_list_function = \"wppm_get_task_list('', {$project_id})\";\r\n+                }\r\n+                if(empty($task_list_view) && empty($project_id)) {\r\n+                  $task_list_function = \"wppm_view_task_search_filter('', '', {$project_id})\";\r\n+                }\r\n+                ?>\r\n+                \u003Cspan class=\"wppm-task-list-btn\" id=\"wppm_task_list_btn\" title=\"\u003C?php esc_attr_e( 'Task List', 'taskbuilder' ); ?>\"onclick=\"\u003C?php echo esc_attr($task_list_function) ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist.svg'); ?>\" alt=\"list\">\u003C\u002Fspan>\r\n+        \u003C?php } \r\n+        else{\r\n+          ?>\r\n+          \u003Cspan class=\"wppm-task-list-btn\" id=\"wppm_task_list_btn\" title=\"\u003C?php esc_attr_e( 'Task List', 'taskbuilder' ); ?>\" onclick=\"wppm_get_project_tasks(\u003C?php echo esc_attr($proj_id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist.svg'); ?>\" alt=\"list\">\u003C\u002Fspan>\r\n+        \u003C?php } ?>\r\n+        \u003C?php $style = ((($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('delete_task',$id)) || $wppm_current_user_capability == 'wppm_admin'|| $project_data['created_by']==$current_user->ID ) && $user_role != 3) ? \"display:inline\":\"display:none\"; ?>\r\n+        \u003C?php $clone_style = ((($current_user->ID && $current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') || ($wppmfunction->has_permission('clone_task',$id)) || $project_data['created_by']==$current_user->ID ) && $task->is_archived!=1 && $user_role != 3) ? \"display:inline\":\"display:none\"; ?>\r\n+        \u003C?php $ar_css = ($task->is_archived==1) ? \"display:none;\" : \"display:inline\"; ?>\r\n+        \u003Cspan class=\"wppm-dashboard-btn\" id=\"wppm_dashboard_btn\" title=\"\u003C?php esc_attr_e( 'Dashboard', 'taskbuilder' ); ?>\" onclick=\"wppm_get_project_tasks(\u003C?php echo esc_attr($proj_id) ?>)\">\r\n+          \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=wppm-dashboard')); ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdashboard-icon.svg'); ?>\" alt=\"dashboard\">\u003C\u002Fa>\r\n+        \u003C\u002Fspan>\r\n+        \u003Cspan class=\"wppm-delete_task_btn\" id=\"wppm_delete_task_btn\" title=\"Delete Task\" onclick=\"wppm_get_delete_task(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>)\" style=\"\u003C?php echo esc_attr($style) ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fbin.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\r\n+        \u003Cdiv class=\"wppm-clone_task_btn\" id=\"wppm_clone_task_btn\" title=\"Clone Task\" onclick=\"wppm_clone_task(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id)?>,\u003C?php echo esc_attr($project_id) ?>)\" style=\"\u003C?php echo esc_attr($clone_style) ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fduplicate.svg'); ?>\" alt=\"clone\">\u003C\u002Fdiv>\r\n+        \u003Cspan class=\"wppm-print_task_btn\" id=\"wppm_print_task_btn\" title=\"Print Task\" onclick=\"wppm_print_task(\u003C?php echo esc_attr($id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fprinter_menu.svg'); ?>\" alt=\"print\" style=\"\u003C?php echo esc_attr($ar_css);?>\">\u003C\u002Fspan>\r\n+        \u003Cspan class=\"wppm-archieve_task_btn\" id=\"wppm_archieve_task_btn\" title=\"\u003C?php echo ($task->is_archived==1 ) ? 'Restore Task' : 'Archive Task'; ?>\" onclick=\"wppm_archive_task(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($task->is_archived) ?>,\u003C?php echo esc_attr($project_id) ?>)\" style=\"\u003C?php echo esc_attr($archive_style) ?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farchive.svg'); ?>\" alt=\"archive\">\u003C\u002Fspan>\r\n+        \u003Cinput type=\"hidden\" name=\"wppm_archive_task_ajax_nonce\" id=\"wppm_archive_task_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_archive_task_ajax_nonce' ) ); ?>\">\r\n+        \u003Cdiv class=\"menu\" id=\"wppmprint_menu\" onclick=\"event.stopPropagation();\">\r\n+          \u003Ca href=\"#\" id=\"wppm_openPDF\" onclick=\"wppm_open_pdf(\u003C?php echo esc_attr($id) ?>)\">🖨️ \u003C?php echo esc_html_e('Open In Browser','taskbuilder');?>\u003C\u002Fa>\r\n+          \u003Ca href=\"#\" id=\"wppm_downloadPDF\" onclick=\"wppm_download_pdf(\u003C?php echo esc_attr($id) ?>)\">💾 \u003C?php echo esc_html_e('Download PDF','taskbuilder');?>\u003C\u002Fa>\r\n+        \u003C\u002Fdiv>\r\n+        \u003C?php do_action('wppm_individual_task_button',$id);?>\r\n+      \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv id=\"wppm_load_individual_task_container\" class=\"row\">\r\n+    \u003Cdiv class=\"col-sm-8 wppm_body col-md-9\">\r\n+      \u003Cdiv class=\"wppm_task_details_container\">\r\n+        \u003Cdiv class=\"row\">\r\n+          \u003Cdiv class=\"col-sm-12\">\r\n+            \u003Cspan class=\"wppm_task_label\"> \u003C?php echo isset($task->task_name) ? esc_html($task->task_name ):\"\" ?>\r\n+              \u003C?php if (($wppmfunction->has_permission('change_task_details',$id) || $current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') && $task->is_archived!=1) { ?>\r\n+                  \u003Cspan id=\"wppm_individual_edit_task_subject\" onclick=\"wppm_edit_task_details(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>)\" class=\"btn btn-sm wppm_action_btn\" style=\"background-color:#FFFFFF !important;color:#000000 !important;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\r\n+              \u003C?php } ?>\r\n+              \u003C\u002Fspan>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"row\">\r\n+          \u003Cdiv class=\"col-sm-3\">\r\n+            \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('Project:','taskbuilder');?>\u003C\u002Fspan>\r\n+          \u003C\u002Fdiv>\r\n+          \u003Cdiv class=\"col-sm-9\">\r\n+            \u003Cspan class=\"wppm_task_details\">\u003C?php echo (isset($project_name))? esc_html($project_name ):\"\"  ?>\u003C\u002Fspan>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"row\">\r\n+          \u003Cdiv class=\"col-sm-3\">\r\n+            \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('Created On:','taskbuilder');?>\u003C\u002Fspan>\r\n+          \u003C\u002Fdiv>\r\n+          \u003Cdiv class=\"col-sm-9\">\u003C?php\r\n+            $tcDate = isset($task->date_created) ? new DateTime($task->date_created): \"\";\r\n+                if($wppm_task_time !=0){\r\n+                  if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                    $task_create_date = !empty($tcDate) ? $tcDate->format('Y-m-d H:i:s'):\"\";\r\n+                  } elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                    $task_create_date = !empty($tcDate) ? $tcDate->format('d-m-Y H:i:s'):\"\";\r\n+                  } elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                    $task_create_date = !empty($tcDate) ? $tcDate->format('m-d-Y H:i:s'):\"\";\r\n+                  } else {\r\n+                    $task_create_date = !empty($tcDate) ? $tcDate->format('Y-m-d H:i:s'):\"\";\r\n+                  }\r\n+                } elseif($wppm_task_time == 0){\r\n+                  if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                    $task_create_date = !empty($tcDate) ? $tcDate->format('Y-m-d'):\"\";\r\n+                  } elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                    $task_create_date = !empty($tcDate) ? $tcDate->format('d-m-Y'):\"\";\r\n+                  } elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                    $task_create_date = !empty($tcDate) ? $tcDate->format('m-d-Y'):\"\";\r\n+                  } else {\r\n+                    $task_create_date = !empty($tcDate) ? $tcDate->format('Y-m-d'):\"\";\r\n+                  }\r\n+                } ?>\r\n+            \u003Cspan class=\"wppm_task_details\">\u003C?php echo (isset($task_create_date))? esc_html($task_create_date):\"\" ?>\u003C\u002Fspan>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003C?php if($wppm_default_task_date == 1 && $wppm_deafault_time_duration_task==0){ ?>\r\n+                \u003Cdiv class=\"row\">\r\n+                  \u003Cdiv class=\"col-sm-3\">\r\n+                    \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('Start Date:','taskbuilder');?>\u003C\u002Fspan>\r\n+                  \u003C\u002Fdiv>\r\n+                  \u003Cdiv class=\"col-sm-9\">\r\n+                    \u003Cspan class=\"wppm_task_details\" id=\"wppm_edit_tstart_date\">\u003C?php echo (isset($task_start_date))? esc_html($task_start_date):\"\" ?>\u003C\u002Fspan>\r\n+                  \u003C\u002Fdiv>\r\n+                  \u003Cinput type=\"hidden\" name=\"wppm_edit_tstart_date_ajax_nonce\" id=\"wppm_edit_tstart_date_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_task_start_date' ) ); ?>\">\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"row\">\r\n+                  \u003Cdiv class=\"col-sm-3\">\r\n+                    \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('End Date:','taskbuilder');?>\u003C\u002Fspan>\r\n+                  \u003C\u002Fdiv>\r\n+                  \u003Cdiv class=\"col-sm-9\">\r\n+                    \u003C?php $style = (!empty($task->end_date) && ($task->status!=4 && $task->end_date \u003C $current_date && $task->end_date != '0000-00-00 00:00:00' && $task->end_date != '00-00-0000 00:00:00' && $task->end_date != '00-00-0000' && $task->end_date != '0000-00-00')) ? \"color:#FF0000\":\"color:#2C3E50\"; ?>\r\n+                    \u003Cspan class=\"wppm_task_details\" id=\"wppm_edit_tend_date\" style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo (isset($task_end_date))? esc_html($task_end_date):\"\" ?>\u003C\u002Fspan>\r\n+                  \u003C\u002Fdiv>\r\n+                  \u003Cinput type=\"hidden\" name=\"wppm_edit_tend_date_ajax_nonce\" id=\"wppm_edit_tend_date_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_change_task_end_date' ) ); ?>\">\r\n+                \u003C\u002Fdiv>\r\n+        \u003C?php }\r\n+         if($wppm_deafault_time_duration_task==1){ \r\n+                $wppm_task_duration = $wppmfunction->wppm_get_duration($task->start_date,$task->end_date);\r\n+                $tstatus = isset($task->status) ? $task->status :\"\";\r\n+                $style = (!empty($task->end_date) && $tstatus!=4 && $task->end_date \u003C $current_date && ($task->end_date != '0000-00-00 00:00:00' && $task->end_date != '00-00-0000 00:00:00' && $task->end_date != '00-00-0000' && $task->end_date != '0000-00-00')) ? \"color:#FF1111\":\"color:#2C3E51\"; ?>\r\n+                \u003Cdiv class=\"row\">\r\n+                  \u003Cdiv class=\"col-sm-3\">\r\n+                    \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('Task Duration:','taskbuilder');?>\u003C\u002Fspan>\r\n+                  \u003C\u002Fdiv>\r\n+                  \u003Cdiv class=\"col-sm-9\">\r\n+                    \u003Cspan class=\"wppm_task_details\"  id=\"wppm_edit_task_duration\" style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo (isset($wppm_task_duration))? esc_html($wppm_task_duration ): \"\" ?>\u003C\u002Fspan>\r\n+                  \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv> \u003C?php\r\n+        }?>\r\n+        \u003Cdiv class=\"row\">\r\n+          \u003Cdiv class=\"col-sm-3\">\r\n+            \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('Task Priority:','taskbuilder');?>\u003C\u002Fspan>\r\n+          \u003C\u002Fdiv>\r\n+          \u003Cdiv class=\"col-sm-9\">\r\n+            \u003Cspan class=\"wppm_task_details_priority\">\u003Cspan class=\"wppm_admin_label\" style=\"background-color:\u003C?php echo (isset($task_priority->bg_color))? esc_html($task_priority->bg_color):\"\"?>;color:\u003C?php echo (isset($task_priority->color))? esc_html($task_priority->color):\"\"?>;\">\u003C?php echo (isset($task_priority->name)) ? esc_html($task_priority->name):\"\" ?> \u003C\u002Fspan>\u003C\u002Fspan>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"row\">\r\n+          \u003Cdiv class=\"col-sm-3\">\r\n+            \u003Cspan class=\"wppm_task_details_label\">\u003C?php echo esc_html_e('Description:','taskbuilder');?>\u003C\u002Fspan>\r\n+          \u003C\u002Fdiv>\r\n+          \u003Cdiv class=\"col-sm-9\">\r\n+            \u003Cspan class=\"wppm_task_description\">\u003C?php echo (!empty($task_description))? wp_kses_post(wpautop($task_description)):\"\" ?>\u003C\u002Fspan>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003C?php do_action('wppm_after_task_details_in_open_task',$task->id, $task->project);?>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv class=\"wppm_task_checklist_container\" id=\"wppm_task_checklist_container\">\r\n+        \u003Cdiv id=\"wppm_checklist_container\">\r\n+          \u003C?php \r\n+          if(!empty($wppm_checklist)){\r\n+            foreach( $wppm_checklist as $key=>$list){\r\n+              ?>\r\n+              \u003Cdiv class=\"row\">\r\n+                \u003Cdiv class=\"col-sm-8\">\r\n+                  \u003Cspan class=\"wppm_checklist_label\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fchecklist.svg'); ?>\" alt=\"checklist\">\u003C?php echo isset($list->checklist_name) ? esc_html($list->checklist_name):\"\" ?>\u003C\u002Fspan>\r\n+                \u003C\u002Fdiv>\r\n+                \u003C?php \r\n+                $check_style = (($list->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('edit_checklist',$task->id)) && $task->is_archived!=1)? \"display:inline\":\"display:none\"; ?>\r\n+                \u003C?php $disabled = (($list->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('delete_checklist',$task->id)|| ($wppmfunction->has_permission('add_checklist',0))) && $task->is_archived!=1)? \"\":\"disabled\"; ?>\r\n+                \u003C?php if($wppmfunction->has_permission('add_checklist',$task->id) || $current_user->has_cap('manage_options')){ ?>\r\n+                        \u003Cdiv class=\"col-sm-4\" style=\"text-align:right;\u003C?php echo esc_attr($check_style) ?>\">\r\n+                          \u003Ca class=\"wppm_delete_checklist\" onclick=\"wppm_delete_checklist(\u003C?php echo esc_attr($list->id);?>,\u003C?php echo esc_attr($task->id);?>,\u003C?php echo esc_attr($proj_id);?>)\">\u003C?php echo esc_html_e('Delete Checklist','taskbuilder');?>\u003C\u002Fa>\r\n+                          \u003Cinput type=\"hidden\" name=\"wppm_delete_checklist_ajax_nonce\" id=\"wppm_delete_checklist_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_delete_checklist' ) ); ?>\">\r\n+                        \u003C\u002Fdiv>\r\n+                \u003C?php }?>\r\n+              \u003C\u002Fdiv> \r\n+              \u003Cdiv class=\"wppm_progress_bar_container row\">\r\n+                \u003Cdiv class=\"col-sm-4\">\r\n+                    \u003Cspan class=\"wppm_progressbar_label\" id=\"wppm_progressbar_label_\u003C?php echo esc_attr($list->id)?>\">0%\u003C\u002Fspan>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"wppm_progress_bar col-sm-8\">\r\n+                  \u003Cdiv id=\"CheckProgress_\u003C?php echo esc_attr($list->id);?>\" class=\"wppm_checkprogress\" role=\"progressbar\" style=\"width: 0%\" aria-valuemin=\"0\" aria-valuemax=\"100\">\u003C\u002Fdiv>   \r\n+                \u003C\u002Fdiv>\r\n+              \u003C\u002Fdiv>\r\n+              \u003C?php\r\n+              $list_id = absint($list->id);\r\n+              $sql = $wpdb->prepare(\r\n+                  \"SELECT * \r\n+                  FROM {$wpdb->prefix}wppm_checklist_items \r\n+                  WHERE checklist_id = %d \r\n+                  ORDER BY load_order ASC\",\r\n+                  $list_id\r\n+              );\r\n+              \u002F\u002F Execute\r\n+             $wppm_checklist_items = $wpdb->get_results($sql);\r\n+              ?>\r\n+              \u003Cul id=\"wppm_checklist_items_container_\u003C?php echo esc_attr($list->id) ?>\" class=\"wppm_checklist_items_container\" style=\"list-style-type: none; padding-left:0px; margin-top:10px; margin-bottom:10px;\">\r\n+              \u003C?php\r\n+                if(!empty( $wppm_checklist_items)){\r\n+                  foreach($wppm_checklist_items as $key=>$val){\r\n+                    $checked = $val->checked == 1 ? 'checked=\"checked\"' : '';\r\n+                    ?>\r\n+                    \u003Cli id=\"wppm_checklist_\u003C?php echo esc_attr($val->id) ?>\" data-id=\"\u003C?php echo esc_attr($val->id); ?>\" class=\"row wppm_checklist_item\" style=\"margin-bottom:10px;font: 15px 'Helvetica Neue',Helvetica,Arial,sans-serif;\">\r\n+                      \u003Cdiv class=\"col-sm-8\" id=\"wppm_checklist_item_container_\u003C?php echo esc_attr($val->id) ?>\">\r\n+                        \u003Cspan class=\"wppm_chk_items_drag\">☰\u003C\u002Fspan>\r\n+                        \u003Cinput id=\"wppm_checklist_item_\u003C?php echo esc_attr($val->id) ?>\" class=\"wppm_checklist_item_\u003C?php echo esc_attr($val->checklist_id) ?>\" onchange=\"wppm_checklist_progress(\u003C?php echo esc_attr($val->checklist_id) ?>,\u003C?php echo esc_attr($val->id) ?>,\u003C?php echo esc_attr($task->id) ?>)\" type=\"checkbox\" name=\"wppm_checklist\" \u003C?php echo esc_attr($checked) ?> value=\"\u003C?php echo esc_attr($val->id) ?>\" \u003C?php echo esc_attr($disabled) ?> style=\"margin:5px;\">\u003Clabel style=\"padding-top: 5px;font-weight: normal;font: 13px 'Helvetica Neue',Helvetica,Arial,sans-serif;\">\u003C?php  echo isset($val->item_name) ? esc_html($val->item_name) : \"\" ?>\u003C\u002Flabel>\r\n+                        \u003Cinput type=\"hidden\" name=\"wppm_checklist_progress_ajax_nonce\" id=\"wppm_checklist_progress_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_checklist_progress' ) ); ?>\">\r\n+                      \u003C\u002Fdiv>\r\n+                      \u003C?php if (($list->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('delete_checklist',$task->id)) && $task->is_archived!=1) { ?>\r\n+                      \u003Cdiv class=\"col-sm-4\" id=\"wppm_checklist_action_\u003C?php echo esc_attr($val->id) ?>\" style=\"text-align:right; display:none;cursor:pointer;\">\r\n+                          \u003Cspan onclick=wppm_edit_checklist_item(\u003C?php echo esc_attr($val->id) ?>,\u003C?php echo esc_attr($val->checklist_id) ?>,\u003C?php echo esc_attr( $proj_id);?>,\u003C?php echo esc_attr($id) ?>)>\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\r\n+                          \u003Cinput type=\"hidden\" name=\"wppm_edit_checklist_item_ajax_nonce\" id=\"wppm_edit_checklist_item_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_edit_checklist_item' ) ); ?>\">\r\n+                          \u003Cspan onclick=wppm_delete_checklist_item(\u003C?php echo esc_attr($val->id) ?>,\u003C?php echo esc_attr($val->checklist_id) ?>,\u003C?php echo esc_attr($proj_id);?>,\u003C?php echo esc_attr($id) ?>)>\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\r\n+                          \u003Cinput type=\"hidden\" name=\"wppm_delete_checklist_item_ajax_nonce\" id=\"wppm_delete_checklist_item_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_remove_checklist_item' ) ); ?>\">\r\n+                      \u003C\u002Fdiv>\r\n+                      \u003C?php } ?>\r\n+                    \u003C\u002Fli>\r\n+                    \u003C?php\r\n+                  }\r\n+                } ?>\r\n+              \u003C?php if(($wppmfunction->has_permission('add_checklist',$task->id) || $current_user->has_cap('manage_options')) && $task->is_archived!=1){ ?>\r\n+                \u003Cdiv class=\"row\">\r\n+                  \u003Cdiv class=\"col-sm-12 wppm_add_checklist_item_container_\u003C?php echo esc_attr($list->id) ?>\" style=\"padding-top:15px;\">\r\n+                    \u003Ca class=\"wppm_add_checklist\" id=\"wppm_add_checklist_item_btn_\u003C?php echo esc_attr($list->id) ?>\" onclick=\"wppm_add_checklist_item(\u003C?php echo esc_attr($list->id)?>)\">\u003C?php echo esc_html_e('+ Add item','taskbuilder');?>\u003C\u002Fa>\r\n+                  \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+              \u003C?php }?>\r\n+              \u003C?php if(($wppmfunction->has_permission('add_checklist',$task->id) || $current_user->has_cap('manage_options')) && $task->is_archived!=1){ ?>\r\n+                    \u003Cdiv class=\"row\">\r\n+                      \u003Cdiv class=\"col-sm-12\" style=\"display:none;\" id=\"wppm_add_checklist_label_container_\u003C?php echo esc_attr($list->id) ?>\">\r\n+                        \u003Cdiv class=\"row\" id=\"wppm_add_new_checklist_item_\u003C?php echo esc_attr($list->id) ?>\">\r\n+                          \u003Cdiv class=\"col-sm-12\">\r\n+                            \u003Cinput type=\"text\" id=\"wppm_checklist_item_label_\u003C?php echo esc_attr($list->id) ?>\" class=\"wppm_checklist_item_label_\u003C?php echo esc_attr($list->id) ?>\" placeholder=\"\u003C?php echo esc_attr__('Add an item','taskbuilder') ?>\" name=\"wppm_checklist_item_label\" style=\"font: 13px 'Helvetica Neue',Helvetica,Arial,sans-serif;\">\r\n+                            \u003Cinput type=\"button\" value=\"Add\" class=\"btn btn-success btn-sm wppm_add_new_item_btn_\u003C?php echo esc_attr($list->id); ?>\" onclick=\"wppm_add_new_checklist_item(\u003C?php echo esc_attr($list->id)?>,\u003C?php echo esc_attr($task->id)?>,\u003C?php echo esc_attr($proj_id) ?>)\">\r\n+                            \u003Cinput type=\"hidden\" name=\"wppm_checklist_item_ajax_nonce\" id=\"wppm_checklist_item_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_add_new_checklist_item' ) ); ?>\">\r\n+                            \u003Cspan onclick=\"wppm_remove_add_checklist_container(\u003C?php echo esc_attr($list->id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcancel.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\r\n+                          \u003C\u002Fdiv>\r\n+                        \u003C\u002Fdiv>\r\n+                        \u003C\u002Fbr>\r\n+                      \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+              \u003C?php }?>\r\n+            \u003Chr class=\"wppm_checklist_divider\">\r\n+            \u003C\u002Ful>\r\n+            \u003C?php\r\n+            }\r\n+          } ?>\r\n+        \u003C\u002Fdiv>\u003C?php \r\n+        if($user_role != 3){\r\n+          if(($wppmfunction->has_permission('add_checklist',$task->id) || $current_user->has_cap('manage_options')) && $task->is_archived!=1){ ?>\r\n+            \u003Cdiv id=\"wppm_add_checklist_container\">\r\n+              \u003Cdiv class=\"row\">\r\n+                \u003Cdiv class=\"col-sm-12\">\r\n+                  \u003Cspan id=\"wppm_add_checklist\" onclick=\"wppm_add_checklist()\"> \u003C?php echo esc_html_e('+Add a checklist','taskbuilder')?> \u003C\u002Fspan>\r\n+                \u003C\u002Fdiv>\r\n+              \u003C\u002Fdiv>\r\n+              \u003Cdiv class=\"row\" id=\"wppm_add_new_checklist\" style=\"display:none;\">\r\n+                \u003Cdiv class=\"col-sm-12\">\r\n+                  \u003Cinput type=\"text\" class=\"wppm_checklist_label\" placeholder=\"\u003C?php echo esc_attr__('Please insert checklist title','taskbuilder');?>\" id=\"wppm_checklist_label\" name=\"wppm_checklist_label\">\r\n+                  \u003Cinput type=\"button\" value=\"Add\" id=\"wppm_checklist_btn\" class=\"btn btn-success btn-sm\" onclick=\"wppm_add_new_checklist(\u003C?php echo esc_attr($id)?>,\u003C?php echo esc_attr($proj_id) ?>)\">\r\n+                  \u003Cinput type=\"hidden\" name=\"wppm_checklist_ajax_nonce\" id=\"wppm_checklist_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_add_new_checklist' ) ); ?>\">\r\n+                  \u003Cspan onclick=\"wppm_remove_add_checklist()\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcross1.svg'); ?>\">\u003C\u002Fspan>\r\n+                \u003C\u002Fdiv>\r\n+              \u003C\u002Fdiv>\r\n+              \u003C\u002Fbr>\r\n+            \u003C\u002Fdiv>\u003C?php\r\n+          } \r\n+        }?>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv id=\"wppm_activity_container\"  style=\"\u003C?php echo ($wppm_task_hide_comment_section==0 || $user_role==3) ? 'display:none;' : 'display:block;' ?>\">\r\n+        \u003Cdiv class=\"row\">\r\n+          \u003Cdiv class=\"col-sm-12\" style=\"margin-top:5px;\">\r\n+            \u003Cspan class=\"wppm_task_discussion\">\u003C?php echo esc_html_e('Comment','taskbuilder')?>\u003C\u002Fspan>\u003Cbr>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"row\">\r\n+          \u003Cdiv class=\"col-sm-12\" style=\"\u003C?php echo ($task->is_archived==1) ? 'display:none;' : 'display:block;' ?>\">\r\n+            \u003Ctextarea id=\"wppm_task_comment\" placeholder=\"\u003C?php echo esc_attr__('Write a comment...','taskbuilder');?>\" onclick=\"wppm_add_task_comment()\" name=\"wppm_task_comment\">\u003C\u002Ftextarea>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"row\" id=\"wppm_comment_btn\" style=\"\u003C?php echo ($task->is_archived==1) ? 'display:none;' : 'display:block;' ?>\">\r\n+          \u003Cdiv class=\"col-sm-6\">\r\n+            \u003Cspan id=\"wppm_attach_file\" onclick=\"wppm_upload_file()\">\u003C?php echo esc_html_e('Attach Files','taskbuilder')?>\u003C\u002Fspan>\r\n+          \u003C\u002Fdiv>\r\n+          \u003Cdiv class=\"col-sm-6\">\r\n+            \u003Cbutton type=\"button\" id=\"wppm_individual_cancel_comment_btn\" onclick=\"wppm_cancel_comment();\" class=\"wppm-btn-cancel\">\r\n+              \u003C?php echo esc_html_e('Cancel','taskbuilder')?> \r\n+            \u003C\u002Fbutton>\r\n+            \u003Cbutton type=\"button\" id=\"wppm_individual_submit_task_comment_btn\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['comment-send-btn-bg-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['comment-send-btn-color'])?>!important;\" onclick=\"wppm_submit_task_comment(\u003C?php echo esc_attr($id); ?>,\u003C?php echo esc_attr($proj_id); ?>);\" class=\"wppm-btn\">\r\n+              \u003C?php echo esc_html_e('SEND','taskbuilder')?> \r\n+            \u003C\u002Fbutton>\r\n+            \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_submit_task_comment' ) ); ?>\">\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"row\" style=\"\u003C?php echo ($task->is_archived==1) ? 'display:none;' : 'display:block;' ?>\">\r\n+          \u003Cdiv class=\"wppm_attachment_container col-sm-12\" style=\"display:none;\">\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv class=\"wppm_thread_container\"  style=\"\u003C?php echo ($wppm_task_hide_comment_section==0 || $user_role==3) ? 'display:none;' : 'display:block;' ?>\">\r\n+        \u003C?php \r\n+            if(!empty($task_comment)){\r\n+              foreach($task_comment as $comment){\r\n+                $task_comment_meta = $wpdb->get_row( $wpdb->prepare(\r\n+                        \"SELECT * \r\n+                        FROM {$wpdb->prefix}wppm_task_comment_meta \r\n+                        WHERE task_id = %d \r\n+                          AND comment_id = %d\",\r\n+                        absint($id),\r\n+                        absint($comment->id)\r\n+                    )\r\n+                );\r\n+                $user = get_userdata( $comment->created_by );\r\n+                $comment_body = (!empty($comment->body) ? wp_kses_post(wpautop($comment->body)) : '');\r\n+                $date = wp_date(\"Y-m-d H:i:s\" ,strtotime($comment->create_time));\r\n+                $thread_date = wp_date(\"d F Y, h:i:s A\" ,strtotime($date));\r\n+                $attachment_ids = isset($comment->attachment_ids)? $comment->attachment_ids : '';\r\n+                if($attachment_ids!=\"\"){\r\n+                  $attachments = explode(\",\",$attachment_ids);\r\n+                } else {\r\n+                  $attachments = array();\r\n+                }\r\n+                ?>\r\n+                \u003Cdiv class=\"wppm_thread\">\r\n+                  \u003Cdiv class=\"wppm_thread_avatar\">\r\n+                    \u003C?php echo (get_avatar($comment->created_by, 40));?>\r\n+                  \u003C\u002Fdiv>\r\n+                  \u003Cdiv class=\"wppm_thread_body\">\r\n+                    \u003Cdiv class=\"wppm_thread_user_name\">\r\n+                      \u003Cstrong style=\"color:\u003C?php echo esc_attr($appearance_settings['comment-primary-color']);?>\">\u003C?php echo isset($user->display_name) ? esc_html($user->display_name) : '' ?>\u003C\u002Fstrong>\r\n+                      \u003Cspan>\u003C?php if(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_status')){\r\n+                        $comment_log_body = unserialize($comment->body);\r\n+                        $prev_status = $comment_log_body['prev_status'];\r\n+                        $new_status = $comment_log_body['new_status'];\r\n+                        if(isset($prev_status)){\r\n+                          $task_prev_status = $wpdb->get_row( $wpdb->prepare(\r\n+                            \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id = %d\",\r\n+                            absint($prev_status)\r\n+                          ));\r\n+                        }\r\n+                        if(isset($new_status)){\r\n+                          $task_new_status = $wpdb->get_row( $wpdb->prepare(\r\n+                            \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id = %d\",\r\n+                            absint($new_status)\r\n+                          ));\r\n+                        }\r\n+                        printf(\r\n+                            esc_html__( 'Changed status from %1$s to %2$s', 'taskbuilder' ),\r\n+                            esc_html( $task_prev_status->name ),\r\n+                            esc_html( $task_new_status->name )\r\n+                        );\r\n+                      } if(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_creator')){\r\n+                        $comment_log_body = unserialize($comment->body);\r\n+                        $prev_user = $comment_log_body['prev_user'];\r\n+                        $new_user = $comment_log_body['new_user'];\r\n+                        $prev_user_data = get_userdata($prev_user);\r\n+                        $new_user_data = get_userdata($new_user);\r\n+                        printf(\r\n+                            esc_html__( 'Changed creator from %1$s to %2$s', 'taskbuilder' ),\r\n+                            esc_html( $prev_user_data->display_name ),\r\n+                            esc_html( $new_user_data->display_name )\r\n+                        );\r\n+                      }\r\n+                      if( !empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_assign_user')){\r\n+                        esc_html_e(\"changed the Assignee\",\"taskbuilder\");\r\n+                      } \r\n+                      if(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_priority')){\r\n+                        $comment_log_body = unserialize($comment->body);\r\n+                        $prev_prio = $comment_log_body['prev_prio'];\r\n+                        $new_prio = $comment_log_body['new_prio'];\r\n+                        if(isset($prev_prio)){\r\n+                          $prev_prio = absint($prev_prio);\r\n+                          $task_prev_prio = $wpdb->get_row( $wpdb->prepare(\r\n+                            \"SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = %d\",\r\n+                            $prev_prio\r\n+                          ));\r\n+                        }\r\n+                        if(isset($new_prio)){\r\n+                          $new_prio = absint($new_prio);\r\n+                          $task_new_prio = $wpdb->get_row( $wpdb->prepare(\r\n+                            \"SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = %d\",\r\n+                            $new_prio\r\n+                          ));\r\n+                        }\r\n+                        $task_prev_prio_name = !empty($task_prev_prio) ? $task_prev_prio->name: \"None\";\r\n+                        $task_new_prio_name = !empty($task_new_prio) ? $task_new_prio->name: \"None\";\r\n+                        printf(\r\n+                            esc_html__( 'Changed priority from %1$s to %2$s', 'taskbuilder' ),\r\n+                            esc_html( $task_prev_prio_name ),\r\n+                            esc_html( $task_new_prio_name )\r\n+                        );\r\n+                      }\r\n+                      ?>\r\n+                      \u003Csmall class=\"wppm_comment_date\" style=\"color:\u003C?php echo esc_attr($appearance_settings['comment-date-color']);?>\">\u003Ci>\u003C?php echo isset($thread_date) ? esc_html($thread_date) : '' ?>\u003C\u002Fi>\u003C\u002Fsmall>\r\n+                      \u003Cdiv class=\"wppm_thread_action\">\r\n+                        \u003C?php if((((($current_user->has_cap('manage_options')) || ($wppmfunction->has_comment_permission('edit_task_comment',$id,$comment->id))) && ((empty($task_comment_meta->comment_type)) || (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='comment')))) && ($task->is_archived!=1)){ ?>\r\n+                          \u003Cspan title=\"Edit this thread\" onclick=\"wppm_edit_thread(\u003C?php echo esc_attr($comment->id)?>,\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit1.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\r\n+                          \u003Cspan title=\"Delete this thread\" onclick=\"wppm_delete_thread(\u003C?php echo esc_attr($comment->id) ?>,\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\r\n+                        \u003C?php } ?>\r\n+                      \u003C\u002Fdiv>\r\n+                    \u003C\u002Fdiv>\r\n+                    \u003Cdiv class=\"wppm_thread_messege\" style=\"color:\u003C?php echo esc_attr($appearance_settings['comment-secondary-color']);?>\">\r\n+                      \u003C?php \r\n+                      $allowedtags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'target'=> array(), 'rel'=>array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\r\n+                      if(!empty($comment_body) && ((empty($task_comment_meta->comment_type)) || (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='comment') || (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='delete_task_comment'))){\r\n+                        echo wp_kses(wpautop($comment_body),$allowedtags);\r\n+                      } elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_status')){ ?>\r\n+                        \u003Cspan class=\"wppm_admin_label\" style=\"margin-right: 10px; background-color:\u003C?php echo isset($task_prev_status->bg_color) ? esc_attr($task_prev_status->bg_color):\"\"; ?>;color:\u003C?php echo isset($task_prev_status->color) ? esc_attr($task_prev_status->color): \"\" ?>;\">\u003C?php echo isset($task_prev_status->name) ? esc_attr($task_prev_status->name) : \"\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan class=\"wppm_admin_label\" style=\"margin-left:10px; background-color:\u003C?php echo isset($task_new_status->bg_color) ? esc_attr($task_new_status->bg_color):\"\"; ?>;color:\u003C?php echo isset($task_new_status->color) ? esc_attr($task_new_status->color): \"\" ?>;\">\u003C?php echo isset($task_new_status->name) ? esc_attr($task_new_status->name) : \"\" ?>\u003C\u002Fspan>\u003C?php\r\n+                      }elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_creator')){ ?>\r\n+                        \u003Cspan style=\"margin-right: 10px;\">\u003C?php echo isset($prev_user_data->display_name) ? esc_attr($prev_user_data->display_name) : \"\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan style=\"margin-left:10px;\">\u003C?php echo isset($new_user_data->display_name) ? esc_attr($new_user_data->display_name) : \"\" ?>\u003C\u002Fspan>\u003C?php\r\n+                      } elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_assign_user')) { \r\n+                        $comment_log_body = unserialize($comment->body);\r\n+                        $prev_assign_user = $comment_log_body['prev_assign_user'];\r\n+                        $new_assign_user = $comment_log_body['new_assign_user'];\r\n+                        $prev_assign_user_array = array();\r\n+                        $new_assign_user_array = array();\r\n+                        if(!empty($prev_assign_user)){\r\n+                          $prev_assign_user_array = explode(\",\",$prev_assign_user);\r\n+                        }\r\n+                        if(!empty($new_assign_user)){\r\n+                          $new_assign_user_array = explode(\",\",$new_assign_user);\r\n+                        }\r\n+                        $assign_user_name = array();\r\n+                        $assign_user_name_str = \"\";\r\n+                        if(!empty($prev_assign_user_array)){\r\n+                          foreach($prev_assign_user_array as $val){\r\n+                            $assign_user = get_userdata($val);\r\n+                            $assign_user_name[] = $assign_user->display_name;\r\n+                          }\r\n+                          $assign_user_name_str = implode(\",\",$assign_user_name);\r\n+                        }\r\n+                        $new_assign_user_name = array();\r\n+                        $new_assign_user_name_str = \"\";\r\n+                        if(!empty($new_assign_user_array)){\r\n+                          foreach($new_assign_user_array as $val){\r\n+                            $new_assign_user = get_userdata($val);\r\n+                            $new_assign_user_name[] = $new_assign_user->display_name;\r\n+                          }\r\n+                          $new_assign_user_name_str = implode(\",\",$new_assign_user_name);\r\n+                        }\r\n+                        ?>\r\n+                        \u003Cspan style=\"margin-right: 10px;\">\u003C?php echo !empty($assign_user_name) ? esc_attr( $assign_user_name_str) : \"None\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan style=\"margin-left:10px;\">\u003C?php echo !empty($new_assign_user_name_str) ? esc_attr($new_assign_user_name_str) : \"None\" ?>\u003C\u002Fspan>\u003C?php\r\n+                      } elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_priority')){ ?>\r\n+                        \u003Cspan class=\"wppm_admin_label\" style=\"margin-right: 10px; background-color:\u003C?php echo isset($task_prev_prio->bg_color) ? esc_attr($task_prev_prio->bg_color):\"\"; ?>;color:\u003C?php echo isset($task_prev_prio->color) ? esc_attr($task_prev_prio->color): \"\" ?>;\">\u003C?php echo !empty($task_prev_prio->name) ? esc_attr($task_prev_prio->name) : \"None\" ?>\u003C\u002Fspan> \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Farrow-right.svg'); ?>\" alt=\"arrow_right\"> \u003Cspan class=\"wppm_admin_label\" style=\"margin-left:10px; background-color:\u003C?php echo isset($task_new_prio->bg_color) ? esc_attr($task_new_prio->bg_color):\"\"; ?>;color:\u003C?php echo isset($task_new_prio->color) ? esc_attr($task_new_prio->color): \"\" ?>;\">\u003C?php echo !empty($task_new_prio->name) ? esc_attr($task_new_prio->name) : \"None\" ?>\u003C\u002Fspan>\u003C?php\r\n+                      } ?>\r\n+                       \r\n+                    \u003C\u002Fdiv>\r\n+                    \u003C?php \r\n+                    if(!empty($attachments)&& (isset($task_comment_meta->comment_type) && !($task_comment_meta->comment_type=='delete_task_comment'))):?> \u003Cbr>\r\n+                      \u003Cstrong class=\"wppm_attachment_title\">\u003C?php echo esc_html_e('Attachments','taskbuilder');?>:\u003C\u002Fstrong>\u003Cbr>\r\n+                      \u003Ctable class=\"wppm_attachment_tbl\">\r\n+                        \u003Ctbody>\r\n+                        \u003C?php\r\n+                        if(!empty($attachments)){\r\n+                          foreach( $attachments as $attachment ):\r\n+                            $download_url = site_url('\u002F').'?wppm_attachment='.$attachment.'&tid='.$id.'&tac='.$auth_id;\r\n+                            $attachment = absint($attachment);\r\n+                            $attach = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments where id=%d\",$attachment));\r\n+                            $findStr = \".txt\";\r\n+                            if(!empty( $attach)){\r\n+                              $attachment_name = preg_replace('\u002F' . $findStr . '\u002F', \"\", $attach->name, 1);\r\n+                              $attachment_name = sanitize_file_name($attachment_name);\r\n+                            }\r\n+                            if((!empty($attachment_name))){\r\n+                              ?>\r\n+                              \u003Ctr class=\"wppm_attachment_tr\">\r\n+                                \u003Ctd>\r\n+                                  \u003Ca class=\"wppm_attachment_link\" href=\"\u003C?php echo esc_url($download_url) ?>\" target=\"_blank\">\r\n+                                  \u003Cspan class=\"wppm_attachment_file_name\" style=\"padding: 7px;\">\u003C?php echo isset($attach->file_name) ? esc_html($attach->file_name):\"\";?>\u003C\u002Fspan>\u003C\u002Fa>\r\n+                                  \u003C?php if((($comment->created_by == $current_user->ID) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_comment_permission('edit_task_comment',$id,$comment->id))) && ($task->is_archived!=1)){ ?>\r\n+                                    \u003Cspan class=\"wppm_thread_action_btn\" onclick=\"wppm_thread_attachment_remove(this,\u003C?php echo !empty($attach->id) ? esc_attr($attach->id) : 0; ?>,\u003C?php echo !empty($comment->id) ? esc_attr($comment->id) : 0; ?>,\u003C?php echo !empty($id) ? esc_attr($id) : 0; ?>,\u003C?php echo !empty($proj_id) ? esc_attr($proj_id) : 0;?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcancel.svg'); ?>\" alt=\"cancel\">\u003C\u002Fspan>\r\n+                                  \u003C?php } ?>\r\n+                                \u003C\u002Ftd>\r\n+                              \u003C\u002Ftr>\r\n+                              \u003Cinput type=\"hidden\" name=\"wppm_ajax_nonce\" id=\"wppm_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_remove_thread_attachment' ) ); ?>\">\r\n+                            \u003C?php }\r\n+                          endforeach;\r\n+                        } ?>\r\n+                        \u003C\u002Ftbody>\r\n+                      \u003C\u002Ftable>\r\n+                    \u003C?php do_action('wppm_after_comment_attachment',$id,$comment->id);?>\r\n+                    \u003C?php endif;?>\r\n+                  \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+            \u003C?php } \r\n+            } ?>\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm_individual_task_widget col-sm-4 wppm_sidebar col-md-3\">\r\n+      \u003Cdiv class=\"row wppm_widget\" id=\"wppm_status_widget\">\r\n+        \u003Cdiv class=\"wppm-widget-header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>\"> \r\n+          \u003Ch4 class=\"widget_header\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>\">\u003C?php echo esc_html_e('Status','taskbuilder')?>\u003C\u002Fh4>\r\n+            \u003C?php\r\n+            if($user_role != 3){\r\n+              if((($current_user->has_cap('manage_options') || $wppm_current_user_capability == ('wppm_admin')  || ($flag==true) || ($wppmfunction->has_permission('change_task_status',$id))!=\"\") && ($task->is_archived!=1))){\r\n+                ?>\r\n+                \u003Cspan class=\"wppm_edit_task_details_widget\" onclick=\"wppm_edit_task_status(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\r\n+                \u003C?php\r\n+              }\r\n+            }\r\n+          ?>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Chr class=\"widget_divider\">\r\n+        \u003Cdiv class=\"wppm-widget-body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>\">\r\n+          \u003Cdiv class=\"wppm_sidebar_labels\">\u003Cspan class=\"wppm_label_info\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-label-color'])?>\">\u003C?php echo esc_html_e('Status','taskbuilder')?>:\u003C\u002Fspan> \u003Cspan class=\"wppm_admin_label\" style=\"background-color:\u003C?php echo (isset($task_status->bg_color))? esc_attr($task_status->bg_color):\"\"?>;color:\u003C?php echo (isset($task_status->color))? esc_attr($task_status->color):\"\"?>;\">\u003C?php echo (isset($task_status->name))? esc_attr($task_status->name):\"\" ?> \u003C\u002Fspan>\u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv class=\"row wppm_widget\" id=\"wppm_raisedby_widget\">\r\n+        \u003Cdiv class=\"wppm-widget-header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>\"> \r\n+          \u003Ch4 class=\"widget_header\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>\">\r\n+          \u003C?php echo esc_html_e('Task Creator','taskbuilder')?>\u003C\u002Fh4>\r\n+          \u003C?php if($user_role != 3){\r\n+                  if ((($wppmfunction->has_permission('change_raised_by',$id ) || $current_user->has_cap('manage_options')) && ($task->is_archived!=1))) { ?>\r\n+                    \u003Cspan class=\"wppm_edit_task_details_widget\" onclick=\"wppm_edit_task_creator(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\r\n+            \u003C?php } \r\n+                }?>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Chr class=\"widget_divider\"> \u003C?php\r\n+        if(isset($task->created_by)){\r\n+          $user_info = get_userdata($task->created_by);\r\n+        }else{\r\n+          $user_info =\"\";\r\n+        }\r\n+        ?>\r\n+        \u003Cdiv class=\"wppm-widget-body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>\">\r\n+          \u003Cdiv style=\"padding:2px 0;\">\r\n+              \u003Cspan class=\"wppm_task_user_avatar\">\u003C?php echo (get_avatar($task->created_by, 25, \"mysteryman\")); ?>\u003C\u002Fspan>\r\n+              \u003Cspan class=\"wppm_task_user_names\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-text-color'])?>;\">\u003C?php echo isset($user_info->display_name)?esc_html($user_info->display_name):\"\"; ?>\u003C\u002Fspan>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cdiv class=\"row wppm_widget\" id=\"wppm_task_users_widget_container\">\r\n+        \u003Cdiv class=\"wppm-widget-header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>\"> \r\n+          \u003Ch4 class=\"widget_header\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-header-text-color'])?>;\">\u003C?php echo esc_html_e('Users','taskbuilder')?>\u003C\u002Fh4>\r\n+          \u003C?php \r\n+              if($user_role != 3){\r\n+                  if ((($wppmfunction->has_permission('assign_task_users',$id ) || $current_user->has_cap('manage_options')) && ($task->is_archived!=1))) { ?>\r\n+                    \u003Cspan class=\"wppm_edit_task_details_widget\" onclick=\"wppm_edit_task_users(\u003C?php echo esc_attr($id) ?>,\u003C?php echo esc_attr($proj_id) ?>,\u003C?php echo esc_attr($project_id) ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fedit_01.svg'); ?>\" alt=\"edit\">\u003C\u002Fspan>\r\n+            \u003C?php } \r\n+              }?>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Chr class=\"widget_divider\">\r\n+        \u003Cdiv class=\"wppm-widget-body\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>\">\r\n+          \u003Cdiv id=\"wppm_task_users\">\r\n+            \u003C?php \r\n+            $i=0;\r\n+            if(!empty($users)){\r\n+              foreach($users as $user) { \r\n+                $user_data = get_userdata($user);\r\n+                if(!empty($project_data['users'])){\r\n+                  $proj_users = explode(',',$project_data['users']);\r\n+                  if(in_array($user,$proj_users)){\r\n+                    $i++;\r\n+                    ?>\r\n+                    \u003Cdiv style=\"padding:2px 0;\">\r\n+                        \u003Cspan class=\"wppm_task_user_avatar\">\u003C?php echo (get_avatar($user, 25, \"mysteryman\")); ?>\u003C\u002Fspan>\r\n+                        \u003Cspan class=\"wppm_task_user_names\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-text-color'])?>;\">\u003C?php echo ((!empty($user_data))? esc_html($user_data->display_name) :\"\") ?>\u003C\u002Fspan>\r\n+                    \u003C\u002Fdiv>\r\n+                    \u003C?php \r\n+                  }\r\n+                }\r\n+              }\r\n+            }\r\n+            if($i==0){ ?>\r\n+              \u003Cspan class=\"wppm_display_user_none\" style=\"color:\u003C?php echo esc_attr($appearance_settings['widget-body-text-color'])?>\">\u003C?php echo esc_html_e('None','taskbuilder'); ?>\u003C\u002Fspan> \u003C?php\r\n+            } \r\n+            ?>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003C?php do_action('wppm_after_task_widgets',$id,$task_id );?>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" id=\"wppm_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_upload_file'))?>\">\r\n+    \u003Cinput type=\"file\" id=\"wppm_attachment_upload\" class=\"hidden\" onchange=\"\">\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fform>\r\n+\u003Cstyle>\r\n+  .wppm_comment_date i:hover{\r\n+    color: \u003C?php echo esc_attr($appearance_settings['comment-date-hover-color'])?>;\r\n+  }\r\n+  #Layer_1{\r\n+    fill:red!important;\r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript>\r\n+jQuery( document ).ready( function( jQuery ) {\r\n+  const button = document.getElementById('wppm_print_task_btn');\r\n+  const box = document.getElementById('wppmprint_menu');\r\n+\r\n+  \u002F\u002F Show box on button click\r\n+  button.addEventListener('click', (e) => {\r\n+    e.stopPropagation(); \u002F\u002F prevent document click from firing immediately\r\n+    box.style.display = 'flex';\r\n+  });\r\n+\r\n+  \u002F\u002F Prevent hiding when clicking inside box\r\n+  box.addEventListener('click', (e) => {\r\n+    e.stopPropagation();\r\n+  });\r\n+\r\n+  \u002F\u002F Hide when clicking outside\r\n+  document.addEventListener('click', () => {\r\n+    box.style.display = 'none';\r\n+  });\r\n+\u003C?php\r\n+  if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task->id))){ ?>\r\n+    jQuery(\"#wppm_edit_tstart_date\").flatpickr({\r\n+      enableTime: true,\r\n+      dateFormat: \"Y-m-d H:i\",\r\n+      onChange: function(selectedDates, dateStr, instance) {\r\n+        var data = {\r\n+          action: 'wppm_set_change_task_start_date',\r\n+          task_id:\u003C?php echo esc_attr($task->id);?>,\r\n+          date:dateStr,\r\n+          _ajax_nonce:jQuery('#wppm_edit_tstart_date_ajax_nonce').val()\r\n+        };\r\n+        jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+          instance.close();\r\n+          wppm_open_task(\u003C?php echo esc_attr($task->id);?>);\r\n+        }); \r\n+      },\r\n+    });\r\n+    jQuery(\"#wppm_edit_tend_date\").flatpickr({\r\n+      enableTime: true,\r\n+      dateFormat: \"Y-m-d H:i\",\r\n+      onChange: function(selectedDates, dateStr, instance) {\r\n+        var data = {\r\n+          action: 'wppm_set_change_task_end_date',\r\n+          task_id:\u003C?php echo esc_attr($task->id);?>,\r\n+          date:dateStr,\r\n+          _ajax_nonce:jQuery('#wppm_edit_tend_date_ajax_nonce').val()\r\n+        };\r\n+        jQuery.post(wppm_admin.ajax_url, data, function(response) {\r\n+          instance.close();\r\n+          wppm_open_task(\u003C?php echo esc_attr($task->id);?>);\r\n+        }); \r\n+      },\r\n+    });\r\n+  \u003C?php } ?>\r\n+  \u003C?php foreach ($wppm_checklist as $chklist) { ?>\r\n+          var $checkboxes = jQuery('.wppm_checklist_item_'+\u003C?php echo esc_attr($chklist->id);?>);\r\n+          var $progress = jQuery('#CheckProgress_'+\u003C?php echo esc_attr($chklist->id);?>);\r\n+          var total = $checkboxes.length;\r\n+          var checked = jQuery('.wppm_checklist_item_'+\u003C?php echo esc_attr($chklist->id);?>).filter(':checked').length;\r\n+          var progressWidth = Math.ceil((checked \u002F total) * 100);\r\n+          jQuery('#CheckProgress_'+\u003C?php echo esc_attr($chklist->id);?>).css('background','#5ba4cf');\r\n+          jQuery('#CheckProgress_'+\u003C?php echo esc_attr($chklist->id);?>).css('width', progressWidth + '%');\r\n+          if(progressWidth>0){\r\n+            jQuery('#wppm_progressbar_label_'+\u003C?php echo esc_attr($chklist->id);?>).text(progressWidth+'%');\r\n+          }\r\n+    \u003C?php $wppm_checklist_items = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist_items where checklist_id=%d\",$chklist->id));\r\n+          foreach ($wppm_checklist_items as $chkitems) { \r\n+          ?>  jQuery( '#wppm_checklist_'+\u003C?php echo esc_attr($chkitems->id);?>).on(\"mouseover\", function () {\r\n+                jQuery( '#wppm_checklist_action_'+\u003C?php echo esc_attr($chkitems->id);?>).css(\"display\",\"inline\");\r\n+                jQuery( '#wppm_checklist_'+\u003C?php echo esc_attr($chkitems->id);?>).css(\"background-color\",\"#e7e8ea\");\r\n+              })\r\n+              jQuery( '#wppm_checklist_'+\u003C?php echo esc_attr($chkitems->id);?>).on(\"mouseout\", function () {\r\n+                jQuery( '#wppm_checklist_action_'+\u003C?php echo esc_attr($chkitems->id);?>).css(\"display\",\"none\");\r\n+                jQuery( '#wppm_checklist_'+\u003C?php echo esc_attr($chkitems->id);?>).css(\"background-color\",\"#ffffff\");\r\n+              })\r\n+          \u003C?php\r\n+          }\r\n+    } \r\n+    $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :\"\";\r\n+    $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :\"\";   \r\n+    $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :\"\";   \r\n+    $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :\"\";   \r\n+    $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)?  ' alignleft aligncenter alignright ' :\"\";   \r\n+    $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :\"\"; \r\n+    $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :\"\";     \r\n+    $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :\"\";     \r\n+    $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :\"\"; \r\n+    $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :\"\";     \r\n+    $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :\"\"; \r\n+    $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :\"\"; \r\n+    $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :\"\";\r\n+    $toolbar = trim(\"$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough\");\r\n+    if(($wppm_tinymce_visibility_open_task==1)){ ?>\r\n+     if((wppm_admin.rich_text_editor) && (wppm_admin.rich_text_editor.trim().length > 0) && (wppm_admin.rich_text_editor == 1)){\r\n+      tinymce.remove();\r\n+      tinymce.init({ \r\n+        selector:'#wppm_task_comment',\r\n+        body_id: 'wppm_task_comment',\r\n+        directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\r\n+        menubar: false,\r\n+        statusbar: false,\r\n+        height : '200',\r\n+        width  : '100%',\r\n+        plugins: [\r\n+            'lists link image directionality paste textcolor'\r\n+        ],\r\n+        image_advtab: true,\r\n+        toolbar:'\u003C?php echo esc_js(  $toolbar  ); ?>',\r\n+        branding: false,\r\n+        autoresize_bottom_margin: 20,\r\n+        browser_spellcheck : true,\r\n+        relative_urls : false,\r\n+        remove_script_host : false,\r\n+        convert_urls : true,\r\n+        paste_as_text: true,\r\n+        setup: function (editor) {\r\n+        }\r\n+      });\r\n+      jQuery('#wppm_comment_btn').show();\r\n+    }\r\n+    \u003C?php } ?>\r\n+});\r\n+\r\n+jQuery(function(jQuery){\r\n+    \u002F\u002F Checklist Sorting\r\n+  jQuery(\".wppm_checklist_items_container\").sortable({\r\n+      handle: \".wppm_chk_items_drag\",\r\n+      update: function() {\r\n+          let order = [];\r\n+          jQuery(this).find(\"li\").each(function(){\r\n+              order.push(jQuery(this).data(\"id\")); \u002F\u002F checklist item id\r\n+          });\r\n+\r\n+          \u002F\u002F AJAX Save\r\n+          jQuery.post(wppm_admin.ajax_url, {\r\n+              action: \"wppm_update_checklist_order\",\r\n+              order: order,\r\n+              task_id: \u003C?php echo esc_attr($id); ?>,\r\n+              _ajax_nonce: '\u003C?php echo esc_attr( wp_create_nonce( 'wppm_update_checklist_order' ) ); ?>'\r\n+          }, function(response_str){\r\n+              var response = JSON.parse(response_str);\r\n+              jQuery('.wppm_submit_wait').hide();\r\n+              if (response.sucess_status=='1') {\r\n+                jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);\r\n+              }\r\n+              jQuery('#wppm_alert_success').slideDown('fast',function(){});\r\n+              setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);\r\n+          });\r\n+      }\r\n+  });\r\n+\r\n+});\r\n+\r\n+function wppm_cancel_comment(){ \u003C?php\r\n+  if(!empty($wppm_rich_text_editor) && ($wppm_rich_text_editor == 1)){\r\n+  ?>\r\n+    tinyMCE. activeEditor. setContent('');\r\n+    tinymce.remove('#wppm_task_comment');\r\n+    jQuery('#wppm_comment_btn').hide();\r\n+  \u003C?php } else{ \r\n+    ?>\r\n+    jQuery('#wppm_task_comment').css(\"width\", \"80%\");\r\n+    jQuery('#wppm_task_comment').css(\"height\", \"30px\");\r\n+    jQuery('#wppm_task_comment').css(\"color\", \"#000\");\r\n+    jQuery('#wppm_task_comment').css(\"padding\", \"5px\");\r\n+    jQuery('#wppm_task_comment').css(\" margin-bottom\", \"15px\");\r\n+    jQuery('#wppm_task_comment').css(\"overflow\", \"hidden\");\r\n+    jQuery('#wppm_task_comment').css(\"border\", \"1 px solid #eee\");\r\n+    jQuery('#wppm_task_comment').css(\"color\", \"#eee\");\r\n+    jQuery('#wppm_task_comment').css(\"margin-top\", \"10px\");\r\n+    jQuery('#wppm_comment_btn').hide();\r\n+  \u003C?php }?>\r\n+}\r\n+\r\n+function wppm_add_task_comment(){\r\n+  if((wppm_admin.rich_text_editor == 1)){\r\n+    tinymce.remove();\r\n+    tinymce.init({ \r\n+      selector:'#wppm_task_comment',\r\n+      body_id: 'wppm_task_comment',\r\n+      directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\r\n+      menubar: false,\r\n+      statusbar: false,\r\n+      height : '200',\r\n+      width  : '100%',\r\n+      plugins: [\r\n+          'lists link image directionality paste textcolor'\r\n+      ],\r\n+      image_advtab: true,\r\n+      toolbar:'\u003C?php echo esc_js(  $toolbar  ); ?>',\r\n+      branding: false,\r\n+      autoresize_bottom_margin: 20,\r\n+      browser_spellcheck : true,\r\n+      relative_urls : false,\r\n+      remove_script_host : false,\r\n+      convert_urls : true,\r\n+      paste_as_text: true,\r\n+      setup: function (editor) {\r\n+      }\r\n+    });\r\n+  } else{\r\n+    jQuery('#wppm_task_comment').css(\"width\", \"100%\");\r\n+    jQuery('#wppm_task_comment').css(\"height\", \"160px\");\r\n+    jQuery('#wppm_task_comment').css(\"color\", \"#000\");\r\n+  }\r\n+  jQuery('#wppm_comment_btn').show();\r\n+}\r\n+\r\n+function wppm_submit_task_comment(id,proj_id){\r\n+  var dataform = new FormData(jQuery('#wppm_open_task')[0]);\r\n+  dataform.append('action','wppm_submit_task_comment');\r\n+ if((wppm_admin.rich_text_editor == 1)){\r\n+    var comment_body = tinyMCE.get('wppm_task_comment').getContent().trim();\r\n+  } else{\r\n+    var comment_body = jQuery(\"#wppm_task_comment\").val();\r\n+  }\r\n+  dataform.append('comment_body',comment_body);\r\n+  dataform.append('task_id',id);\r\n+  jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+  jQuery.ajax({\r\n+    url: wppm_admin.ajax_url,\r\n+    type: 'POST',\r\n+    data: dataform,\r\n+    processData: false,\r\n+    contentType: false\r\n+  })\r\n+  .done(function (response_str) {\r\n+    if((proj_id!=0)||(proj_id!=\"\")){\r\n+      wppm_open_project_tasks(id,proj_id);\r\n+    }else if((proj_id==0)||(proj_id==\"\")){\r\n+      wppm_open_task(id);\r\n+    }\r\n+  });\r\n+}\r\n+\r\n+function wppm_add_checklist_item(checklist_id){\r\n+  jQuery('#wppm_add_checklist_label_container_'+checklist_id).show();\r\n+  jQuery('#wppm_add_checklist_item_btn_'+checklist_id).hide();\r\n+  jQuery('.wppm_add_checklist_label_container_'+checklist_id).show();\r\n+  jQuery('.wppm_checklist_item_label_'+checklist_id).css('height', '30px');\r\n+  jQuery('.wppm_add_new_item_btn_'+checklist_id).css('margin', '10px');\r\n+}\r\n+\r\n+function wppm_add_checklist(){\r\n+  jQuery('#wppm_add_checklist').hide();\r\n+  jQuery('#wppm_add_new_checklist').show();\r\n+}\r\n+\r\n+function wppm_remove_add_checklist_container(checklist_id){\r\n+  jQuery('#wppm_add_checklist_label_container_'+checklist_id).hide();\r\n+  jQuery('#wppm_add_checklist_item_btn_'+checklist_id).show();\r\n+}\r\n+\r\n+function wppm_remove_add_checklist(){\r\n+  jQuery('#wppm_add_new_checklist').hide();\r\n+  jQuery('#wppm_add_checklist').show();\r\n+}\r\n+\r\n+function wppm_upload_file(){\r\n+    jQuery('#wppm_attachment_upload').unbind('change');\r\n+    jQuery('#wppm_attachment_upload').on('change', function() {\r\n+      var flag = false;\r\n+      var file = this.files[0];\r\n+      jQuery('#wppm_attachment_upload').val('');\r\n+      var allowedExtension = ['exe', 'php','js'];\r\n+\t    var file_name_split = file.name.split('.');\r\n+\t    var file_extension = file_name_split[file_name_split.length-1];\r\n+      file_extension = file_extension.toLowerCase();\t\r\n+      if( (jQuery.inArray(file_extension,allowedExtension)  > -1)){\r\n+        flag = true;\r\n+        alert(\"\u003C?php echo esc_js(__( 'Attached file type not allowed!', 'taskbuilder' ) ); ?>\");\r\n+\r\n+      };\r\n+      \u003C?php\r\n+      $max_upload = (int)(ini_get('upload_max_filesize')); ?>\r\n+      var current_filesize=file.size\u002F1000000;\r\n+      if(current_filesize > \u003C?php echo esc_attr($max_upload); ?>){\r\n+\t\t\t\tflag = true;\r\n+\t\t\t\talert(\"\u003C?php echo esc_js(__('File size exceed allowed limit!','taskbuilder')); ?>\");\r\n+\t\t\t}\r\n+      if (!flag){\r\n+        var html_str = '\u003Cdiv class=\"wppm_attachment\">'+\r\n+                          '\u003Cdiv class=\"progress\" style=\"float: none !important; width: unset !important;\">'+\r\n+                              '\u003Cdiv class=\"progress-bar\" role=\"progressbar\" aria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width:0%\">'+\r\n+                                file.name+\r\n+                              '\u003C\u002Fdiv>'+\r\n+                              '\u003Cspan class=\"wppm_attachment_cancel\" onclick=\"wppm_attachment_cancel(this);\" style=\"display:none;\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcross_icon.svg'); ?>\" alt=\"delete_icon\">\u003C\u002Fspan>'+\r\n+                          '\u003C\u002Fdiv>'+\r\n+                        '\u003C\u002Fdiv>';\r\n+          jQuery('.wppm_attachment_container').show();\r\n+          jQuery('.wppm_attachment_container').append(html_str);\r\n+          var attachment = jQuery('.wppm_attachment_container').find('.wppm_attachment').last();\r\n+          var data = new FormData();\r\n+            data.append('file', file);\r\n+            data.append('arr_name', file.name);\r\n+            data.append('action', 'wppm_upload_file');\r\n+            data.append('nonce', jQuery('#wppm_nonce').val().trim());\r\n+            jQuery.ajax({\r\n+              type: 'post',\r\n+              url: wppm_admin.ajax_url,\r\n+              data: data,\r\n+              xhr: function(){\r\n+                var xhr = new window.XMLHttpRequest();\r\n+                xhr.upload.addEventListener(\"progress\", function(evt){\r\n+                  if (evt.lengthComputable) {\r\n+                    var percentComplete = Math.floor((evt.loaded \u002F evt.total) * 100);\r\n+                    jQuery(attachment).find('.progress-bar').css('width',percentComplete+'%');\r\n+                  }\r\n+                }, false);\r\n+                return xhr;\r\n+              },\r\n+              processData: false,\r\n+              contentType: false,\r\n+              success: function(response) {\r\n+                var return_obj=JSON.parse(response);\r\n+                jQuery(attachment).find('.wppm_attachment_cancel').show();\r\n+                if( parseInt(return_obj.id) != 0 ){\r\n+                  jQuery(attachment).append('\u003Cinput type=\"hidden\" class=\"wppm_comment_attachment\" name=\"wppm_comment_attachment[]\" value=\"'+return_obj.id+'\">');\r\n+                  jQuery(attachment).find('.progress-bar').addClass('progress-bar-success');\r\n+                }else {\r\n+                  jQuery(attachment).find('.progress-bar').addClass('progress-bar-danger');\r\n+                }\r\n+              }\r\n+            });    \r\n+      }\r\n+    });\r\n+    jQuery('#wppm_attachment_upload').trigger('click');\r\n+}\r\n+\u003C\u002Fscript>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_restore_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_restore_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_restore_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_restore_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,11 +1,11 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-    exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user, $wppmfunction ,$wpdb;\n-$task_id  = isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : 0 ;\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}\n-$values=array(\n-    'is_archieved'=>esc_sql(0)\n-);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+    exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user, $wppmfunction ,$wpdb;\r\n+$task_id  = isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : 0 ;\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}\r\n+$values=array(\r\n+    'is_archieved'=>esc_sql(0)\r\n+);\r\n $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>esc_sql($task_id)));\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_raised_by.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_raised_by.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_raised_by.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_raised_by.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,25 +1,25 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wppmfunction,$wpdb;\n-if ( check_ajax_referer( 'wppm_set_change_raised_by', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$task_id = isset($_POST['task_id'])  ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '';\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_raised_by',$task_id))) {exit;}\n-$user_id = isset($_POST['user_id']) ? absint(sanitize_text_field(wp_unslash($_POST['user_id']))) : 0 ;\n-$task_data = $wppmfunction->get_task($task_id);\n-$old_user_id  = $task_data['created_by'];\n-$cu_id = esc_sql($current_user->ID);\n-if ( $user_id != $old_user_id ){\n-\t$wppmfunction->change_raised_by($task_id, $user_id);\n-\t$change_creator_value = array('prev_user'=>\"$old_user_id\",'new_user'=>\"$user_id\");\n-\t$change_creator_obj = serialize($change_creator_value);\n-\t$task_id = esc_sql($task_id);\n-\t$log_values = array('task_id'=>\"$task_id\",'body'=>$change_creator_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d H:i:s\"),'created_by'=>\"$cu_id\", );\n-\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\n-\t$log_id = esc_sql($wpdb->insert_id);\n-\t$task_log_values = array('task_id'=>\"$task_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_task_creator');\n-\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wppmfunction,$wpdb;\r\n+if ( check_ajax_referer( 'wppm_set_change_raised_by', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$task_id = isset($_POST['task_id'])  ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '';\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_raised_by',$task_id))) {exit;}\r\n+$user_id = isset($_POST['user_id']) ? absint(sanitize_text_field(wp_unslash($_POST['user_id']))) : 0 ;\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$old_user_id  = $task_data['created_by'];\r\n+$cu_id = esc_sql($current_user->ID);\r\n+if ( $user_id != $old_user_id ){\r\n+\t$wppmfunction->change_raised_by($task_id, $user_id);\r\n+\t$change_creator_value = array('prev_user'=>\"$old_user_id\",'new_user'=>\"$user_id\");\r\n+\t$change_creator_obj = serialize($change_creator_value);\r\n+\t$task_id = esc_sql($task_id);\r\n+\t$log_values = array('task_id'=>\"$task_id\",'body'=>$change_creator_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d H:i:s\"),'created_by'=>\"$cu_id\", );\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\r\n+\t$log_id = esc_sql($wpdb->insert_id);\r\n+\t$task_log_values = array('task_id'=>\"$task_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_task_creator');\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_details.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_details.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_details.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_details.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,56 +1,56 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_change_task_details', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$task_id  = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-$task_id = esc_sql($task_id);\n-$proj_id =  isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}\n-$task_data = $wppmfunction->get_task($task_id);\n-$task_label = isset($_POST['wppm_edit_task_label']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_task_label'])) : \"\" ;\n-$project_label = isset($_POST['wppm_edit_project_label']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_project_label'])) : \"\" ;\n-$task_start_date = isset($_POST['wppm_edit_task_start_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_task_start_date'])) : \"\" ;\n-$task_end_date = isset($_POST['wppm_edit_task_end_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_task_end_date'])) : \"\" ;\n-$task_priority = isset($_POST['wppm_edit_task_priority']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_edit_task_priority']))) : \"\" ;\n-$task_description = !empty($_POST['wppm_edit_task_description']) ? wp_kses_post(wp_unslash($_POST['wppm_edit_task_description'])) : \"\" ;\n-$task_project = isset($_POST['wppm_task_project']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_task_project']))) : $proj_id ;\n-if($task_label && $task_label != $task_data['task_name'] ){\n-    $wppmfunction->change_task_label( $task_id, $task_label);\n-}\n-\n-if($project_label && $project_label != $task_data['project'] ){\n-    $wppmfunction->change_task_project_label( $task_id, $project_label);\n-}\n-\n-if($task_start_date && $task_start_date != $task_data['start_date'] ){\n-    $wppmfunction->change_start_date( $task_id, $task_start_date);\n-}\n-\n-if($task_end_date && $task_end_date != $task_data['end_date'] ){\n-    $wppmfunction->change_end_date( $task_id, $task_end_date);\n-}\n-\n-if( $task_priority != $task_data['priority']){\n-\t$wppmfunction->change_priority( $task_id, $task_priority);\n-    $change_priority_value = array('prev_prio'=>\"$task_data[priority]\",'new_prio'=>\"$task_priority\");\n-\t$change_priority_obj = serialize($change_priority_value);\n-\t$log_values = array('task_id'=>absint($task_id),'body'=>$change_priority_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>absint($current_user->ID) );\n-\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\n-\t$log_id = absint($wpdb->insert_id);\n-\t$task_log_values = array('task_id'=>absint($task_id),'comment_id'=>\"$log_id\",'comment_type'=>'change_task_priority');\n-\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\n-}\n-\n-if(  $task_description != $task_data['description']){\n-\t$wppmfunction->change_description( $task_id, $task_description);\n-}\n-\n-if( $task_project  && $task_project != $proj_id){\n-\t$wppmfunction->change_project( $task_id, $task_project);\n-}\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_change_task_details', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$task_id  = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+$task_id = esc_sql($task_id);\r\n+$proj_id =  isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$task_label = isset($_POST['wppm_edit_task_label']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_task_label'])) : \"\" ;\r\n+$project_label = isset($_POST['wppm_edit_project_label']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_project_label'])) : \"\" ;\r\n+$task_start_date = isset($_POST['wppm_edit_task_start_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_task_start_date'])) : \"\" ;\r\n+$task_end_date = isset($_POST['wppm_edit_task_end_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_edit_task_end_date'])) : \"\" ;\r\n+$task_priority = isset($_POST['wppm_edit_task_priority']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_edit_task_priority']))) : \"\" ;\r\n+$task_description = !empty($_POST['wppm_edit_task_description']) ? wp_kses_post(wp_unslash($_POST['wppm_edit_task_description'])) : \"\" ;\r\n+$task_project = isset($_POST['wppm_task_project']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_task_project']))) : $proj_id ;\r\n+if($task_label && $task_label != $task_data['task_name'] ){\r\n+    $wppmfunction->change_task_label( $task_id, $task_label);\r\n+}\r\n+\r\n+if($project_label && $project_label != $task_data['project'] ){\r\n+    $wppmfunction->change_task_project_label( $task_id, $project_label);\r\n+}\r\n+\r\n+if($task_start_date && $task_start_date != $task_data['start_date'] ){\r\n+    $wppmfunction->change_start_date( $task_id, $task_start_date);\r\n+}\r\n+\r\n+if($task_end_date && $task_end_date != $task_data['end_date'] ){\r\n+    $wppmfunction->change_end_date( $task_id, $task_end_date);\r\n+}\r\n+\r\n+if( $task_priority != $task_data['priority']){\r\n+\t$wppmfunction->change_priority( $task_id, $task_priority);\r\n+    $change_priority_value = array('prev_prio'=>\"$task_data[priority]\",'new_prio'=>\"$task_priority\");\r\n+\t$change_priority_obj = serialize($change_priority_value);\r\n+\t$log_values = array('task_id'=>absint($task_id),'body'=>$change_priority_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>absint($current_user->ID) );\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\r\n+\t$log_id = absint($wpdb->insert_id);\r\n+\t$task_log_values = array('task_id'=>absint($task_id),'comment_id'=>\"$log_id\",'comment_type'=>'change_task_priority');\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\r\n+}\r\n+\r\n+if(  $task_description != $task_data['description']){\r\n+\t$wppmfunction->change_description( $task_id, $task_description);\r\n+}\r\n+\r\n+if( $task_project  && $task_project != $proj_id){\r\n+\t$wppmfunction->change_project( $task_id, $task_project);\r\n+}\r\n+\r\n do_action('wppm_after_change_task_details',$task_id,$task_data['project']);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_end_date.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_end_date.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_end_date.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_end_date.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,17 +1,17 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_change_task_end_date', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}\n-$date =  isset($_POST['date']) ? (sanitize_text_field(wp_unslash($_POST['date']))) : '' ;\n-$edate = strtotime($date); \n-$end_date = wp_date('Y-m-d H:i:s', $edate); \n-$task_data = $wppmfunction->get_task($task_id);\n-if($end_date && $end_date != $task_data['end_date'] ){\n-  $wppmfunction->change_end_date( $task_id, $end_date);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_change_task_end_date', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}\r\n+$date =  isset($_POST['date']) ? (sanitize_text_field(wp_unslash($_POST['date']))) : '' ;\r\n+$edate = strtotime($date); \r\n+$end_date = wp_date('Y-m-d H:i:s', $edate); \r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+if($end_date && $end_date != $task_data['end_date'] ){\r\n+  $wppmfunction->change_end_date( $task_id, $end_date);\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_start_date.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_start_date.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_start_date.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_start_date.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,17 +1,17 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_change_task_start_date', '_ajax_nonce', false ) != 1 ) {\n-  wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}\n-$date =  isset($_POST['date']) ? (sanitize_text_field(wp_unslash($_POST['date']))) : '' ;\n-$sdate = strtotime($date); \n-$start_date = wp_date('Y-m-d H:i:s', $sdate); \n-$task_data = $wppmfunction->get_task($task_id);\n-if($start_date && $start_date != $task_data['start_date'] ){\n-  $wppmfunction->change_start_date( $task_id, $start_date);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_change_task_start_date', '_ajax_nonce', false ) != 1 ) {\r\n+  wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}\r\n+$date =  isset($_POST['date']) ? (sanitize_text_field(wp_unslash($_POST['date']))) : '' ;\r\n+$sdate = strtotime($date); \r\n+$start_date = wp_date('Y-m-d H:i:s', $sdate); \r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+if($start_date && $start_date != $task_data['start_date'] ){\r\n+  $wppmfunction->change_start_date( $task_id, $start_date);\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,31 +1,31 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wppmfunction,$wpdb;\n-if ( check_ajax_referer( 'wppm_set_change_task_status', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$task_id    = isset($_POST['task_id'])  ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : '';\n-$cu_id =  absint($current_user->ID);\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_status',$task_id))) {exit;}\n-$status_id   = isset($_POST['wppm_status']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_status']))) : 0 ;\n-if( !$status_id ){\n-  die();\n-}\n-$task_data = $wppmfunction->get_task($task_id);\n-$old_status_id   \t= $task_data['status'];\n-if($status_id && $status_id!=$old_status_id){\n-\t$wppmfunction->change_status( $task_id, $status_id);\n-\t$task_id = absint($task_id);\n-\t$old_status_id  = absint($old_status_id);\n-\t$status_id = absint($status_id);\n-\t$change_task_value = array('prev_status'=>\"$old_status_id\",'new_status'=>\"$status_id\");\n-\t$change_task_obj = serialize($change_task_value);\n-\t$log_values = array('task_id'=>\"$task_id\",'body'=>$change_task_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>\"$cu_id\" );\n-\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\n-\t$log_id = absint($wpdb->insert_id);\n-\t$task_log_values = array('task_id'=>\"$task_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_task_status');\n-\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\n-}\n-do_action('wppm_after_set_change_task_status',$task_id,$status_id,$old_status_id);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wppmfunction,$wpdb;\r\n+if ( check_ajax_referer( 'wppm_set_change_task_status', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$task_id    = isset($_POST['task_id'])  ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : '';\r\n+$cu_id =  absint($current_user->ID);\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_status',$task_id))) {exit;}\r\n+$status_id   = isset($_POST['wppm_status']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_status']))) : 0 ;\r\n+if( !$status_id ){\r\n+  die();\r\n+}\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$old_status_id   \t= $task_data['status'];\r\n+if($status_id && $status_id!=$old_status_id){\r\n+\t$wppmfunction->change_status( $task_id, $status_id);\r\n+\t$task_id = absint($task_id);\r\n+\t$old_status_id  = absint($old_status_id);\r\n+\t$status_id = absint($status_id);\r\n+\t$change_task_value = array('prev_status'=>\"$old_status_id\",'new_status'=>\"$status_id\");\r\n+\t$change_task_obj = serialize($change_task_value);\r\n+\t$log_values = array('task_id'=>\"$task_id\",'body'=>$change_task_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>\"$cu_id\" );\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\r\n+\t$log_id = absint($wpdb->insert_id);\r\n+\t$task_log_values = array('task_id'=>\"$task_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_task_status');\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\r\n+}\r\n+do_action('wppm_after_set_change_task_status',$task_id,$status_id,$old_status_id);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_clone_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_clone_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_clone_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_clone_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,133 +1,133 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$current_user,$wppmfunction;\n-if ( !empty( sanitize_text_field(wp_unslash($_POST['_ajax_nonce'])) ) ) {\n-    $nonce = sanitize_text_field( wp_unslash( $_POST['_ajax_nonce'] ) );\n-    if ( ! wp_verify_nonce( $nonce, 'wppm_set_clone_task' ) ) {\n-        wp_send_json_error( array(\n-            'message' => esc_html__( 'Security check failed.', 'taskbuilder' )\n-        ) );\n-    }\n-}\n-$prev_task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : $ptask_id ;\n-$task     = $wppmfunction->get_task($prev_task_id);\n-if ( empty($task) ) {\n-    wp_send_json_error('Invalid task', 404);\n-}\n-if (!(($current_user->has_cap('manage_options')) || $wppmfunction->has_permission('clone_task',$task['id']))) {\n- wp_send_json_error('Unauthorized', 403);\n-}\n-$wppm_default_duplicate_project_email_notification = get_option('wppm_default_duplicate_project_email_notification');\n-$checklists = $wppmfunction->get_checklist($prev_task_id);\n-$task_project = isset($project_id) ? $project_id : $task['project'];\n-$prev_task_id = esc_sql($prev_task_id);\n-$task_comments = $wpdb->get_results(\n-    $wpdb->prepare(\n-        \"SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d\",\n-        $prev_task_id\n-    )\n-);\n-$task_name    = isset($_POST['task_name']) ? stripslashes(sanitize_text_field(wp_unslash($_POST['task_name']))) : $task['task_name'] ;\n-$now   = wp_date(\"Y-m-d H:i:s\");\n-$values = array(\n-    'created_by'=>$task['created_by'],\n-    'name'=>$task_name,\n-    'wppm_task_description'=>$task['description'],\n-    'wppm_task_project'=>$task_project,\n-    'wppm_task_start_date'=>$task['start_date'],\n-    'wppm_task_end_date'=>$task['end_date'],\n-    'status'=>$task['status'],\n-    'wppm_create_task_priority'=>$task['priority'],\n-    'user_names'=>explode(\",\",$task['users']),\n-    'date_created'=>$task['date_created'],\n-    'task_auth_code'=> $wppmfunction->getRandomString(10),\n-    'active'=>1\n-);\n-$task_id = $wppmfunction->create_task($values);\n-if(!isset($project_id) || $wppm_default_duplicate_project_email_notification==1){\n-    do_action('wppm_after_task_created', $task_id);\n-}\n-if(!empty($checklists)){\n-    foreach($checklists as $checklist){\n-        $chk_values = array(\n-            'task_id' => $task_id,\n-            'checklist_name' => $checklist['checklist_name'],\n-            'created_by'=> $checklist['created_by']\n-        );\n-        $checklist_id = $wppmfunction->create_checklist($chk_values);\n-        $checklist_items = $wppmfunction->get_checklist_items($checklist['id']);\n-        if(!empty($checklist_items)){\n-            $chk_items_values = array();\n-            $checklist_item_id = array();\n-            foreach($checklist_items as $checklist_item){\n-                $chk_items_values = array(\n-                    'checklist_id' => $checklist_id,\n-                    'item_name' => $checklist_item['item_name'],\n-                    'checked'=>$checklist_item['checked'],\n-                    'members'=>$checklist_item['members'],\n-                    'due_date'=> $checklist_item['due_date']\n-                );\n-                if(!empty($chk_items_values)){\n-                    $checklist_item_id[] = $wppmfunction->create_checklist_item($chk_items_values);\n-                }\n-            }\n-            \n-        }\n-    }\n-}\n-if(!empty($task_comments)){\n-    $args = array();\n-    foreach($task_comments as $task_comment){\n-        $task_comment_data = json_decode(wp_json_encode($task_comment), true);\n-        $attachment_ids = $task_comment_data['attachment_ids'];\n-        $attachment_ids_array = explode(\",\",$attachment_ids);\n-        if(!empty($attachment_ids_array)){\n-            $attachment_id = array();\n-            $values = array();\n-\t\t\tforeach($attachment_ids_array as $attach_id){\n-                if(!empty($attach_id)){\n-                    $attachment_data = $wppmfunction->get_attachment($attach_id);\n-                    $values=array(\n-                        'name'=>!empty($attachment_data['name']) ? $attachment_data['name'] : '',\n-                        'file_name'=> !empty($attachment_data['file_name']) ? $attachment_data['file_name'] : '',\n-                        'file_path'=>!empty($attachment_data['file_path']) ? $attachment_data['file_path'] : '',\n-                        'is_image'=>!empty($attachment_data['is_image']) ? $attachment_data['is_image'] : 0,\n-                        'is_active'=>1,\n-                        'is_uploaded'=>0,\n-                        'date_created'=>!empty($attachment_data['date_created']) ? $attachment_data['date_created'] : ''\n-                    );\n-                    if(!empty($values)){\n-                        $wpdb->insert($wpdb->prefix.'wppm_attachments',$values);\n-                        $attachment_id[] = $wpdb->insert_id;\n-                    }\n-                }\n-\t\t\t}\n-\t\t}\n-        $args = array(\n-            'task_id'=>$task_id,\n-            'body'=>$task_comment_data['body'],\n-            'attachment_ids' =>implode(',',$attachment_id) ,\n-            'create_time'=>$task_comment_data['create_time'],\n-            'created_by'=>$task_comment_data['created_by']\n-        ); \n-        if(!empty($args)){\n-            $comment_id = $wppmfunction->wppm_submit_task_comment($args);\n-            $task_comm_id = esc_sql($task_comment->id);\n-            $task_comment_type = $wpdb->get_var( $wpdb->prepare(\"SELECT comment_type FROM {$wpdb->prefix}wppm_task_comment_meta WHERE task_id = %d AND comment_id = %d\",$prev_task_id,$task_comm_id));\n-            if(!empty($task_comment_type)){\n-                $meta_values = array(\n-                    'task_id'=>$task_id,\n-                    'comment_id'=>$comment_id,\n-                    'comment_type'=>$task_comment_type\n-                );\n-                $comment_meta_id = $wppmfunction->wppm_submit_task_comment_meta($meta_values);\n-            }\n-        }\n-    }\n-}\n-do_action(\"wppm_after_task_clone\",$prev_task_id,$task_id);\n-wp_send_json_success(array(\n-    'task_id' => $task_id\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$current_user,$wppmfunction;\r\n+if ( !empty( sanitize_text_field(wp_unslash($_POST['_ajax_nonce'])) ) ) {\r\n+    $nonce = sanitize_text_field( wp_unslash( $_POST['_ajax_nonce'] ) );\r\n+    if ( ! wp_verify_nonce( $nonce, 'wppm_set_clone_task' ) ) {\r\n+        wp_send_json_error( array(\r\n+            'message' => esc_html__( 'Security check failed.', 'taskbuilder' )\r\n+        ) );\r\n+    }\r\n+}\r\n+$prev_task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : $ptask_id ;\r\n+$task     = $wppmfunction->get_task($prev_task_id);\r\n+if ( empty($task) ) {\r\n+    wp_send_json_error('Invalid task', 404);\r\n+}\r\n+if (!(($current_user->has_cap('manage_options')) || $wppmfunction->has_permission('clone_task',$task['id']))) {\r\n+ wp_send_json_error('Unauthorized', 403);\r\n+}\r\n+$wppm_default_duplicate_project_email_notification = get_option('wppm_default_duplicate_project_email_notification');\r\n+$checklists = $wppmfunction->get_checklist($prev_task_id);\r\n+$task_project = isset($project_id) ? $project_id : $task['project'];\r\n+$prev_task_id = esc_sql($prev_task_id);\r\n+$task_comments = $wpdb->get_results(\r\n+    $wpdb->prepare(\r\n+        \"SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d\",\r\n+        $prev_task_id\r\n+    )\r\n+);\r\n+$task_name    = isset($_POST['task_name']) ? stripslashes(sanitize_text_field(wp_unslash($_POST['task_name']))) : $task['task_name'] ;\r\n+$now   = wp_date(\"Y-m-d H:i:s\");\r\n+$values = array(\r\n+    'created_by'=>$task['created_by'],\r\n+    'name'=>$task_name,\r\n+    'wppm_task_description'=>$task['description'],\r\n+    'wppm_task_project'=>$task_project,\r\n+    'wppm_task_start_date'=>$task['start_date'],\r\n+    'wppm_task_end_date'=>$task['end_date'],\r\n+    'status'=>$task['status'],\r\n+    'wppm_create_task_priority'=>$task['priority'],\r\n+    'user_names'=>explode(\",\",$task['users']),\r\n+    'date_created'=>$task['date_created'],\r\n+    'task_auth_code'=> $wppmfunction->getRandomString(10),\r\n+    'active'=>1\r\n+);\r\n+$task_id = $wppmfunction->create_task($values);\r\n+if(!isset($project_id) || $wppm_default_duplicate_project_email_notification==1){\r\n+    do_action('wppm_after_task_created', $task_id);\r\n+}\r\n+if(!empty($checklists)){\r\n+    foreach($checklists as $checklist){\r\n+        $chk_values = array(\r\n+            'task_id' => $task_id,\r\n+            'checklist_name' => $checklist['checklist_name'],\r\n+            'created_by'=> $checklist['created_by']\r\n+        );\r\n+        $checklist_id = $wppmfunction->create_checklist($chk_values);\r\n+        $checklist_items = $wppmfunction->get_checklist_items($checklist['id']);\r\n+        if(!empty($checklist_items)){\r\n+            $chk_items_values = array();\r\n+            $checklist_item_id = array();\r\n+            foreach($checklist_items as $checklist_item){\r\n+                $chk_items_values = array(\r\n+                    'checklist_id' => $checklist_id,\r\n+                    'item_name' => $checklist_item['item_name'],\r\n+                    'checked'=>$checklist_item['checked'],\r\n+                    'members'=>$checklist_item['members'],\r\n+                    'due_date'=> $checklist_item['due_date']\r\n+                );\r\n+                if(!empty($chk_items_values)){\r\n+                    $checklist_item_id[] = $wppmfunction->create_checklist_item($chk_items_values);\r\n+                }\r\n+            }\r\n+            \r\n+        }\r\n+    }\r\n+}\r\n+if(!empty($task_comments)){\r\n+    $args = array();\r\n+    foreach($task_comments as $task_comment){\r\n+        $task_comment_data = json_decode(wp_json_encode($task_comment), true);\r\n+        $attachment_ids = $task_comment_data['attachment_ids'];\r\n+        $attachment_ids_array = explode(\",\",$attachment_ids);\r\n+        if(!empty($attachment_ids_array)){\r\n+            $attachment_id = array();\r\n+            $values = array();\r\n+\t\t\tforeach($attachment_ids_array as $attach_id){\r\n+                if(!empty($attach_id)){\r\n+                    $attachment_data = $wppmfunction->get_attachment($attach_id);\r\n+                    $values=array(\r\n+                        'name'=>!empty($attachment_data['name']) ? $attachment_data['name'] : '',\r\n+                        'file_name'=> !empty($attachment_data['file_name']) ? $attachment_data['file_name'] : '',\r\n+                        'file_path'=>!empty($attachment_data['file_path']) ? $attachment_data['file_path'] : '',\r\n+                        'is_image'=>!empty($attachment_data['is_image']) ? $attachment_data['is_image'] : 0,\r\n+                        'is_active'=>1,\r\n+                        'is_uploaded'=>0,\r\n+                        'date_created'=>!empty($attachment_data['date_created']) ? $attachment_data['date_created'] : ''\r\n+                    );\r\n+                    if(!empty($values)){\r\n+                        $wpdb->insert($wpdb->prefix.'wppm_attachments',$values);\r\n+                        $attachment_id[] = $wpdb->insert_id;\r\n+                    }\r\n+                }\r\n+\t\t\t}\r\n+\t\t}\r\n+        $args = array(\r\n+            'task_id'=>$task_id,\r\n+            'body'=>$task_comment_data['body'],\r\n+            'attachment_ids' =>implode(',',$attachment_id) ,\r\n+            'create_time'=>$task_comment_data['create_time'],\r\n+            'created_by'=>$task_comment_data['created_by']\r\n+        ); \r\n+        if(!empty($args)){\r\n+            $comment_id = $wppmfunction->wppm_submit_task_comment($args);\r\n+            $task_comm_id = esc_sql($task_comment->id);\r\n+            $task_comment_type = $wpdb->get_var( $wpdb->prepare(\"SELECT comment_type FROM {$wpdb->prefix}wppm_task_comment_meta WHERE task_id = %d AND comment_id = %d\",$prev_task_id,$task_comm_id));\r\n+            if(!empty($task_comment_type)){\r\n+                $meta_values = array(\r\n+                    'task_id'=>$task_id,\r\n+                    'comment_id'=>$comment_id,\r\n+                    'comment_type'=>$task_comment_type\r\n+                );\r\n+                $comment_meta_id = $wppmfunction->wppm_submit_task_comment_meta($meta_values);\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n+do_action(\"wppm_after_task_clone\",$prev_task_id,$task_id);\r\n+wp_send_json_success(array(\r\n+    'task_id' => $task_id\r\n ));\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_delete_thread.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_delete_thread.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_delete_thread.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_delete_thread.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,57 +1,57 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wppmfunction ,$wpdb;\n-if ( check_ajax_referer( 'wppm_set_delete_thread', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$task_id  = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : 0 ;\n-$thread_id  = isset($_POST['comment_id']) ? intval(sanitize_text_field(wp_unslash($_POST['comment_id']))) : 0 ;\n-$task_comment = $wppmfunction->get_task_comment($thread_id);\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_comment_permission('delete_task_thread',$task_id,$thread_id))) {exit;}\n-$thread_id = absint($thread_id);\n-$task_id = absint($task_id);\n-$sql=$wpdb->prepare(\"SELECT attachment_ids FROM {$wpdb->prefix}wppm_task_comment WHERE id = %d\",$thread_id);\n-$thread_attachment_ids = $wpdb->get_results( $sql );\n-if(!empty($thread_attachment_ids) ){\n-\tforeach ($thread_attachment_ids as $thread_attachment_id){\n-\t\t$attachment_ids_temp=array();\n-\t\tif($thread_attachment_id->attachment_ids){\n-\t\t\t$attachment_ids_temp =  explode(',', $thread_attachment_id->attachment_ids);\n-\t\t}\n-\t\t$attachment_ids=$attachment_ids_temp;\n-\t\tif(!empty($attachment_ids_temp)){\n-\t\t\tforeach ($attachment_ids_temp as $attachment_id){\n-\t\t\t\t$attachment_id = absint($attachment_id);\n-\t\t\t\t$sql=$wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",$attachment_id);\n-\t\t\t\t$result=$wpdb->get_row($sql);\n-\t\t\t\tif(!empty($result)){\n-\t\t\t\t\t$sql_query=$wpdb->prepare(\"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",$result->file_path);\n-\t\t\t\t\t$attach_result=$wpdb->get_results($sql_query);\n-\t\t\t\t\t$result_count = count($attach_result);\n-\t\t\t\t\tif(file_exists($result->file_path) && $result_count \u003C 2)\n-\t\t\t\t\t{\n-\t\t\t\t\t\twp_delete_file($result->file_path);\n-\t\t\t\t\t}\n-\t\t\t\t\t$wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => $attachment_id));\n-\t\t\t\t}\n-\t\t\t}\n-\t\t}\n-\t}\n-}\n-$cur_user = get_userdata($current_user->ID);\n-$cur_user_display_name = $cur_user->display_name;\n-$log_values = array('task_id'=>\"$task_id\",'body'=>'This comment was deleted by '.$cur_user_display_name,'attachment_ids'=>\"\" );\n-$wpdb->update($wpdb->prefix.'wppm_task_comment', $log_values, array('id'=>\"$thread_id\"));\n-$task_log_values = array('task_id'=>\"$task_id\",'comment_id'=>\"$thread_id\",'comment_type'=>'delete_task_comment');\n-$comment_meta = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment_meta WHERE comment_id = %d\",$thread_id));\n-if(!empty($comment_meta)){\n-\t$comment_meta_id = absint($comment_meta->id);\n-\t$wpdb->update($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values,array('id'=>\"$comment_meta_id\"));\n-}else{\n-\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\n-\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wppmfunction ,$wpdb;\r\n+if ( check_ajax_referer( 'wppm_set_delete_thread', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$task_id  = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : 0 ;\r\n+$thread_id  = isset($_POST['comment_id']) ? intval(sanitize_text_field(wp_unslash($_POST['comment_id']))) : 0 ;\r\n+$task_comment = $wppmfunction->get_task_comment($thread_id);\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_comment_permission('delete_task_thread',$task_id,$thread_id))) {exit;}\r\n+$thread_id = absint($thread_id);\r\n+$task_id = absint($task_id);\r\n+$sql=$wpdb->prepare(\"SELECT attachment_ids FROM {$wpdb->prefix}wppm_task_comment WHERE id = %d\",$thread_id);\r\n+$thread_attachment_ids = $wpdb->get_results( $sql );\r\n+if(!empty($thread_attachment_ids) ){\r\n+\tforeach ($thread_attachment_ids as $thread_attachment_id){\r\n+\t\t$attachment_ids_temp=array();\r\n+\t\tif($thread_attachment_id->attachment_ids){\r\n+\t\t\t$attachment_ids_temp =  explode(',', $thread_attachment_id->attachment_ids);\r\n+\t\t}\r\n+\t\t$attachment_ids=$attachment_ids_temp;\r\n+\t\tif(!empty($attachment_ids_temp)){\r\n+\t\t\tforeach ($attachment_ids_temp as $attachment_id){\r\n+\t\t\t\t$attachment_id = absint($attachment_id);\r\n+\t\t\t\t$sql=$wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",$attachment_id);\r\n+\t\t\t\t$result=$wpdb->get_row($sql);\r\n+\t\t\t\tif(!empty($result)){\r\n+\t\t\t\t\t$sql_query=$wpdb->prepare(\"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",$result->file_path);\r\n+\t\t\t\t\t$attach_result=$wpdb->get_results($sql_query);\r\n+\t\t\t\t\t$result_count = count($attach_result);\r\n+\t\t\t\t\tif(file_exists($result->file_path) && $result_count \u003C 2)\r\n+\t\t\t\t\t{\r\n+\t\t\t\t\t\twp_delete_file($result->file_path);\r\n+\t\t\t\t\t}\r\n+\t\t\t\t\t$wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => $attachment_id));\r\n+\t\t\t\t}\r\n+\t\t\t}\r\n+\t\t}\r\n+\t}\r\n+}\r\n+$cur_user = get_userdata($current_user->ID);\r\n+$cur_user_display_name = $cur_user->display_name;\r\n+$log_values = array('task_id'=>\"$task_id\",'body'=>'This comment was deleted by '.$cur_user_display_name,'attachment_ids'=>\"\" );\r\n+$wpdb->update($wpdb->prefix.'wppm_task_comment', $log_values, array('id'=>\"$thread_id\"));\r\n+$task_log_values = array('task_id'=>\"$task_id\",'comment_id'=>\"$thread_id\",'comment_type'=>'delete_task_comment');\r\n+$comment_meta = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment_meta WHERE comment_id = %d\",$thread_id));\r\n+if(!empty($comment_meta)){\r\n+\t$comment_meta_id = absint($comment_meta->id);\r\n+\t$wpdb->update($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values,array('id'=>\"$comment_meta_id\"));\r\n+}else{\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\r\n+\r\n+}\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_edit_task_thread.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_edit_task_thread.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_edit_task_thread.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_edit_task_thread.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,20 +1,20 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-$comment_id  = isset($_POST['comment_id']) ? absint(sanitize_text_field(wp_unslash($_POST['comment_id']))) : '' ;\n-$task_comment = $wppmfunction->get_task_comment($comment_id);\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id) || $current_user->ID == $task_comment['created_by'])) {exit;}\n-if ( check_ajax_referer( 'wppm_set_edit_task_thread', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$task_comment_data = $wppmfunction->get_task_comment($comment_id);\n-$old_comment_body = $task_comment_data['body'];\n-$allowed_tags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'rel'=> array(), 'target'=> array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\n-$new_task_comment = !empty($_POST['wppm_edit_task_thread']) ? wp_kses(wp_unslash($_POST['wppm_edit_task_thread']), $allowed_tags) : \"\" ;\n-\n-if($new_task_comment && $old_comment_body != $new_task_comment ){\n-    $wppmfunction->change_task_comment($comment_id, $new_task_comment);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+$comment_id  = isset($_POST['comment_id']) ? absint(sanitize_text_field(wp_unslash($_POST['comment_id']))) : '' ;\r\n+$task_comment = $wppmfunction->get_task_comment($comment_id);\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id) || $current_user->ID == $task_comment['created_by'])) {exit;}\r\n+if ( check_ajax_referer( 'wppm_set_edit_task_thread', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$task_comment_data = $wppmfunction->get_task_comment($comment_id);\r\n+$old_comment_body = $task_comment_data['body'];\r\n+$allowed_tags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'rel'=> array(), 'target'=> array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\r\n+$new_task_comment = !empty($_POST['wppm_edit_task_thread']) ? wp_kses(wp_unslash($_POST['wppm_edit_task_thread']), $allowed_tags) : \"\" ;\r\n+\r\n+if($new_task_comment && $old_comment_body != $new_task_comment ){\r\n+    $wppmfunction->change_task_comment($comment_id, $new_task_comment);\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_task_users.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_task_users.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_task_users.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_task_users.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,52 +1,52 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_task_users', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$task_id  = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-$cu_id = esc_sql($current_user->ID);\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('assign_task_users',$task_id))) {exit;}\n-\n-$task_data = $wppmfunction->get_task($task_id);\n-$users = \"\";\n-if(!empty($_POST['user_names'])){\n-  $users = $wppmfunction->sanitize_array(($_POST['user_names']));\n-  $users = array_unique($users);\n-  $users = implode(\",\",$users);\n-}\n-$prev_assign_users = $task_data['users'];\n-if(isset($prev_assign_users)){\n-  $prev_assign_users = explode(\",\",$prev_assign_users);\n-}\n-$prev_assign_user_meta = $wppmfunction->get_task_meta($task_id,'prev_assigned_task_users');\n-$wppmfunction->delete_task_meta($task_id,'prev_assigned_task_users');\n-\n-if(!empty($prev_assign_users)){\n-  foreach( $prev_assign_users as $ass_user){\n-    $wppmfunction->add_task_meta($task_id,'prev_assigned_task_users',$ass_user);\n-  }\n-}\n-if(isset($users)){\n-  $values=array(\n-    'users'=> esc_sql($users)\n-  );\n-}else{\n-  $values=array(\n-    'users'=> ''\n-  );\n-}\n-if(($users != $task_data['users'])){\n-  $task_id = esc_sql($task_id);\n-  $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>\"$task_id\"));\n-  $change_assign_user_value = array('prev_assign_user'=>\"$task_data[users]\",'new_assign_user'=>\"$users\");\n-  $change_assign_user_obj = serialize($change_assign_user_value);\n-  $log_values = array('task_id'=>\"$task_id\",'body'=>$change_assign_user_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>\"$cu_id\" );\n-  $wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\n-  $log_id = esc_sql($wpdb->insert_id);\n-  $task_log_values = array('task_id'=>\"$task_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_assign_user');\n-\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\n-  do_action('wppm_set_task_users', $task_id);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_task_users', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$task_id  = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+$cu_id = esc_sql($current_user->ID);\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('assign_task_users',$task_id))) {exit;}\r\n+\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$users = \"\";\r\n+if(!empty($_POST['user_names'])){\r\n+  $users = $wppmfunction->sanitize_array(($_POST['user_names']));\r\n+  $users = array_unique($users);\r\n+  $users = implode(\",\",$users);\r\n+}\r\n+$prev_assign_users = $task_data['users'];\r\n+if(isset($prev_assign_users)){\r\n+  $prev_assign_users = explode(\",\",$prev_assign_users);\r\n+}\r\n+$prev_assign_user_meta = $wppmfunction->get_task_meta($task_id,'prev_assigned_task_users');\r\n+$wppmfunction->delete_task_meta($task_id,'prev_assigned_task_users');\r\n+\r\n+if(!empty($prev_assign_users)){\r\n+  foreach( $prev_assign_users as $ass_user){\r\n+    $wppmfunction->add_task_meta($task_id,'prev_assigned_task_users',$ass_user);\r\n+  }\r\n+}\r\n+if(isset($users)){\r\n+  $values=array(\r\n+    'users'=> esc_sql($users)\r\n+  );\r\n+}else{\r\n+  $values=array(\r\n+    'users'=> ''\r\n+  );\r\n+}\r\n+if(($users != $task_data['users'])){\r\n+  $task_id = esc_sql($task_id);\r\n+  $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>\"$task_id\"));\r\n+  $change_assign_user_value = array('prev_assign_user'=>\"$task_data[users]\",'new_assign_user'=>\"$users\");\r\n+  $change_assign_user_obj = serialize($change_assign_user_value);\r\n+  $log_values = array('task_id'=>\"$task_id\",'body'=>$change_assign_user_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>\"$cu_id\" );\r\n+  $wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\r\n+  $log_id = esc_sql($wpdb->insert_id);\r\n+  $task_log_values = array('task_id'=>\"$task_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_assign_user');\r\n+\t$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\r\n+  do_action('wppm_set_task_users', $task_id);\r\n }\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_submit_task_comment.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_submit_task_comment.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_submit_task_comment.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_submit_task_comment.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,32 +1,32 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_submit_task_comment', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-if(!$wppmfunction->has_permission('add_task_comment',$task_id)){ exit; }\n-$comment = isset( $_POST['comment_body'] ) ? ( wp_unslash( $_POST['comment_body'] ) ) : '';\n-$allowed_tags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'rel'=> array(), 'target'=> array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\n-$comment_body = !empty($comment) ? wp_kses($comment,$allowed_tags) : '';\n-$attachments = !empty($_POST['wppm_comment_attachment']) ? $wppmfunction->sanitize_array($_POST['wppm_comment_attachment']) : [];\n-$attachment_ids = implode(\",\",$attachments);\n-if($comment_body==\"\" && $attachment_ids==\"\") exit;\n-$vals = array('is_active' => 1);\n-foreach($attachments as $attach){\n-  $wpdb->update($wpdb->prefix.'wppm_attachments', $vals, array('id'=>$attach));\n-}\n-$args=array(\n-  'task_id'=> $task_id,\n-  'body'=>$comment_body,\n-  'attachment_ids'=>$attachment_ids,\n-  'create_time'=>wp_date(\"Y-m-d h:i:sa\"),\n-  'created_by'=>$current_user->ID\n-);\n-$args = apply_filters( 'wppm_submit_comment_args', $args );\n-$comment_id = $wppmfunction->wppm_submit_task_comment($args);\n-$task_log_values = array('task_id'=>esc_sql($task_id),'comment_id'=>esc_sql($comment_id),'comment_type'=>'comment');\n-$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_submit_task_comment', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+if(!$wppmfunction->has_permission('add_task_comment',$task_id)){ exit; }\r\n+$comment = isset( $_POST['comment_body'] ) ? ( wp_unslash( $_POST['comment_body'] ) ) : '';\r\n+$allowed_tags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'rel'=> array(), 'target'=> array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));\r\n+$comment_body = !empty($comment) ? wp_kses($comment,$allowed_tags) : '';\r\n+$attachments = !empty($_POST['wppm_comment_attachment']) ? $wppmfunction->sanitize_array($_POST['wppm_comment_attachment']) : [];\r\n+$attachment_ids = implode(\",\",$attachments);\r\n+if($comment_body==\"\" && $attachment_ids==\"\") exit;\r\n+$vals = array('is_active' => 1);\r\n+foreach($attachments as $attach){\r\n+  $wpdb->update($wpdb->prefix.'wppm_attachments', $vals, array('id'=>$attach));\r\n+}\r\n+$args=array(\r\n+  'task_id'=> $task_id,\r\n+  'body'=>$comment_body,\r\n+  'attachment_ids'=>$attachment_ids,\r\n+  'create_time'=>wp_date(\"Y-m-d h:i:sa\"),\r\n+  'created_by'=>$current_user->ID\r\n+);\r\n+$args = apply_filters( 'wppm_submit_comment_args', $args );\r\n+$comment_id = $wppmfunction->wppm_submit_task_comment($args);\r\n+$task_log_values = array('task_id'=>esc_sql($task_id),'comment_id'=>esc_sql($comment_id),'comment_type'=>'comment');\r\n+$wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\r\n do_action('wppm_after_submit_task_comment', $task_id,$comment_id);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_thread_attachment_remove.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_thread_attachment_remove.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_thread_attachment_remove.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_thread_attachment_remove.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,47 +1,47 @@\n-\u003C?php \n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wppmfunction, $wpdb;\n-if ( check_ajax_referer( 'wppm_remove_thread_attachment', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$attachment     = isset($_POST['attachment']) ? intval(sanitize_text_field(wp_unslash($_POST['attachment']))) : '0' ;\n-$attachment     = esc_sql($attachment);\n-$comment_id     = isset($_POST['comment_id']) ? intval(sanitize_text_field(wp_unslash($_POST['comment_id']))) : '0' ;\n-$task_id        = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : '0' ;\n-$task_comment = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE id = %d AND task_id = %d\", $comment_id,$task_id));\n-if(!(((!empty($task_comment)) && ($task_comment->created_by == $current_user->ID)) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_comment_permission('edit_task_comment',$task_id,$comment_id)))){\n-  exit;\n-}\n-$attachment = absint( $attachment );\n-$result = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\", $attachment ));\n-$file_path = isset( $result->file_path ) ? $result->file_path : '';\n-$attach_result = $wpdb->get_results( $wpdb->prepare( \"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\", $file_path));\n-$result_count = count($attach_result);\n-if(file_exists($result->file_path) && $result_count \u003C 2)\n-{\n-\twp_delete_file($result->file_path);\n-}\n-$success = $wpdb->delete( \n-\t$wpdb->prefix . 'wppm_attachments', \n-\tarray( 'id' => \"$attachment\" ) \n-);\n-if( !$success ) return false;\n-$comment_id = isset( $comment_id ) ? absint( $comment_id ) : 0;\n-$task_attachment = $wpdb->get_var( $wpdb->prepare( \"SELECT attachment_ids FROM {$wpdb->prefix}wppm_task_comment WHERE id = %d\", $comment_id));\n-$task_attachment = explode(\",\",$task_attachment);\n-if(!empty($task_attachment)){\n-\tforeach($task_attachment as $key=>$val){\n-\t\tif($val == $attachment){\n-\t\t\tunset($task_attachment[$key]);\n-\t\t}\n-\t}\n-}\n-$tattachment = implode(',',$task_attachment);\n-$values=array(\n-\t'attachment_ids'=>esc_sql($tattachment)\n-);\n-$wpdb->update($wpdb->prefix.'wppm_task_comment', $values, array('id'=>\"$comment_id\"));\n+\u003C?php \r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wppmfunction, $wpdb;\r\n+if ( check_ajax_referer( 'wppm_remove_thread_attachment', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$attachment     = isset($_POST['attachment']) ? intval(sanitize_text_field(wp_unslash($_POST['attachment']))) : '0' ;\r\n+$attachment     = esc_sql($attachment);\r\n+$comment_id     = isset($_POST['comment_id']) ? intval(sanitize_text_field(wp_unslash($_POST['comment_id']))) : '0' ;\r\n+$task_id        = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : '0' ;\r\n+$task_comment = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE id = %d AND task_id = %d\", $comment_id,$task_id));\r\n+if(!(((!empty($task_comment)) && ($task_comment->created_by == $current_user->ID)) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_comment_permission('edit_task_comment',$task_id,$comment_id)))){\r\n+  exit;\r\n+}\r\n+$attachment = absint( $attachment );\r\n+$result = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\", $attachment ));\r\n+$file_path = isset( $result->file_path ) ? $result->file_path : '';\r\n+$attach_result = $wpdb->get_results( $wpdb->prepare( \"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\", $file_path));\r\n+$result_count = count($attach_result);\r\n+if(file_exists($result->file_path) && $result_count \u003C 2)\r\n+{\r\n+\twp_delete_file($result->file_path);\r\n+}\r\n+$success = $wpdb->delete( \r\n+\t$wpdb->prefix . 'wppm_attachments', \r\n+\tarray( 'id' => \"$attachment\" ) \r\n+);\r\n+if( !$success ) return false;\r\n+$comment_id = isset( $comment_id ) ? absint( $comment_id ) : 0;\r\n+$task_attachment = $wpdb->get_var( $wpdb->prepare( \"SELECT attachment_ids FROM {$wpdb->prefix}wppm_task_comment WHERE id = %d\", $comment_id));\r\n+$task_attachment = explode(\",\",$task_attachment);\r\n+if(!empty($task_attachment)){\r\n+\tforeach($task_attachment as $key=>$val){\r\n+\t\tif($val == $attachment){\r\n+\t\t\tunset($task_attachment[$key]);\r\n+\t\t}\r\n+\t}\r\n+}\r\n+$tattachment = implode(',',$task_attachment);\r\n+$values=array(\r\n+\t'attachment_ids'=>esc_sql($tattachment)\r\n+);\r\n+$wpdb->update($wpdb->prefix.'wppm_task_comment', $values, array('id'=>\"$comment_id\"));\r\n $attachment = apply_filters('wppm_after_delete_comment_attachment',$attachment,$comment_id,$task_id);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_update_archive_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_update_archive_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_update_archive_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_update_archive_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,12 +1,12 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-    exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user, $wppmfunction ,$wpdb;\n-$task_id  = isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : 0 ;\n-$is_archived = (isset($_POST['is_archived']) && absint(sanitize_text_field(wp_unslash($_POST['is_archived']))) == 1) ? 0 : 1 ;\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}\n-$values=array(\n-    'is_archived'=>esc_sql($is_archived)\n-);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+    exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user, $wppmfunction ,$wpdb;\r\n+$task_id  = isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : 0 ;\r\n+$is_archived = (isset($_POST['is_archived']) && absint(sanitize_text_field(wp_unslash($_POST['is_archived']))) == 1) ? 0 : 1 ;\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}\r\n+$values=array(\r\n+    'is_archived'=>esc_sql($is_archived)\r\n+);\r\n $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>esc_sql($task_id)));\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,113 +1,113 @@\n-\u003C?php\n-\u002F\u002F Exit if accessed directly\n-if ( ! defined( 'ABSPATH' ) ) exit;\n-global $wpdb,$wppmfunction,$current_user;\n-\n-$nonce_valid = check_ajax_referer( 'wppm_upload_proj_attach_file', 'nonce', false ) === 1 || check_ajax_referer( 'wppm_upload_file', 'nonce', false ) === 1;\n-if ( ! $nonce_valid ) {\n-    wp_send_json_error( 'Unauthorized request!', 403 );\n-}\n-$has_upload_action = isset($_POST['action']) && ( $_POST['action'] === 'wppm_upload_proj_attach_file' || $_POST['action'] === 'wppm_upload_file');\n-\n-if ( ! $has_upload_action ) {\n-    wp_send_json_error('Unauthorized', 401);\n-}\n-$isError       = false;\n-$errorMessege  = '';\n-$attachment_id = 0;\n-if(!$_FILES){\n-    $isError=true;\n-}\n-$upload_dir = wp_upload_dir();\n-$now   = wp_date(\"Y-m-d H:i:s\");\n-$time  = strtotime($now);\n-$month = wp_date(\"m\",$time);\n-$year  = wp_date(\"Y\",$time);\n-$filename = isset( $_FILES['file']['name'] ) ? sanitize_file_name( $_FILES['file']['name'] ) : '';\n-if ( ! $filename ) {\n-    wp_send_json_error( esc_html__( 'No file uploaded.', 'taskbuilder' ), 400 );\n-}\n-$path = $upload_dir['basedir'] . '\u002Fwppm\u002F'.$year.'\u002F'.$month.'\u002F'.$filename;\n-$filetype_extention = wp_check_filetype_and_ext($path,$filename);\n-\n-if( !$isError ){\n-  if (!file_exists($upload_dir['basedir'] . '\u002Fwppm\u002F'.$year)) {\n-    mkdir($upload_dir['basedir'] . '\u002Fwppm\u002F'.$year, 0755, true);\n-  }\n-  if (!file_exists($upload_dir['basedir'] . '\u002Fwppm\u002F'.$year.'\u002F'.$month)) {\n-      mkdir($upload_dir['basedir'] . '\u002Fwppm\u002F'.$year.'\u002F'.$month, 0755, true);\n-  }\n-  switch ($filetype_extention['ext']){\n-    case 'exe':\n-    case 'php':\n-    case 'js':\n-        $isError      = true;\n-        $errorMessege = esc_html__( 'Error: file format not supported!', 'taskbuilder' );\n-        break;\n-  }\n-  if ( preg_match('\u002Fphp\u002Fi', $filetype_extention['ext']) || preg_match('\u002Fphtml\u002Fi', $filetype_extention['ext']) ){\n-    $isError=true;\n-    $errorMessege=esc_html__('Error: file format not supported!','taskbuilder');\n-  }\n-}\n-\n-if( !$isError && $_FILES['file']['tmp_name']==''){\n-  $isError      = true;\n-  $errorMessege = esc_html__( 'Error: file size exceeded allowed limit!', 'taskbuilder' );\n-}\n-\n-if( !$isError ){\n-  $file_name = sanitize_file_name($_FILES['file']['name']);\n-  if(!empty($file_name)){\n-    $save_file_name = str_replace(' ','_',$file_name);\n-  }\n-\n-  \u002F\u002F if (!file_exists($upload_dir['basedir'] . '\u002Fwppm\u002F'.$year.'\u002F'.$month)) {\n-  \u002F\u002F     mkdir($upload_dir['basedir'] . '\u002Fwppm\u002F'.$year.'\u002F'.$month, 0755, true);\n-  \u002F\u002F }\n-  if(!empty($filename)){\n-    $save_file_name = str_replace(' ','_',$filename);\n-    $save_file_name = str_replace(',','_',$save_file_name);\n-    $save_file_name = explode('.', $save_file_name);\n-  }else{\n-    $save_file_name =\"\";\n-  }\n-  \n-  $img_extensions = array('png','jpeg','jpg','bmp','pdf','gif','PNG','JPEG','JPG','BMP','PDF','GIF');\n-  \u002F\u002F$extension      = $save_file_name[count($save_file_name)-1];\n-  if(!in_array($filetype_extention['ext'], $img_extensions)){\n-    $extension = $filetype_extention['ext'].'.txt';\n-    $is_image = 0;\n-  } else {\n-    $is_image = 1;\n-  }\n-  unset( $save_file_name[count($save_file_name)-1] );\n-  $save_file_name = implode('-', $save_file_name);\n-  $save_file_name = time().'_'.preg_replace('\u002F[^A-Za-z0-9\\-]\u002F', '', $save_file_name).'.'.$filetype_extention['ext'];\n-  $save_directory = $upload_dir['basedir'] . '\u002Fwppm\u002F'.$year.'\u002F'.$month.'\u002F'.$save_file_name;\n-  move_uploaded_file( $_FILES['file']['tmp_name'], $save_directory );\n-}\n-\n-$values=array(\n-  'name'=>$save_file_name,\n-  'file_name'=> $filename,\n-  'file_path'=>$save_directory,\n-  'is_image'=>$is_image,\n-  'is_active'=>0,\n-  'is_uploaded'=>0,\n-  'date_created'=>$now\n-);\n-\n-$wpdb->insert($wpdb->prefix.'wppm_attachments',$values);\n-$attachment_id= $wpdb->insert_id;\n-$errorMessege=esc_html__('done','taskbuilder');\n-\n-$isError=($isError)?'yes':'no';\n-\n-$response = array(\n-    'error'        => $isError,\n-    'errorMessege' => $errorMessege,\n-    'id'           => $attachment_id\n-);\n-\n+\u003C?php\r\n+\u002F\u002F Exit if accessed directly\r\n+if ( ! defined( 'ABSPATH' ) ) exit;\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+\r\n+$nonce_valid = check_ajax_referer( 'wppm_upload_proj_attach_file', 'nonce', false ) === 1 || check_ajax_referer( 'wppm_upload_file', 'nonce', false ) === 1;\r\n+if ( ! $nonce_valid ) {\r\n+    wp_send_json_error( 'Unauthorized request!', 403 );\r\n+}\r\n+$has_upload_action = isset($_POST['action']) && ( $_POST['action'] === 'wppm_upload_proj_attach_file' || $_POST['action'] === 'wppm_upload_file');\r\n+\r\n+if ( ! $has_upload_action ) {\r\n+    wp_send_json_error('Unauthorized', 401);\r\n+}\r\n+$isError       = false;\r\n+$errorMessege  = '';\r\n+$attachment_id = 0;\r\n+if(!$_FILES){\r\n+    $isError=true;\r\n+}\r\n+$upload_dir = wp_upload_dir();\r\n+$now   = wp_date(\"Y-m-d H:i:s\");\r\n+$time  = strtotime($now);\r\n+$month = wp_date(\"m\",$time);\r\n+$year  = wp_date(\"Y\",$time);\r\n+$filename = isset( $_FILES['file']['name'] ) ? sanitize_file_name( $_FILES['file']['name'] ) : '';\r\n+if ( ! $filename ) {\r\n+    wp_send_json_error( esc_html__( 'No file uploaded.', 'taskbuilder' ), 400 );\r\n+}\r\n+$path = $upload_dir['basedir'] . '\u002Fwppm\u002F'.$year.'\u002F'.$month.'\u002F'.$filename;\r\n+$filetype_extention = wp_check_filetype_and_ext($path,$filename);\r\n+\r\n+if( !$isError ){\r\n+  if (!file_exists($upload_dir['basedir'] . '\u002Fwppm\u002F'.$year)) {\r\n+    mkdir($upload_dir['basedir'] . '\u002Fwppm\u002F'.$year, 0755, true);\r\n+  }\r\n+  if (!file_exists($upload_dir['basedir'] . '\u002Fwppm\u002F'.$year.'\u002F'.$month)) {\r\n+      mkdir($upload_dir['basedir'] . '\u002Fwppm\u002F'.$year.'\u002F'.$month, 0755, true);\r\n+  }\r\n+  switch ($filetype_extention['ext']){\r\n+    case 'exe':\r\n+    case 'php':\r\n+    case 'js':\r\n+        $isError      = true;\r\n+        $errorMessege = esc_html__( 'Error: file format not supported!', 'taskbuilder' );\r\n+        break;\r\n+  }\r\n+  if ( preg_match('\u002Fphp\u002Fi', $filetype_extention['ext']) || preg_match('\u002Fphtml\u002Fi', $filetype_extention['ext']) ){\r\n+    $isError=true;\r\n+    $errorMessege=esc_html__('Error: file format not supported!','taskbuilder');\r\n+  }\r\n+}\r\n+\r\n+if( !$isError && $_FILES['file']['tmp_name']==''){\r\n+  $isError      = true;\r\n+  $errorMessege = esc_html__( 'Error: file size exceeded allowed limit!', 'taskbuilder' );\r\n+}\r\n+\r\n+if( !$isError ){\r\n+  $file_name = sanitize_file_name($_FILES['file']['name']);\r\n+  if(!empty($file_name)){\r\n+    $save_file_name = str_replace(' ','_',$file_name);\r\n+  }\r\n+\r\n+  \u002F\u002F if (!file_exists($upload_dir['basedir'] . '\u002Fwppm\u002F'.$year.'\u002F'.$month)) {\r\n+  \u002F\u002F     mkdir($upload_dir['basedir'] . '\u002Fwppm\u002F'.$year.'\u002F'.$month, 0755, true);\r\n+  \u002F\u002F }\r\n+  if(!empty($filename)){\r\n+    $save_file_name = str_replace(' ','_',$filename);\r\n+    $save_file_name = str_replace(',','_',$save_file_name);\r\n+    $save_file_name = explode('.', $save_file_name);\r\n+  }else{\r\n+    $save_file_name =\"\";\r\n+  }\r\n+  \r\n+  $img_extensions = array('png','jpeg','jpg','bmp','pdf','gif','PNG','JPEG','JPG','BMP','PDF','GIF');\r\n+  \u002F\u002F$extension      = $save_file_name[count($save_file_name)-1];\r\n+  if(!in_array($filetype_extention['ext'], $img_extensions)){\r\n+    $extension = $filetype_extention['ext'].'.txt';\r\n+    $is_image = 0;\r\n+  } else {\r\n+    $is_image = 1;\r\n+  }\r\n+  unset( $save_file_name[count($save_file_name)-1] );\r\n+  $save_file_name = implode('-', $save_file_name);\r\n+  $save_file_name = time().'_'.preg_replace('\u002F[^A-Za-z0-9\\-]\u002F', '', $save_file_name).'.'.$filetype_extention['ext'];\r\n+  $save_directory = $upload_dir['basedir'] . '\u002Fwppm\u002F'.$year.'\u002F'.$month.'\u002F'.$save_file_name;\r\n+  move_uploaded_file( $_FILES['file']['tmp_name'], $save_directory );\r\n+}\r\n+\r\n+$values=array(\r\n+  'name'=>$save_file_name,\r\n+  'file_name'=> $filename,\r\n+  'file_path'=>$save_directory,\r\n+  'is_image'=>$is_image,\r\n+  'is_active'=>0,\r\n+  'is_uploaded'=>0,\r\n+  'date_created'=>$now\r\n+);\r\n+\r\n+$wpdb->insert($wpdb->prefix.'wppm_attachments',$values);\r\n+$attachment_id= $wpdb->insert_id;\r\n+$errorMessege=esc_html__('done','taskbuilder');\r\n+\r\n+$isError=($isError)?'yes':'no';\r\n+\r\n+$response = array(\r\n+    'error'        => $isError,\r\n+    'errorMessege' => $errorMessege,\r\n+    'id'           => $attachment_id\r\n+);\r\n+\r\n echo wp_json_encode($response);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,370 +1,370 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-$proj_id = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : 0 ;\n-$current_project_id = isset($_POST['project_id']) ? intval(sanitize_text_field(wp_unslash($_POST['project_id']))) : 0 ;\n-$orderby_prio_sql = (sanitize_sql_orderby( \"name\" ));\n-$cu_id = absint($current_user->ID);\n-$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\n-$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\n-$priorities = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities ORDER BY %s\",$orderby_prio_sql) );\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$wppm_create_tasks_coworkers_permission = get_option('wppm_allow_coworkers_create_task');\n-if($current_user->has_cap('manage_options') || $wppm_current_user_capability=='wppm_admin'){\n-    $orderby_proj_sql = (sanitize_sql_orderby( \"project_name\" ));\n-    $query = (\"SELECT * FROM {$wpdb->prefix}wppm_project ORDER BY $orderby_proj_sql\");\n-    $where = \"\";\n-}else{\n-    $orderby_proj_sql = (sanitize_sql_orderby( \"project_name\" ));\n-    $query = (\"SELECT Proj.*\n-              FROM {$wpdb->prefix}wppm_project AS Proj\n-              Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Proj.id = proj_meta.project_id\n-              Left join {$wpdb->prefix}wppm_project_users proj_users ON Proj.id = proj_users.proj_id\n-              \");\n-    if($wppm_create_tasks_coworkers_permission!=1){          \n-        $where =  \" where ((FIND_IN_SET('$current_user->ID',Proj.users) AND proj_users.role_id=1) OR (Proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR (Proj.created_by='$cu_id')) Group by Proj.id ORDER BY '$orderby_proj_sql'\";\n-    }else{\n-        $where =  \" where ((FIND_IN_SET('$current_user->ID',Proj.users)) OR (Proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR (Proj.created_by='$cu_id')) Group by Proj.id ORDER BY '$orderby_proj_sql'\";\n-    }\n-}\n-$query = apply_filters(\"wppm_projects_list_in_create_task_query\",$query);\n-$where = apply_filters(\"wppm_projects_list_in_create_task_query_where\",$where);\n-$query.= $where;\n-$projects = $wpdb->get_results($query);\n-$start_date=\"\";\n-$end_date=\"\";\n-$wppm_task_list_view = get_option('wppm_default_task_list_view');\n-$wppm_default_task_date = get_option('wppm_default_task_date');\n-$wppm_task_fillter = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task\");\n-$flag = false;\n-if(!empty($wppm_task_fillter)){\n-    foreach($wppm_task_fillter as $key_filter=>$val_filter){\n-        $val_array = (array) $val_filter;\n-        $tusers =  $val_array['users'];\n-        $tusers_arr = explode(',',$tusers);\n-        $tproject_id = $val_array['project'];\n-        if(!empty($tusers) && in_array($current_user->ID,$tusers_arr)){\n-            $project_user_role = $wpdb->get_var( $wpdb->prepare( \"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$tproject_id,$cu_id));\n-            $tproject_id = absint( $tproject_id );\n-            $project_users = $wpdb->get_var( $wpdb->prepare( \"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$tproject_id));\n-            $project_users_arr = explode(',',(string)$project_users);\n-            if((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)){\n-                $flag= true;\n-                break;\n-            }\n-        }\n-    }\n-}\n-$cu_id = absint( $cu_id );\n-$project_creator = $wpdb->get_var( $wpdb->prepare( \"SELECT created_by FROM {$wpdb->prefix}wppm_project WHERE created_by = %d\",$cu_id ));\n-?>\n-\u003Cform class='wppm_add_new_task wppm_bootstrap' id=\"wppm_add_new_task\" method=\"post\">\n-    \u003Cdiv class=\"wppm_headers row\">\n-        \u003Cdiv class=\"col-sm-12\">\n-            \u003Cspan class=\"wppm-heading-inline\">\n-                \u003C?php echo esc_html_e('Create Task','taskbuilder');?>\n-            \u003C\u002Fspan>\n-            \u003C?php if($proj_id==0){ \n-                    if($current_user->has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',0) || ($flag==true) || ($project_creator!=\"\")){\n-                        $style = \"display:inline;\";\n-                    }else{\n-                        $style = \"display:none;\";\n-                    }\n-                    $style = apply_filters('wppm_add_new_task_btn_style',$style);\n-                    ?>\n-                    \u003Cspan onclick=\"wppm_add_new_task('',\u003C?php echo esc_attr($current_project_id); ?>)\" class=\"wppm_add_new_task_btn\" title=\"Create Task\" style=\u003C?php echo esc_attr($style);?>>\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus.svg'); ?>\" alt=\"plus-icon\">\u003C\u002Fspan>\n-            \u003C?php } ?>\n-            \u003C?php \n-                if(!empty($current_project_id)){\n-                    ?>\u003Cspan class=\"wppm-task-list-btn\" title=\"Task List\" onclick=\"wppm_get_project_tasks_kanban_view( \u003C?php echo esc_attr($current_project_id); ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist.svg'); ?>\" alt=\"list-icon\">\u003C\u002Fspan>\u003C?php\n-                }else{\n-                    if($proj_id==0) { \n-                    $tstyle = \"display:inline;\";\n-                    $tstyle = apply_filters('wppm_task_list_btn_style',$tstyle);\n-                    ?>\n-                    \u003Cspan class=\"wppm-task-list-btn\" title=\"Task List\" onclick=\"wppm_get_task_list()\" style=\"\u003C?php echo esc_attr($tstyle);?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist.svg'); ?>\" alt=\"list-icon\">\u003C\u002Fspan>\n-                \u003C?php } else { ?>\n-                    \u003Cspan class=\"wppm-task-list-btn\" id=\"wppm_task_list_btn\" title=\"Task List\" onclick=\"wppm_get_project_tasks(\u003C?php echo esc_attr($proj_id)?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist.svg'); ?>\" alt=\"list-icon\">\u003C\u002Fspan>\n-                \u003C?php }\n-                }\n-            do_action('wppm_after_add_new_task_button',$style);?>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv id='wppm_task_frm_field_container'>\n-        \u003Cdiv class=\"row\">\n-            \u003Cdiv class=\"wppm_task_frm_fields col-sm-6\">\n-                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                \u003C?php echo esc_html_e('Task Name','taskbuilder');?>\n-                    \u003C\u002Fb>\n-                    \u003Cspan style=\"color:#ff0000;\">*\u003C\u002Fspan>\n-                \u003C\u002Fspan>\u003Cbr>\n-                \u003Cinput name=\"name\" class=\"form-control\" id=\"wppm_task_name\" type=\"text\" value=\"\" size=\"40\" aria-required=\"true\">\u003Cbr>\n-            \u003C\u002Fdiv>\n-            \u003Cdiv class=\"wppm_task_frm_fields wppm_project_autocomplete_container col-sm-6\">\n-                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                    \u003C?php echo esc_html_e('Project','taskbuilder');?>\n-                    \u003C\u002Fb>\n-                \u003C\u002Fspan>\u003Cbr>\n-                \u003Cselect searchable=\"search here\" onchange=\"wppm_select_project()\" class=\"form-control\" size=\"40\" name=\"wppm_task_project\" id=\"wppm_task_project\">\n-                    \u003C?php \n-                        if($current_project_id != 0){\n-                            $current_project_name = $wpdb->get_var( $wpdb->prepare( \"SELECT project_name FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$current_project_id));\n-                            if($current_project_id && $current_project_name){\n-                                echo '\u003Coption value=\"'.esc_attr($current_project_id).'\" selected=\"selected\">'.esc_html($current_project_name).'\u003C\u002Foption>';\n-                            }\n-                        }\n-                        else{\n-                            if(!empty($projects)){\n-                                foreach($projects as $proj) { \n-                                    $project_id = esc_sql($proj->id);\n-                                    if($current_user->has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',0) || $wppm_current_user_capability=='wppm_admin'){\n-                                        ?>\n-                                        \u003Coption value=\"\u003C?php echo esc_attr($proj->id)?>\">\u003C?php echo esc_html($proj->project_name);?>\u003C\u002Foption>\u003C?php\n-                                    }\n-                                    else{\n-                                        $project_id = absint( $project_id );\n-                                        $cu_id      = absint( $cu_id );\n-                                        $project_user_role = $wpdb->get_var( $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id, $cu_id));\n-                                        $project_users = $proj->users;\n-                                        $project_users_arr = explode(',',(string)$project_users);\n-                                        $project_creator_id = $wpdb->get_var( $wpdb->prepare( \"SELECT created_by FROM {$wpdb->prefix}wppm_project WHERE created_by = %d AND id = %d\",$cu_id,$project_id ));\n-                                        if(((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)) || ($project_creator_id!=\"\")){\n-                                            ?>\n-                                            \u003Coption value=\"\u003C?php echo esc_attr($proj->id)?>\">\u003C?php echo esc_html($proj->project_name);?>\u003C\u002Foption>\n-                                    \u003C?php } \n-                                    } \n-                                } \n-                            }\n-                        }?>\n-                \u003C\u002Fselect>\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003C?php if($wppm_default_task_date==1){ ?>\n-            \u003Cdiv class=\"row\">\n-                \u003Cdiv class=\"wppm_task_frm_fields col-sm-6\">\n-                    \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                        \u003C?php echo esc_html_e('Start date','taskbuilder');?>\n-                        \u003C\u002Fb>\n-                    \u003C\u002Fspan>\u003Cbr>\n-                    \u003C?php $start_date = apply_filters( 'wppm_add_new_task_start_date',$start_date); ?>\n-                    \u003Cinput name=\"wppm_task_start_date\" class=\"form-control\" id=\"wppm_task_start_date\" type=\"text\" value=\"\u003C?php echo esc_attr( $start_date ); ?>\" size=\"40\" aria-required=\"true\">\u003Cbr>\n-                \u003C\u002Fdiv>\n-                \u003Cdiv class=\"wppm_task_frm_fields col-sm-6\">\n-                    \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                        \u003C?php echo esc_html_e('End date','taskbuilder');?>\n-                        \u003C\u002Fb>\n-                    \u003C\u002Fspan>\u003Cbr>\n-                    \u003C?php $end_date = apply_filters( 'wppm_add_new_task_end_date',$end_date); ?>\n-                    \u003Cinput name=\"wppm_task_end_date\" id=\"wppm_task_end_date\" class=\"form-control\" type=\"text\" value=\"\u003C?php echo esc_attr( $end_date ); ?>\" size=\"40\" aria-required=\"true\">\u003Cbr>\n-                \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-        \u003C?php } ?>\n-        \u003Cdiv class=\"row\">\n-            \u003Cdiv class=\"wppm_task_frm_fields col-sm-12\">\n-                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                    \u003C?php echo esc_html_e('Description','taskbuilder');?>\n-                    \u003C\u002Fb>\n-                \u003C\u002Fspan>\u003Cbr>\n-                \u003Ctextarea id=\"wppm_task_description\" name=\"wppm_task_description\">\n-                \u003C\u002Ftextarea>\n-                \u003Cbr>\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"row\">\n-            \u003Cdiv class=\"wppm_task_frm_fields col-sm-12\">\n-                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                    \u003C?php echo esc_html_e('Priority','taskbuilder');?>\n-                    \u003C\u002Fb>\n-                \u003C\u002Fspan>\u003Cbr>\n-                \u003Cselect id=\"wppm_create_task_priority\" name=\"wppm_create_task_priority\" class=\"form-control\">\n-                    \u003Coption value=\"\">\u003C\u002Foption>\u003C?php \n-                    if(!empty($priorities)){\n-                        foreach ($priorities as $priority){\n-                            echo '\u003Coption value=\"'.esc_attr($priority->id).'\">'.esc_html(stripcslashes($priority->name)).'\u003C\u002Foption>';\n-                        }\n-                    }\n-                    ?>\n-                \u003C\u002Fselect>\u003Cbr>\u003Cbr>\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv class=\"row\">\n-            \u003Cdiv class=\"wppm_task_frm_fields col-sm-12\">\n-                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\n-                    \u003C?php echo esc_html_e('Task Members','taskbuilder');?>\n-                    \u003C\u002Fb>\n-                \u003C\u002Fspan>\u003Cbr>\n-                \u003Cinput class=\"form-control wppm_assign_task_users ui-autocomplete-input\" name=\"wppm_assign_task_users\" type=\"text\" autocomplete=\"off\" placeholder=\"\u003C?php echo esc_attr__('Search User...','taskbuilder');?>\">\n-                \u003Cbr>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_display_task_users\" class=\"row\">\n-            \u003Cdiv class=\"col-sm-12\">\n-                \u003Cui class=\"wppm_filter_display_users_container\">\u003C\u002Fui>\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-        \u003C?php do_action('wppm_after_task_fields_in_new_task_form');?>\n-        \u003Cdiv class=\"row\">\n-            \u003Cdiv class=\"wppm_frm_submit col-sm-12\">\n-                \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" id=\"wppm-submit-task-btn\" onclick=\"wppm_create_task(event)\">\u003C?php echo esc_html_e('Add Task','taskbuilder');?>\u003C\u002Fbutton>\n-                \u003C?php if($proj_id==0){ ?>\n-                    \u003Cbutton type=\"button\" class=\"wppm_reset_btn\" id=\"wppm_submit_task_reset_btn\" onclick=\"wppm_add_new_task()\">\u003C?php echo esc_html_e('Reset form','taskbuilder');?>\u003C\u002Fbutton>\n-                \u003C?php } else {?>\n-                    \u003Cbutton type=\"button\" class=\"wppm_reset_btn\" id=\"wppm_submit_task_reset_btn\" onclick=\"wppm_create_project_task(\u003C?php echo esc_attr($proj_id) ?>)\">\u003C?php echo esc_html_e('Reset form','taskbuilder');?>\u003C\u002Fbutton>\n-                \u003C?php } ?>\n-                \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_create_task\" \u002F>\n-            \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-\u003C\u002Fform>\n-\u003Cscript>\n-jQuery( document ).ready( function( jQuery ) {\n-    wppm_select_project();\n-    jQuery(\"#wppm_task_start_date\").flatpickr({\n-        enableTime: true,\n-        dateFormat: \"Y-m-d H:i\",\n-    });\n-    jQuery(\"#wppm_task_end_date\").flatpickr({\n-        enableTime: true,\n-        dateFormat: \"Y-m-d H:i\"\n-        \u002F\u002FminDate: startdate\n-    });\u003C?php\n-    if((!empty($wppm_rich_text_editor)) && ($wppm_rich_text_editor == 1)){ \n-        $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :\"\";\n-        $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :\"\";   \n-        $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :\"\";   \n-        $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :\"\";   \n-        $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)?  ' alignleft aligncenter alignright ' :\"\";   \n-        $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :\"\"; \n-        $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :\"\";     \n-        $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :\"\";     \n-        $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :\"\"; \n-        $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :\"\";     \n-        $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :\"\"; \n-        $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :\"\"; \n-        $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :\"\"; \n-        $toolbar = trim(\"$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough\");?>\n-        tinymce.remove();\n-        tinymce.init({ \n-        selector:'#wppm_task_description',\n-        body_id: 'wppm_task_description',\n-        directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\n-        menubar: false,\n-        statusbar: false,\n-        height : '200',\n-        width  : '100%', \n-        plugins: [\n-            'lists link image directionality paste textcolor'\n-        ],\n-        image_advtab: true,\n-        toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>', \n-        branding: false,\n-        autoresize_bottom_margin: 20,\n-        browser_spellcheck : true,\n-        relative_urls : false,\n-        remove_script_host : false,\n-        paste_as_text: true,\n-        convert_urls : true,\n-        setup: function (editor) {\n-        }\n-        });\n-    \u003C?php } ?>\n-    jQuery(\"input[name='wppm_assign_task_users']\").keypress(function(e) {\n-        \u002F\u002FEnter key\n-        if (e.which == 13) {\n-            return false;\n-        }\n-    });\n-    jQuery( \".wppm_assign_task_users\" ).autocomplete({\n-        minLength: 1,\n-        appendTo: jQuery('.wppm_assign_task_users').parent(),\n-        source: function( request, response ) {\n-            var term = request.term;\n-            request = {\n-                action: 'wppm_filter_autocomplete',\n-                term : term,\n-                field : 'task_users_by_project_name',\n-                proj_id : jQuery('#wppm_task_project').val()\n-            }\n-            jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\n-                response(data);\n-            });\n-        },\n-        select: function (event, ui) {\n-            var html_str = '\u003Cli class=\"wppm_filter_display_element\" style=\"list-style: none\">'\n-                                +'\u003Cdiv class=\"flex-container\">'\n-                                    +'\u003Cdiv class=\"wppm_filter_display_text\">'\n-                                        +ui.item.label\n-                                        +'\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"'+ui.item.user_id+'\">'\n-                                    +'\u003C\u002Fdiv>'\n-                                    +'\u003Cdiv class=\"wppm_filter_display_remove\" onclick=\"wppm_remove_user(this);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcross.svg'); ?>\" alt=\"delete\">\u003C\u002Fdiv>'\n-                                +'\u003C\u002Fdiv>'\n-                            +'\u003C\u002Fli>';\n-            jQuery('#wppm_display_task_users .wppm_filter_display_users_container').append(html_str);\n-            jQuery(this).val(''); return false;\n-        }\n-    }).focus(function() {\n-        jQuery(this).autocomplete(\"search\", \"\");\n-    });\n-});\n-\n-jQuery('#wppm_task_project option:eq(0)').prop('selected',true);\n-jQuery('#wppm_task_project').select2();\n-jQuery(\"#wppm_add_new_task\").on(\"submit\", function (e) {\n-    e.preventDefault();\n-    location.reload();\n-});\n-\n-function wppm_remove_user(e){\n-  jQuery(e).parent().parent().remove();\n-}\n-\n-function wppm_select_project(){\n-  jQuery('.wppm_filter_display_element').hide();\n-  \u003C?php do_action('wppm_display_cf_by_project') ?>\n-}\n-\n-function wppm_create_task(e){\n-    if(!jQuery('#wppm_task_name').val()){\n-        alert(\"\u003C?php echo esc_js(__('Task title is required','taskbuilder'))?>\");\n-        e.preventDefault();\n-        return false;\n-    }\n-    \u003C?php \u002F\u002Fdo_action('wppm_create_task_js_function'); ?>\n-    var dataform = new FormData(jQuery('#wppm_add_new_task')[0]);\n-     \u002F\u002Fvar validationResult = true;\n-     var validation = {\n-        isValid: true\n-    };\n-    jQuery(document).trigger('wppm_create_task_js_function', [\n-        dataform,\n-        validation\n-    ]);\n-\n-    if(!validation.isValid){\n-        e.preventDefault();\n-        return false;\n-    }\n-    var is_tinymce = (typeof tinyMCE != \"undefined\") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();\n-    var description = is_tinymce && tinymce.get('wppm_task_description') ? tinyMCE.get('wppm_task_description').getContent() : jQuery('#wppm_task_description').val().trim();\n-    dataform.append('wppm_task_description', description);\n-    jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-    jQuery(document).trigger('wppm_create_task_dataform', [dataform]);\n-    \u003C?php \u002F\u002Fdo_action('wppm_create_task_dataform'); ?>\n-    jQuery.ajax({\n-        url: wppm_admin.ajax_url,\n-        type: 'POST',\n-        data: dataform,\n-        processData: false,\n-        contentType: false\n-    }) .done(function (response_str) {\n-   \u003C?php if($current_project_id != 0){ ?>\n-            wppm_get_project_tasks_kanban_view(\u003C?php echo (int)$current_project_id; ?>);\n-\u003C?php } elseif($wppm_task_list_view == 1){ ?>\n-            wppm_get_task_list();\n-\u003C?php } elseif($wppm_task_list_view == 0){ ?>\n-            wppm_display_grid_view();\n-\u003C?php } ?>\n-    });\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+$proj_id = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : 0 ;\r\n+$current_project_id = isset($_POST['project_id']) ? intval(sanitize_text_field(wp_unslash($_POST['project_id']))) : 0 ;\r\n+$orderby_prio_sql = (sanitize_sql_orderby( \"name\" ));\r\n+$cu_id = absint($current_user->ID);\r\n+$wppm_rich_text_editor = get_option('wppm_rich_text_editor');\r\n+$wppm_toolbar_actions = get_option('wppm_toolbar_actions');\r\n+$priorities = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities ORDER BY %s\",$orderby_prio_sql) );\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$wppm_create_tasks_coworkers_permission = get_option('wppm_allow_coworkers_create_task');\r\n+if($current_user->has_cap('manage_options') || $wppm_current_user_capability=='wppm_admin'){\r\n+    $orderby_proj_sql = (sanitize_sql_orderby( \"project_name\" ));\r\n+    $query = (\"SELECT * FROM {$wpdb->prefix}wppm_project ORDER BY $orderby_proj_sql\");\r\n+    $where = \"\";\r\n+}else{\r\n+    $orderby_proj_sql = (sanitize_sql_orderby( \"project_name\" ));\r\n+    $query = (\"SELECT Proj.*\r\n+              FROM {$wpdb->prefix}wppm_project AS Proj\r\n+              Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Proj.id = proj_meta.project_id\r\n+              Left join {$wpdb->prefix}wppm_project_users proj_users ON Proj.id = proj_users.proj_id\r\n+              \");\r\n+    if($wppm_create_tasks_coworkers_permission!=1){          \r\n+        $where =  \" where ((FIND_IN_SET('$current_user->ID',Proj.users) AND proj_users.role_id=1) OR (Proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR (Proj.created_by='$cu_id')) Group by Proj.id ORDER BY '$orderby_proj_sql'\";\r\n+    }else{\r\n+        $where =  \" where ((FIND_IN_SET('$current_user->ID',Proj.users)) OR (Proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR (Proj.created_by='$cu_id')) Group by Proj.id ORDER BY '$orderby_proj_sql'\";\r\n+    }\r\n+}\r\n+$query = apply_filters(\"wppm_projects_list_in_create_task_query\",$query);\r\n+$where = apply_filters(\"wppm_projects_list_in_create_task_query_where\",$where);\r\n+$query.= $where;\r\n+$projects = $wpdb->get_results($query);\r\n+$start_date=\"\";\r\n+$end_date=\"\";\r\n+$wppm_task_list_view = get_option('wppm_default_task_list_view');\r\n+$wppm_default_task_date = get_option('wppm_default_task_date');\r\n+$wppm_task_fillter = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task\");\r\n+$flag = false;\r\n+if(!empty($wppm_task_fillter)){\r\n+    foreach($wppm_task_fillter as $key_filter=>$val_filter){\r\n+        $val_array = (array) $val_filter;\r\n+        $tusers =  $val_array['users'];\r\n+        $tusers_arr = explode(',',$tusers);\r\n+        $tproject_id = $val_array['project'];\r\n+        if(!empty($tusers) && in_array($current_user->ID,$tusers_arr)){\r\n+            $project_user_role = $wpdb->get_var( $wpdb->prepare( \"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$tproject_id,$cu_id));\r\n+            $tproject_id = absint( $tproject_id );\r\n+            $project_users = $wpdb->get_var( $wpdb->prepare( \"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$tproject_id));\r\n+            $project_users_arr = explode(',',(string)$project_users);\r\n+            if((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)){\r\n+                $flag= true;\r\n+                break;\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n+$cu_id = absint( $cu_id );\r\n+$project_creator = $wpdb->get_var( $wpdb->prepare( \"SELECT created_by FROM {$wpdb->prefix}wppm_project WHERE created_by = %d\",$cu_id ));\r\n+?>\r\n+\u003Cform class='wppm_add_new_task wppm_bootstrap' id=\"wppm_add_new_task\" method=\"post\">\r\n+    \u003Cdiv class=\"wppm_headers row\">\r\n+        \u003Cdiv class=\"col-sm-12\">\r\n+            \u003Cspan class=\"wppm-heading-inline\">\r\n+                \u003C?php echo esc_html_e('Create Task','taskbuilder');?>\r\n+            \u003C\u002Fspan>\r\n+            \u003C?php if($proj_id==0){ \r\n+                    if($current_user->has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',0) || ($flag==true) || ($project_creator!=\"\")){\r\n+                        $style = \"display:inline;\";\r\n+                    }else{\r\n+                        $style = \"display:none;\";\r\n+                    }\r\n+                    $style = apply_filters('wppm_add_new_task_btn_style',$style);\r\n+                    ?>\r\n+                    \u003Cspan onclick=\"wppm_add_new_task('',\u003C?php echo esc_attr($current_project_id); ?>)\" class=\"wppm_add_new_task_btn\" title=\"Create Task\" style=\u003C?php echo esc_attr($style);?>>\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus.svg'); ?>\" alt=\"plus-icon\">\u003C\u002Fspan>\r\n+            \u003C?php } ?>\r\n+            \u003C?php \r\n+                if(!empty($current_project_id)){\r\n+                    ?>\u003Cspan class=\"wppm-task-list-btn\" title=\"Task List\" onclick=\"wppm_get_project_tasks_kanban_view( \u003C?php echo esc_attr($current_project_id); ?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist.svg'); ?>\" alt=\"list-icon\">\u003C\u002Fspan>\u003C?php\r\n+                }else{\r\n+                    if($proj_id==0) { \r\n+                    $tstyle = \"display:inline;\";\r\n+                    $tstyle = apply_filters('wppm_task_list_btn_style',$tstyle);\r\n+                    ?>\r\n+                    \u003Cspan class=\"wppm-task-list-btn\" title=\"Task List\" onclick=\"wppm_get_task_list()\" style=\"\u003C?php echo esc_attr($tstyle);?>\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist.svg'); ?>\" alt=\"list-icon\">\u003C\u002Fspan>\r\n+                \u003C?php } else { ?>\r\n+                    \u003Cspan class=\"wppm-task-list-btn\" id=\"wppm_task_list_btn\" title=\"Task List\" onclick=\"wppm_get_project_tasks(\u003C?php echo esc_attr($proj_id)?>)\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Flist.svg'); ?>\" alt=\"list-icon\">\u003C\u002Fspan>\r\n+                \u003C?php }\r\n+                }\r\n+            do_action('wppm_after_add_new_task_button',$style);?>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv id='wppm_task_frm_field_container'>\r\n+        \u003Cdiv class=\"row\">\r\n+            \u003Cdiv class=\"wppm_task_frm_fields col-sm-6\">\r\n+                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                \u003C?php echo esc_html_e('Task Name','taskbuilder');?>\r\n+                    \u003C\u002Fb>\r\n+                    \u003Cspan style=\"color:#ff0000;\">*\u003C\u002Fspan>\r\n+                \u003C\u002Fspan>\u003Cbr>\r\n+                \u003Cinput name=\"name\" class=\"form-control\" id=\"wppm_task_name\" type=\"text\" value=\"\" size=\"40\" aria-required=\"true\">\u003Cbr>\r\n+            \u003C\u002Fdiv>\r\n+            \u003Cdiv class=\"wppm_task_frm_fields wppm_project_autocomplete_container col-sm-6\">\r\n+                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                    \u003C?php echo esc_html_e('Project','taskbuilder');?>\r\n+                    \u003C\u002Fb>\r\n+                \u003C\u002Fspan>\u003Cbr>\r\n+                \u003Cselect searchable=\"search here\" onchange=\"wppm_select_project()\" class=\"form-control\" size=\"40\" name=\"wppm_task_project\" id=\"wppm_task_project\">\r\n+                    \u003C?php \r\n+                        if($current_project_id != 0){\r\n+                            $current_project_name = $wpdb->get_var( $wpdb->prepare( \"SELECT project_name FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$current_project_id));\r\n+                            if($current_project_id && $current_project_name){\r\n+                                echo '\u003Coption value=\"'.esc_attr($current_project_id).'\" selected=\"selected\">'.esc_html($current_project_name).'\u003C\u002Foption>';\r\n+                            }\r\n+                        }\r\n+                        else{\r\n+                            if(!empty($projects)){\r\n+                                foreach($projects as $proj) { \r\n+                                    $project_id = esc_sql($proj->id);\r\n+                                    if($current_user->has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',0) || $wppm_current_user_capability=='wppm_admin'){\r\n+                                        ?>\r\n+                                        \u003Coption value=\"\u003C?php echo esc_attr($proj->id)?>\">\u003C?php echo esc_html($proj->project_name);?>\u003C\u002Foption>\u003C?php\r\n+                                    }\r\n+                                    else{\r\n+                                        $project_id = absint( $project_id );\r\n+                                        $cu_id      = absint( $cu_id );\r\n+                                        $project_user_role = $wpdb->get_var( $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$project_id, $cu_id));\r\n+                                        $project_users = $proj->users;\r\n+                                        $project_users_arr = explode(',',(string)$project_users);\r\n+                                        $project_creator_id = $wpdb->get_var( $wpdb->prepare( \"SELECT created_by FROM {$wpdb->prefix}wppm_project WHERE created_by = %d AND id = %d\",$cu_id,$project_id ));\r\n+                                        if(((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)) || ($project_creator_id!=\"\")){\r\n+                                            ?>\r\n+                                            \u003Coption value=\"\u003C?php echo esc_attr($proj->id)?>\">\u003C?php echo esc_html($proj->project_name);?>\u003C\u002Foption>\r\n+                                    \u003C?php } \r\n+                                    } \r\n+                                } \r\n+                            }\r\n+                        }?>\r\n+                \u003C\u002Fselect>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003C?php if($wppm_default_task_date==1){ ?>\r\n+            \u003Cdiv class=\"row\">\r\n+                \u003Cdiv class=\"wppm_task_frm_fields col-sm-6\">\r\n+                    \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                        \u003C?php echo esc_html_e('Start date','taskbuilder');?>\r\n+                        \u003C\u002Fb>\r\n+                    \u003C\u002Fspan>\u003Cbr>\r\n+                    \u003C?php $start_date = apply_filters( 'wppm_add_new_task_start_date',$start_date); ?>\r\n+                    \u003Cinput name=\"wppm_task_start_date\" class=\"form-control\" id=\"wppm_task_start_date\" type=\"text\" value=\"\u003C?php echo esc_attr( $start_date ); ?>\" size=\"40\" aria-required=\"true\">\u003Cbr>\r\n+                \u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"wppm_task_frm_fields col-sm-6\">\r\n+                    \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                        \u003C?php echo esc_html_e('End date','taskbuilder');?>\r\n+                        \u003C\u002Fb>\r\n+                    \u003C\u002Fspan>\u003Cbr>\r\n+                    \u003C?php $end_date = apply_filters( 'wppm_add_new_task_end_date',$end_date); ?>\r\n+                    \u003Cinput name=\"wppm_task_end_date\" id=\"wppm_task_end_date\" class=\"form-control\" type=\"text\" value=\"\u003C?php echo esc_attr( $end_date ); ?>\" size=\"40\" aria-required=\"true\">\u003Cbr>\r\n+                \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C?php } ?>\r\n+        \u003Cdiv class=\"row\">\r\n+            \u003Cdiv class=\"wppm_task_frm_fields col-sm-12\">\r\n+                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                    \u003C?php echo esc_html_e('Description','taskbuilder');?>\r\n+                    \u003C\u002Fb>\r\n+                \u003C\u002Fspan>\u003Cbr>\r\n+                \u003Ctextarea id=\"wppm_task_description\" name=\"wppm_task_description\">\r\n+                \u003C\u002Ftextarea>\r\n+                \u003Cbr>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"row\">\r\n+            \u003Cdiv class=\"wppm_task_frm_fields col-sm-12\">\r\n+                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                    \u003C?php echo esc_html_e('Priority','taskbuilder');?>\r\n+                    \u003C\u002Fb>\r\n+                \u003C\u002Fspan>\u003Cbr>\r\n+                \u003Cselect id=\"wppm_create_task_priority\" name=\"wppm_create_task_priority\" class=\"form-control\">\r\n+                    \u003Coption value=\"\">\u003C\u002Foption>\u003C?php \r\n+                    if(!empty($priorities)){\r\n+                        foreach ($priorities as $priority){\r\n+                            echo '\u003Coption value=\"'.esc_attr($priority->id).'\">'.esc_html(stripcslashes($priority->name)).'\u003C\u002Foption>';\r\n+                        }\r\n+                    }\r\n+                    ?>\r\n+                \u003C\u002Fselect>\u003Cbr>\u003Cbr>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv class=\"row\">\r\n+            \u003Cdiv class=\"wppm_task_frm_fields col-sm-12\">\r\n+                \u003Cspan class=\"wppm_form_field_label\">\u003Cb>\r\n+                    \u003C?php echo esc_html_e('Task Members','taskbuilder');?>\r\n+                    \u003C\u002Fb>\r\n+                \u003C\u002Fspan>\u003Cbr>\r\n+                \u003Cinput class=\"form-control wppm_assign_task_users ui-autocomplete-input\" name=\"wppm_assign_task_users\" type=\"text\" autocomplete=\"off\" placeholder=\"\u003C?php echo esc_attr__('Search User...','taskbuilder');?>\">\r\n+                \u003Cbr>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_display_task_users\" class=\"row\">\r\n+            \u003Cdiv class=\"col-sm-12\">\r\n+                \u003Cui class=\"wppm_filter_display_users_container\">\u003C\u002Fui>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+        \u003C?php do_action('wppm_after_task_fields_in_new_task_form');?>\r\n+        \u003Cdiv class=\"row\">\r\n+            \u003Cdiv class=\"wppm_frm_submit col-sm-12\">\r\n+                \u003Cbutton type=\"submit\" class=\"wppm-submit-btn\" id=\"wppm-submit-task-btn\" onclick=\"wppm_create_task(event)\">\u003C?php echo esc_html_e('Add Task','taskbuilder');?>\u003C\u002Fbutton>\r\n+                \u003C?php if($proj_id==0){ ?>\r\n+                    \u003Cbutton type=\"button\" class=\"wppm_reset_btn\" id=\"wppm_submit_task_reset_btn\" onclick=\"wppm_add_new_task()\">\u003C?php echo esc_html_e('Reset form','taskbuilder');?>\u003C\u002Fbutton>\r\n+                \u003C?php } else {?>\r\n+                    \u003Cbutton type=\"button\" class=\"wppm_reset_btn\" id=\"wppm_submit_task_reset_btn\" onclick=\"wppm_create_project_task(\u003C?php echo esc_attr($proj_id) ?>)\">\u003C?php echo esc_html_e('Reset form','taskbuilder');?>\u003C\u002Fbutton>\r\n+                \u003C?php } ?>\r\n+                \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_create_task\" \u002F>\r\n+            \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+\u003C\u002Fform>\r\n+\u003Cscript>\r\n+jQuery( document ).ready( function( jQuery ) {\r\n+    wppm_select_project();\r\n+    jQuery(\"#wppm_task_start_date\").flatpickr({\r\n+        enableTime: true,\r\n+        dateFormat: \"Y-m-d H:i\",\r\n+    });\r\n+    jQuery(\"#wppm_task_end_date\").flatpickr({\r\n+        enableTime: true,\r\n+        dateFormat: \"Y-m-d H:i\"\r\n+        \u002F\u002FminDate: startdate\r\n+    });\u003C?php\r\n+    if((!empty($wppm_rich_text_editor)) && ($wppm_rich_text_editor == 1)){ \r\n+        $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :\"\";\r\n+        $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :\"\";   \r\n+        $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :\"\";   \r\n+        $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :\"\";   \r\n+        $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)?  ' alignleft aligncenter alignright ' :\"\";   \r\n+        $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :\"\"; \r\n+        $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :\"\";     \r\n+        $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :\"\";     \r\n+        $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :\"\"; \r\n+        $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :\"\";     \r\n+        $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :\"\"; \r\n+        $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :\"\"; \r\n+        $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :\"\"; \r\n+        $toolbar = trim(\"$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough\");?>\r\n+        tinymce.remove();\r\n+        tinymce.init({ \r\n+        selector:'#wppm_task_description',\r\n+        body_id: 'wppm_task_description',\r\n+        directionality : '\u003C?php \u002F\u002Fecho 'rtl'; ?>',\r\n+        menubar: false,\r\n+        statusbar: false,\r\n+        height : '200',\r\n+        width  : '100%', \r\n+        plugins: [\r\n+            'lists link image directionality paste textcolor'\r\n+        ],\r\n+        image_advtab: true,\r\n+        toolbar: '\u003C?php echo esc_js(  $toolbar  ); ?>', \r\n+        branding: false,\r\n+        autoresize_bottom_margin: 20,\r\n+        browser_spellcheck : true,\r\n+        relative_urls : false,\r\n+        remove_script_host : false,\r\n+        paste_as_text: true,\r\n+        convert_urls : true,\r\n+        setup: function (editor) {\r\n+        }\r\n+        });\r\n+    \u003C?php } ?>\r\n+    jQuery(\"input[name='wppm_assign_task_users']\").keypress(function(e) {\r\n+        \u002F\u002FEnter key\r\n+        if (e.which == 13) {\r\n+            return false;\r\n+        }\r\n+    });\r\n+    jQuery( \".wppm_assign_task_users\" ).autocomplete({\r\n+        minLength: 1,\r\n+        appendTo: jQuery('.wppm_assign_task_users').parent(),\r\n+        source: function( request, response ) {\r\n+            var term = request.term;\r\n+            request = {\r\n+                action: 'wppm_filter_autocomplete',\r\n+                term : term,\r\n+                field : 'task_users_by_project_name',\r\n+                proj_id : jQuery('#wppm_task_project').val()\r\n+            }\r\n+            jQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\r\n+                response(data);\r\n+            });\r\n+        },\r\n+        select: function (event, ui) {\r\n+            var html_str = '\u003Cli class=\"wppm_filter_display_element\" style=\"list-style: none\">'\r\n+                                +'\u003Cdiv class=\"flex-container\">'\r\n+                                    +'\u003Cdiv class=\"wppm_filter_display_text\">'\r\n+                                        +ui.item.label\r\n+                                        +'\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"'+ui.item.user_id+'\">'\r\n+                                    +'\u003C\u002Fdiv>'\r\n+                                    +'\u003Cdiv class=\"wppm_filter_display_remove\" onclick=\"wppm_remove_user(this);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fcross.svg'); ?>\" alt=\"delete\">\u003C\u002Fdiv>'\r\n+                                +'\u003C\u002Fdiv>'\r\n+                            +'\u003C\u002Fli>';\r\n+            jQuery('#wppm_display_task_users .wppm_filter_display_users_container').append(html_str);\r\n+            jQuery(this).val(''); return false;\r\n+        }\r\n+    }).focus(function() {\r\n+        jQuery(this).autocomplete(\"search\", \"\");\r\n+    });\r\n+});\r\n+\r\n+jQuery('#wppm_task_project option:eq(0)').prop('selected',true);\r\n+jQuery('#wppm_task_project').select2();\r\n+jQuery(\"#wppm_add_new_task\").on(\"submit\", function (e) {\r\n+    e.preventDefault();\r\n+    location.reload();\r\n+});\r\n+\r\n+function wppm_remove_user(e){\r\n+  jQuery(e).parent().parent().remove();\r\n+}\r\n+\r\n+function wppm_select_project(){\r\n+  jQuery('.wppm_filter_display_element').hide();\r\n+  \u003C?php do_action('wppm_display_cf_by_project') ?>\r\n+}\r\n+\r\n+function wppm_create_task(e){\r\n+    if(!jQuery('#wppm_task_name').val()){\r\n+        alert(\"\u003C?php echo esc_js(__('Task title is required','taskbuilder'))?>\");\r\n+        e.preventDefault();\r\n+        return false;\r\n+    }\r\n+    \u003C?php \u002F\u002Fdo_action('wppm_create_task_js_function'); ?>\r\n+    var dataform = new FormData(jQuery('#wppm_add_new_task')[0]);\r\n+     \u002F\u002Fvar validationResult = true;\r\n+     var validation = {\r\n+        isValid: true\r\n+    };\r\n+    jQuery(document).trigger('wppm_create_task_js_function', [\r\n+        dataform,\r\n+        validation\r\n+    ]);\r\n+\r\n+    if(!validation.isValid){\r\n+        e.preventDefault();\r\n+        return false;\r\n+    }\r\n+    var is_tinymce = (typeof tinyMCE != \"undefined\") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();\r\n+    var description = is_tinymce && tinymce.get('wppm_task_description') ? tinyMCE.get('wppm_task_description').getContent() : jQuery('#wppm_task_description').val().trim();\r\n+    dataform.append('wppm_task_description', description);\r\n+    jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+    jQuery(document).trigger('wppm_create_task_dataform', [dataform]);\r\n+    \u003C?php \u002F\u002Fdo_action('wppm_create_task_dataform'); ?>\r\n+    jQuery.ajax({\r\n+        url: wppm_admin.ajax_url,\r\n+        type: 'POST',\r\n+        data: dataform,\r\n+        processData: false,\r\n+        contentType: false\r\n+    }) .done(function (response_str) {\r\n+   \u003C?php if($current_project_id != 0){ ?>\r\n+            wppm_get_project_tasks_kanban_view(\u003C?php echo (int)$current_project_id; ?>);\r\n+\u003C?php } elseif($wppm_task_list_view == 1){ ?>\r\n+            wppm_get_task_list();\r\n+\u003C?php } elseif($wppm_task_list_view == 0){ ?>\r\n+            wppm_display_grid_view();\r\n+\u003C?php } ?>\r\n+    });\r\n+}\r\n \u003C\u002Fscript>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_create_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_create_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_create_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_create_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,52 +1,52 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-\n-\u002F\u002F Task name\n-$name = isset($_POST['name']) ? sanitize_text_field(wp_unslash($_POST['name'])) : '';\n-if($name) $args['name'] = $name;\n-\n-\u002F\u002F Description\n-$task_description = '';\n-if ( !empty( $_POST['wppm_task_description'] ) ) {\n-    $task_description = wp_kses_post(\n-        wp_unslash( $_POST['wppm_task_description'] )\n-    );\n-}\n-if($task_description) $args['wppm_task_description'] = $task_description;\n-\n-\u002F\u002Fproject\n-$wppm_task_project = isset($_POST['wppm_task_project'])\n-    ? absint( wp_unslash( $_POST['wppm_task_project'] ) )\n-    : 0;\n-if($wppm_task_project) $args['wppm_task_project'] = $wppm_task_project;\n-\n-\u002F\u002FTask start date\n-$text = isset($_POST['wppm_task_start_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_start_date'])) : '';\n-if($text) $args['wppm_task_start_date'] = wp_date(\"Y-m-d H:i:s\" ,strtotime($text));\n-\n-\u002F\u002FTask end date\n-$text2 = isset($_POST['wppm_task_end_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_end_date'])) : '';\n-if($text2) $args['wppm_task_end_date'] = wp_date(\"Y-m-d H:i:s\" ,strtotime($text2));\n-\n-\u002F\u002F Priority\n-$task_priority = isset($_POST['wppm_create_task_priority']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_create_task_priority']))) : '';\n-if($task_priority) $args['wppm_create_task_priority'] = $task_priority;\n-\n-\u002F\u002FAssign user\n-$arrVal = array();\n-if ( isset( $_POST['user_names'] ) && is_array( $_POST['user_names'] ) ) {\n-    $arrVal = array_map(\n-        'absint',\n-        wp_unslash( $_POST['user_names'] )\n-    );\n-    $arrVal = array_unique( $arrVal );\n-}\n-if($arrVal) $args['user_names'] = $wppmfunction->sanitize_array($arrVal);\n-\n-$args = apply_filters( 'wppm_before_create_task_args', $args);\n-\n-$task_id = WPPM_Functions::create_task($args);\n-do_action('wppm_after_task_created', $task_id);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+\r\n+\u002F\u002F Task name\r\n+$name = isset($_POST['name']) ? sanitize_text_field(wp_unslash($_POST['name'])) : '';\r\n+if($name) $args['name'] = $name;\r\n+\r\n+\u002F\u002F Description\r\n+$task_description = '';\r\n+if ( !empty( $_POST['wppm_task_description'] ) ) {\r\n+    $task_description = wp_kses_post(\r\n+        wp_unslash( $_POST['wppm_task_description'] )\r\n+    );\r\n+}\r\n+if($task_description) $args['wppm_task_description'] = $task_description;\r\n+\r\n+\u002F\u002Fproject\r\n+$wppm_task_project = isset($_POST['wppm_task_project'])\r\n+    ? absint( wp_unslash( $_POST['wppm_task_project'] ) )\r\n+    : 0;\r\n+if($wppm_task_project) $args['wppm_task_project'] = $wppm_task_project;\r\n+\r\n+\u002F\u002FTask start date\r\n+$text = isset($_POST['wppm_task_start_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_start_date'])) : '';\r\n+if($text) $args['wppm_task_start_date'] = wp_date(\"Y-m-d H:i:s\" ,strtotime($text));\r\n+\r\n+\u002F\u002FTask end date\r\n+$text2 = isset($_POST['wppm_task_end_date']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_end_date'])) : '';\r\n+if($text2) $args['wppm_task_end_date'] = wp_date(\"Y-m-d H:i:s\" ,strtotime($text2));\r\n+\r\n+\u002F\u002F Priority\r\n+$task_priority = isset($_POST['wppm_create_task_priority']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_create_task_priority']))) : '';\r\n+if($task_priority) $args['wppm_create_task_priority'] = $task_priority;\r\n+\r\n+\u002F\u002FAssign user\r\n+$arrVal = array();\r\n+if ( isset( $_POST['user_names'] ) && is_array( $_POST['user_names'] ) ) {\r\n+    $arrVal = array_map(\r\n+        'absint',\r\n+        wp_unslash( $_POST['user_names'] )\r\n+    );\r\n+    $arrVal = array_unique( $arrVal );\r\n+}\r\n+if($arrVal) $args['user_names'] = $wppmfunction->sanitize_array($arrVal);\r\n+\r\n+$args = apply_filters( 'wppm_before_create_task_args', $args);\r\n+\r\n+$task_id = WPPM_Functions::create_task($args);\r\n+do_action('wppm_after_task_created', $task_id);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_priority.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_priority.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_priority.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_priority.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,43 +1,43 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$task_ids  = isset($_POST['task_ids']) ? $wppmfunction->sanitize_array($_POST['task_ids']) : '' ;\n-$priorities = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities\");\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_bulk_task_change_priority\" method=\"post\">\n-\t\u003Cdiv class=\"form-group\">\n-\t\t\u003Clabel for=\"wppm_task_priority\" class=\"wppm_task_priority\">\u003C?php echo esc_html_e('Task Priority','taskbuilder');?>\u003C\u002Flabel>\n-\t\t\u003Cselect class=\"form-control\" name=\"wppm_task_priority\">\n-\t\t\t\u003C?php\n-\t\t\tif(!empty($priorities)){\n-\t\t\t\tforeach ( $priorities as $pri ) :\n-\t\t\t\t\techo '\u003Coption value=\"'.esc_attr($pri->id).'\">'.esc_html($pri->name).'\u003C\u002Foption>';\n-\t\t\t\tendforeach;\n-\t\t\t}\n-\t\t\t?>\n-\t\t\u003C\u002Fselect>\n-\t\u003C\u002Fdiv>\u003C?php\n-        do_action('wppm_after_edit_bulk_change_task_priority',$task_ids); ?>\n-        \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_bulk_change_task_priority\" \u002F>\n-        \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_bulk_change_task_priority' ) ); ?>\">\n-        \u003Cinput type=\"hidden\" id=\"wppm_task_ids\" name=\"task_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $task_ids ) ); ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003C?php\n-$body = ob_get_clean();\n-\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\" onclick=\"wppm_task_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\" onclick=\"wppm_set_bulk_change_task_priority();\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$task_ids  = isset($_POST['task_ids']) ? $wppmfunction->sanitize_array($_POST['task_ids']) : '' ;\r\n+$priorities = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities\");\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_bulk_task_change_priority\" method=\"post\">\r\n+\t\u003Cdiv class=\"form-group\">\r\n+\t\t\u003Clabel for=\"wppm_task_priority\" class=\"wppm_task_priority\">\u003C?php echo esc_html_e('Task Priority','taskbuilder');?>\u003C\u002Flabel>\r\n+\t\t\u003Cselect class=\"form-control\" name=\"wppm_task_priority\">\r\n+\t\t\t\u003C?php\r\n+\t\t\tif(!empty($priorities)){\r\n+\t\t\t\tforeach ( $priorities as $pri ) :\r\n+\t\t\t\t\techo '\u003Coption value=\"'.esc_attr($pri->id).'\">'.esc_html($pri->name).'\u003C\u002Foption>';\r\n+\t\t\t\tendforeach;\r\n+\t\t\t}\r\n+\t\t\t?>\r\n+\t\t\u003C\u002Fselect>\r\n+\t\u003C\u002Fdiv>\u003C?php\r\n+        do_action('wppm_after_edit_bulk_change_task_priority',$task_ids); ?>\r\n+        \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_bulk_change_task_priority\" \u002F>\r\n+        \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_bulk_change_task_priority' ) ); ?>\">\r\n+        \u003Cinput type=\"hidden\" id=\"wppm_task_ids\" name=\"task_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $task_ids ) ); ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\" onclick=\"wppm_task_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\" onclick=\"wppm_set_bulk_change_task_priority();\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,43 +1,43 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$task_ids  = isset($_POST['task_ids']) ? $wppmfunction->sanitize_array($_POST['task_ids']) : '' ;\n-$statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses\");\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_bulk_task_change_status\" method=\"post\">\n-\t\u003Cdiv class=\"form-group\">\n-\t\t\u003Clabel for=\"wppm_task_status\" class=\"wppm_task_status\">\u003C?php echo esc_html_e('Task Status','taskbuilder');?>\u003C\u002Flabel>\n-\t\t\u003Cselect class=\"form-control\" name=\"wppm_task_status\">\n-\t\t\t\u003C?php\n-\t\t\tif(!empty($statuses)){\n-\t\t\t\tforeach ( $statuses as $status ) :\n-\t\t\t\t\techo '\u003Coption value=\"'.esc_attr($status->id).'\">'.esc_html($status->name).'\u003C\u002Foption>';\n-\t\t\t\tendforeach;\n-\t\t\t}\n-\t\t\t?>\n-\t\t\u003C\u002Fselect>\n-\t\u003C\u002Fdiv>\u003C?php\n-        do_action('wppm_after_edit_bulk_change_task_status',$task_ids); ?>\n-        \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_bulk_change_task_status\" \u002F>\n-        \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_bulk_change_task_status' ) ); ?>\">\n-        \u003Cinput type=\"hidden\" id=\"wppm_task_ids\" name=\"task_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $task_ids ) ); ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003C?php\n-$body = ob_get_clean();\n-\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\" onclick=\"wppm_task_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\" onclick=\"wppm_set_bulk_change_task_status();\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-\n-$output = array(\n-  'body'   => $body,\n-  'footer' => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$task_ids  = isset($_POST['task_ids']) ? $wppmfunction->sanitize_array($_POST['task_ids']) : '' ;\r\n+$statuses = $wpdb->get_results(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses\");\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_bulk_task_change_status\" method=\"post\">\r\n+\t\u003Cdiv class=\"form-group\">\r\n+\t\t\u003Clabel for=\"wppm_task_status\" class=\"wppm_task_status\">\u003C?php echo esc_html_e('Task Status','taskbuilder');?>\u003C\u002Flabel>\r\n+\t\t\u003Cselect class=\"form-control\" name=\"wppm_task_status\">\r\n+\t\t\t\u003C?php\r\n+\t\t\tif(!empty($statuses)){\r\n+\t\t\t\tforeach ( $statuses as $status ) :\r\n+\t\t\t\t\techo '\u003Coption value=\"'.esc_attr($status->id).'\">'.esc_html($status->name).'\u003C\u002Foption>';\r\n+\t\t\t\tendforeach;\r\n+\t\t\t}\r\n+\t\t\t?>\r\n+\t\t\u003C\u002Fselect>\r\n+\t\u003C\u002Fdiv>\u003C?php\r\n+        do_action('wppm_after_edit_bulk_change_task_status',$task_ids); ?>\r\n+        \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_bulk_change_task_status\" \u002F>\r\n+        \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_bulk_change_task_status' ) ); ?>\">\r\n+        \u003Cinput type=\"hidden\" id=\"wppm_task_ids\" name=\"task_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $task_ids ) ); ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\" onclick=\"wppm_task_modal_close();\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\" onclick=\"wppm_set_bulk_change_task_status();\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+  'body'   => $body,\r\n+  'footer' => $footer\r\n+);\r\n+\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_delete_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_delete_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_delete_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_delete_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,30 +1,30 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$task_ids  = isset($_POST['task_ids']) ? $wppmfunction->sanitize_array($_POST['task_ids']) : '' ;\n-$wppm_users_role = get_option('wppm_user_role');\n-ob_start();\n-?>\n-\u003Cform id=\"frm_delete_bulk_tasks\">\n-    \u003Cdiv class=\"form-group\">\n-        \u003Cp>\u003C?php echo esc_html_e('Are you sure to delete these tasks?','taskbuilder');?>\u003C\u002Fp>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_delete_bulk_tasks\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_set_delete_bulk_tasks'))?>\">\n-    \u003Cinput type=\"hidden\" id=\"wppm_task_ids\" name=\"task_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $task_ids ) ); ?>\" \u002F>\n-\u003C\u002Fform>\n-\u003C?php\n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\"  onclick=\"wppm_task_modal_close();\">\u003C?php echo esc_html_e('Cancel','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\" onclick=\"wppm_set_delete_bulk_tasks();\">\u003C?php echo esc_html_e('Confirm','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-$response = array(\n-    'body'      => $body,\n-    'footer'    => $footer\n-);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$task_ids  = isset($_POST['task_ids']) ? $wppmfunction->sanitize_array($_POST['task_ids']) : '' ;\r\n+$wppm_users_role = get_option('wppm_user_role');\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_delete_bulk_tasks\">\r\n+    \u003Cdiv class=\"form-group\">\r\n+        \u003Cp>\u003C?php echo esc_html_e('Are you sure to delete these tasks?','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_delete_bulk_tasks\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_set_delete_bulk_tasks'))?>\">\r\n+    \u003Cinput type=\"hidden\" id=\"wppm_task_ids\" name=\"task_ids\" value=\"\u003C?php echo esc_attr( implode( ',', $task_ids ) ); ?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\"  onclick=\"wppm_task_modal_close();\">\u003C?php echo esc_html_e('Cancel','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\" onclick=\"wppm_set_delete_bulk_tasks();\">\u003C?php echo esc_html_e('Confirm','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+$response = array(\r\n+    'body'      => $body,\r\n+    'footer'    => $footer\r\n+);\r\n echo wp_json_encode($response);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_delete_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_delete_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_delete_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_delete_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,38 +1,38 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user,$wppmfunction;\n-$id = isset($_POST['id']) ? sanitize_text_field(wp_unslash($_POST['id'])) : '';\n-$proj_id = isset($_POST['proj_id']) ? sanitize_text_field(wp_unslash($_POST['proj_id'])) : '';\n-$project_id = isset($_POST['project_id']) ? sanitize_text_field(wp_unslash($_POST['project_id'])) : '';\n-$task_data = $wppmfunction->get_task($id);\n-$project_data = $wppmfunction->get_project($proj_id);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if(!(($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('delete_task',$id)) || $wppm_current_user_capability == 'wppm_admin'|| $project_data['created_by']==$current_user->ID )){\n-    exit;\n-}\n-ob_start();\n-?>\n-\u003Cform id=\"frm_delete_task\">\n-    \u003Cdiv class=\"form-group\">\n-        \u003Cp>\u003C?php echo esc_html_e('Are you sure to delete this task?','taskbuilder');?>\u003C\u002Fp>\n-    \u003C\u002Fdiv>\n-    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_delete_task\" \u002F>\n-    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_set_delete_task'))?>\">\n-    \u003Cinput type=\"hidden\" name=\"task_id\" value=\"\u003C?php echo (esc_attr($id))?>\" \u002F>\n-\u003C\u002Fform>\n-\u003C?php\n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo (($proj_id!=\"0\"))?'wppm_popup_close':'wppm_task_popup_close'?>\"  onclick=\"\u003C?php echo (($proj_id!=0))?'wppm_modal_close();':'wppm_task_modal_close();'?>\">\u003C?php echo esc_html_e('Cancel','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\")?'wppm_popup_action':'wppm_task_popup_action'?>\" onclick=\"wppm_set_delete_task(\u003C?php echo esc_attr($proj_id) ?>, \u003C?php echo esc_attr($project_id) ?>);\">\u003C?php echo esc_html_e('Confirm','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-$response = array(\n-    'body'      => $body,\n-    'footer'    => $footer\n-);\n-echo wp_json_encode($response);\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user,$wppmfunction;\r\n+$id = isset($_POST['id']) ? sanitize_text_field(wp_unslash($_POST['id'])) : '';\r\n+$proj_id = isset($_POST['proj_id']) ? sanitize_text_field(wp_unslash($_POST['proj_id'])) : '';\r\n+$project_id = isset($_POST['project_id']) ? sanitize_text_field(wp_unslash($_POST['project_id'])) : '';\r\n+$task_data = $wppmfunction->get_task($id);\r\n+$project_data = $wppmfunction->get_project($proj_id);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if(!(($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('delete_task',$id)) || $wppm_current_user_capability == 'wppm_admin'|| $project_data['created_by']==$current_user->ID )){\r\n+    exit;\r\n+}\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_delete_task\">\r\n+    \u003Cdiv class=\"form-group\">\r\n+        \u003Cp>\u003C?php echo esc_html_e('Are you sure to delete this task?','taskbuilder');?>\u003C\u002Fp>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_delete_task\" \u002F>\r\n+    \u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce('wppm_set_delete_task'))?>\">\r\n+    \u003Cinput type=\"hidden\" name=\"task_id\" value=\"\u003C?php echo (esc_attr($id))?>\" \u002F>\r\n+\u003C\u002Fform>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo (($proj_id!=\"0\"))?'wppm_popup_close':'wppm_task_popup_close'?>\"  onclick=\"\u003C?php echo (($proj_id!=0))?'wppm_modal_close();':'wppm_task_modal_close();'?>\">\u003C?php echo esc_html_e('Cancel','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\")?'wppm_popup_action':'wppm_task_popup_action'?>\" onclick=\"wppm_set_delete_task(\u003C?php echo esc_attr($proj_id) ?>, \u003C?php echo esc_attr($project_id) ?>);\">\u003C?php echo esc_html_e('Confirm','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+$response = array(\r\n+    'body'      => $body,\r\n+    'footer'    => $footer\r\n+);\r\n+echo wp_json_encode($response);\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_task_users.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_task_users.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_task_users.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_get_task_users.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,119 +1,119 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-$wppm_users_role = get_option('wppm_user_role');\n-$settings = get_option(\"wppm-ap-modal\");\n-$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\n-$proj_id = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\n-if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('assign_task_users',$task_id))) {exit;}\n-$task = $wpdb->get_row( \"SELECT * FROM {$wpdb->prefix}wppm_task where id = '\".esc_sql($task_id).\"'\" );\n-$project_data = $wppmfunction->get_project($task->project);\n-if(!empty($project_data['users'])){\n-\t$proj_users = explode(',',$project_data['users']);\n-}\n-if($task->users != null){\n-\t$users = explode(\",\",$task->users);\n-}\n-ob_start();\n-?>\n-\u003Cform id=\"frm_get_task_users\">\n-\t\u003Cdiv id=\"wppm_get_task_users\">\n-\t\t\u003Cinput type=\"text\" id=\"wppm_task_user_name\" class=\"wppm_task_user_name form-control regi_user_autocomplete ui-autocomplete-input\" name=\"task_user_name\" autocomplete=\"off\" placeholder=\"\u003C?php echo esc_attr__('Search User...','taskbuilder');?>\">\n-\t\t\u003Cdiv class=\"wppm_filter_display_container\" id=\"wppm_task_users_display_container\">\n-\t\t\u003C?php \n-\t\t\tif(!empty($users)){\n-\t\t\t\tforeach($users as $user){ \n-\t\t\t\t\tif( (!empty($proj_users)) && in_array($user,$proj_users)){\n-\t\t\t\t\t\t?>\n-\t\t\t\t\t\t\u003Cdiv id=\"wppm_task_user_display_container_\u003C?php echo esc_attr($user)?>\" class=\"row wppm_task_user_display_container\">\n-\t\t\t\t\t\t\t\u003C?php\n-\t\t\t\t\t\t\t$userdata = get_userdata( $user ); ?>\n-\t\t\t\t\t\t\t\u003Cdiv class=\"flex-container col-sm-4\">\n-\t\t\t\t\t\t\t\t\u003Cspan class=\"wppm_filter_display_text\">\n-\t\t\t\t\t\t\t\t\t\u003C?php echo esc_html($userdata->display_name); ?>\n-\t\t\t\t\t\t\t\t\t\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"\u003C?php echo esc_attr($user) ?>\">\n-\t\t\t\t\t\t\t\t\u003C\u002Fspan>\n-\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\t\u003Cdiv class=\"col-sm-4 wppm_delete_user_icon\">\n-\t\t\t\t\t\t\t\t\u003Cspan onclick=\"wppm_remove_task_user_filter(\u003C?php echo esc_attr($user)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\n-\t\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\t\u003C\u002Fdiv>\n-\t\t\t\t\t\u003C?php } ?>\n-\t\t\t\u003C?php } \n-\t\t\t} else{\n-\t\t\t\t?>\u003Cspan id=\"wppm_assign_to_none_task\">\u003C?php echo esc_html_e('None','taskbuilder');?> \u003C\u002Fspan>\u003C?php\n-\t\t\t} ?>\n-\t\t\u003C\u002Fdiv>\n-\t\t\u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_task_users\" \u002F>\n-\t\t\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_task_users' ) ); ?>\">\n-\t\t\u003Cinput type=\"hidden\" id=\"wppm_task_id\" name=\"task_id\" value=\"\u003C?php echo esc_attr($task_id) ?>\" \u002F>\n-\t\u003C\u002Fdiv>\n-\u003C\u002Fform>\n-\u003Cstyle>\n-li {\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\n-  }\n-\u003C\u002Fstyle>\n-\u003Cscript>\n-jQuery(document).ready(function(){\n-\tjQuery(\"input[name='task_user_name']\").keypress(function(e) {\n-\t\t\u002F\u002FEnter key\n-\t\tif (e.which == 13) {\n-\t\t\treturn false;\n-\t\t}\n-\t});\n-\tjQuery( \".wppm_task_user_name\" ).autocomplete({\n-\t\tminLength: 1,\n-\t\tappendTo: jQuery('.wppm_task_user_name').parent(),\n-\t\tsource: function( request, response ) {\n-\t\t\tvar term = request.term;\n-\t\t\trequest = {\n-\t\t\t\taction: 'wppm_filter_autocomplete',\n-\t\t\t\tterm : term,\n-\t\t\t\tfield : 'task_user_name',\n-\t\t\t\ttask_id:\u003C?php echo esc_attr($task_id) ?>,\n-\t\t\t\tproj_id:\u003C?php echo esc_attr($proj_id) ?>\n-\t\t\t}\n-\t\t\tjQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\n-\t\t\t\tresponse(data);\n-\t\t\t});\n-\t\t},\n-\t\tselect: function (event, ui) {\n-\t\t\tvar html_str = '\u003Cdiv id=\"wppm_task_user_display_container_'+ui.item.user_id+'\" class=\"row wppm_task_user_display_container\">'\n-\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"flex-container col-sm-4\">'\n-\t\t\t\t\t\t\t\t\t+'\u003Cspan class=\"wppm_filter_display_text\">'\n-\t\t\t\t\t\t\t\t\t\t+ui.item.label\n-\t\t\t\t\t\t\t\t\t\t+'\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"'+ui.item.user_id+'\">'\n-\t\t\t\t\t\t\t\t\t+'\u003C\u002Fspan>'\n-\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\n-\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-4 wppm_delete_user_icon\">'\n-\t\t\t\t\t\t\t\t\t+'\u003Cspan onclick=\"wppm_remove_task_user_filter('+ui.item.user_id+');\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>'\n-\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\t\n-\t\t\t\t\t\t\t+'\u003C\u002Fdiv>';\n-\t\t\tjQuery('#wppm_assign_to_none_task').hide();\n-\t\t\tjQuery('#wppm_get_task_users #wppm_task_users_display_container').append(html_str);\n-\t\t\tjQuery(this).val(''); return false;\n-\t\t}\n-\t}).focus(function() {\n-\t\tjQuery(this).autocomplete(\"search\", \"\");\n-\t});\n-\n-});\n-\u003C\u002Fscript>\n-\u003C?php\n-$body = ob_get_clean();\n-ob_start();\n-?>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_close': 'wppm_task_popup_close' ?> \" onclick=\"\u003C?php echo ($proj_id!=0) ? \"wppm_modal_close()\":\"wppm_task_modal_close()\"?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_action': 'wppm_task_popup_action' ?> \" onclick=\"wppm_set_task_users(\u003C?php echo esc_attr($proj_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\n-\u003C?php\n-$footer = ob_get_clean();\n-\n-$output = array(\n-    'body'      => $body,\n-    'footer'    => $footer\n-);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+$wppm_users_role = get_option('wppm_user_role');\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+$task_id  = isset($_POST['task_id']) ? absint(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;\r\n+$proj_id = isset($_POST['proj_id']) ? absint(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;\r\n+if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('assign_task_users',$task_id))) {exit;}\r\n+$task = $wpdb->get_row( \"SELECT * FROM {$wpdb->prefix}wppm_task where id = '\".esc_sql($task_id).\"'\" );\r\n+$project_data = $wppmfunction->get_project($task->project);\r\n+if(!empty($project_data['users'])){\r\n+\t$proj_users = explode(',',$project_data['users']);\r\n+}\r\n+if($task->users != null){\r\n+\t$users = explode(\",\",$task->users);\r\n+}\r\n+ob_start();\r\n+?>\r\n+\u003Cform id=\"frm_get_task_users\">\r\n+\t\u003Cdiv id=\"wppm_get_task_users\">\r\n+\t\t\u003Cinput type=\"text\" id=\"wppm_task_user_name\" class=\"wppm_task_user_name form-control regi_user_autocomplete ui-autocomplete-input\" name=\"task_user_name\" autocomplete=\"off\" placeholder=\"\u003C?php echo esc_attr__('Search User...','taskbuilder');?>\">\r\n+\t\t\u003Cdiv class=\"wppm_filter_display_container\" id=\"wppm_task_users_display_container\">\r\n+\t\t\u003C?php \r\n+\t\t\tif(!empty($users)){\r\n+\t\t\t\tforeach($users as $user){ \r\n+\t\t\t\t\tif( (!empty($proj_users)) && in_array($user,$proj_users)){\r\n+\t\t\t\t\t\t?>\r\n+\t\t\t\t\t\t\u003Cdiv id=\"wppm_task_user_display_container_\u003C?php echo esc_attr($user)?>\" class=\"row wppm_task_user_display_container\">\r\n+\t\t\t\t\t\t\t\u003C?php\r\n+\t\t\t\t\t\t\t$userdata = get_userdata( $user ); ?>\r\n+\t\t\t\t\t\t\t\u003Cdiv class=\"flex-container col-sm-4\">\r\n+\t\t\t\t\t\t\t\t\u003Cspan class=\"wppm_filter_display_text\">\r\n+\t\t\t\t\t\t\t\t\t\u003C?php echo esc_html($userdata->display_name); ?>\r\n+\t\t\t\t\t\t\t\t\t\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"\u003C?php echo esc_attr($user) ?>\">\r\n+\t\t\t\t\t\t\t\t\u003C\u002Fspan>\r\n+\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\t\u003Cdiv class=\"col-sm-4 wppm_delete_user_icon\">\r\n+\t\t\t\t\t\t\t\t\u003Cspan onclick=\"wppm_remove_task_user_filter(\u003C?php echo esc_attr($user)?>);\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>\r\n+\t\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\t\t\u003C?php } ?>\r\n+\t\t\t\u003C?php } \r\n+\t\t\t} else{\r\n+\t\t\t\t?>\u003Cspan id=\"wppm_assign_to_none_task\">\u003C?php echo esc_html_e('None','taskbuilder');?> \u003C\u002Fspan>\u003C?php\r\n+\t\t\t} ?>\r\n+\t\t\u003C\u002Fdiv>\r\n+\t\t\u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_task_users\" \u002F>\r\n+\t\t\u003Cinput type=\"hidden\" name=\"_ajax_nonce\" value=\"\u003C?php echo esc_attr( wp_create_nonce( 'wppm_set_task_users' ) ); ?>\">\r\n+\t\t\u003Cinput type=\"hidden\" id=\"wppm_task_id\" name=\"task_id\" value=\"\u003C?php echo esc_attr($task_id) ?>\" \u002F>\r\n+\t\u003C\u002Fdiv>\r\n+\u003C\u002Fform>\r\n+\u003Cstyle>\r\n+li {\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>!important;\r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript>\r\n+jQuery(document).ready(function(){\r\n+\tjQuery(\"input[name='task_user_name']\").keypress(function(e) {\r\n+\t\t\u002F\u002FEnter key\r\n+\t\tif (e.which == 13) {\r\n+\t\t\treturn false;\r\n+\t\t}\r\n+\t});\r\n+\tjQuery( \".wppm_task_user_name\" ).autocomplete({\r\n+\t\tminLength: 1,\r\n+\t\tappendTo: jQuery('.wppm_task_user_name').parent(),\r\n+\t\tsource: function( request, response ) {\r\n+\t\t\tvar term = request.term;\r\n+\t\t\trequest = {\r\n+\t\t\t\taction: 'wppm_filter_autocomplete',\r\n+\t\t\t\tterm : term,\r\n+\t\t\t\tfield : 'task_user_name',\r\n+\t\t\t\ttask_id:\u003C?php echo esc_attr($task_id) ?>,\r\n+\t\t\t\tproj_id:\u003C?php echo esc_attr($proj_id) ?>\r\n+\t\t\t}\r\n+\t\t\tjQuery.getJSON( wppm_admin.ajax_url, request, function( data, status, xhr ) {\r\n+\t\t\t\tresponse(data);\r\n+\t\t\t});\r\n+\t\t},\r\n+\t\tselect: function (event, ui) {\r\n+\t\t\tvar html_str = '\u003Cdiv id=\"wppm_task_user_display_container_'+ui.item.user_id+'\" class=\"row wppm_task_user_display_container\">'\r\n+\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"flex-container col-sm-4\">'\r\n+\t\t\t\t\t\t\t\t\t+'\u003Cspan class=\"wppm_filter_display_text\">'\r\n+\t\t\t\t\t\t\t\t\t\t+ui.item.label\r\n+\t\t\t\t\t\t\t\t\t\t+'\u003Cinput type=\"hidden\" name=\"user_names[]\" value=\"'+ui.item.user_id+'\">'\r\n+\t\t\t\t\t\t\t\t\t+'\u003C\u002Fspan>'\r\n+\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\r\n+\t\t\t\t\t\t\t\t+'\u003Cdiv class=\"col-sm-4 wppm_delete_user_icon\">'\r\n+\t\t\t\t\t\t\t\t\t+'\u003Cspan onclick=\"wppm_remove_task_user_filter('+ui.item.user_id+');\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash.svg'); ?>\" alt=\"delete\">\u003C\u002Fspan>'\r\n+\t\t\t\t\t\t\t\t+'\u003C\u002Fdiv>'\t\r\n+\t\t\t\t\t\t\t+'\u003C\u002Fdiv>';\r\n+\t\t\tjQuery('#wppm_assign_to_none_task').hide();\r\n+\t\t\tjQuery('#wppm_get_task_users #wppm_task_users_display_container').append(html_str);\r\n+\t\t\tjQuery(this).val(''); return false;\r\n+\t\t}\r\n+\t}).focus(function() {\r\n+\t\tjQuery(this).autocomplete(\"search\", \"\");\r\n+\t});\r\n+\r\n+});\r\n+\u003C\u002Fscript>\r\n+\u003C?php\r\n+$body = ob_get_clean();\r\n+ob_start();\r\n+?>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_close': 'wppm_task_popup_close' ?> \" onclick=\"\u003C?php echo ($proj_id!=0) ? \"wppm_modal_close()\":\"wppm_task_modal_close()\"?>\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003Cbutton type=\"button\" class=\"btn \u003C?php echo ($proj_id!=\"0\") ? 'wppm_popup_action': 'wppm_task_popup_action' ?> \" onclick=\"wppm_set_task_users(\u003C?php echo esc_attr($proj_id) ?>);\">\u003C?php echo esc_html_e('Save','taskbuilder');?>\u003C\u002Fbutton>\r\n+\u003C?php\r\n+$footer = ob_get_clean();\r\n+\r\n+$output = array(\r\n+    'body'      => $body,\r\n+    'footer'    => $footer\r\n+);\r\n+\r\n echo wp_json_encode($output);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_bulk_change_task_priority.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_bulk_change_task_priority.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_bulk_change_task_priority.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_bulk_change_task_priority.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,38 +1,38 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_bulk_change_task_priority', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$task_ids = isset( $_POST['task_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['task_ids'] ) ) ) ) ) : array();\n-if ( ! $task_ids ) {\n-    wp_send_json_error( 'Missing task ids', 400 );\n-}\n-$task_priority   = isset($_POST['wppm_task_priority']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_task_priority']))) : 0 ;\n-if(!empty($task_ids)){\n-    foreach($task_ids as $task_id){\n-        $task_data = $wppmfunction->get_task($task_id);\n-        $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-        if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {\n-            if( !$task_priority ){\n-                die();\n-            }\n-            $old_priority_id   \t= $task_data['priority'];\n-\n-            if( $task_priority && $task_priority != $old_priority_id){\n-                $wppmfunction->change_priority( $task_id, $task_priority);\n-                $change_priority_value = array('prev_prio'=>\"$task_data[priority]\",'new_prio'=>\"$task_priority\");\n-                $change_priority_obj = serialize($change_priority_value);\n-                $log_values = array('task_id'=>esc_sql($task_id),'body'=>$change_priority_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>esc_sql($current_user->ID));\n-                $wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\n-                $log_id = $wpdb->insert_id;\n-                $task_log_values = array('task_id'=>esc_sql($task_id),'comment_id'=>esc_sql($log_id),'comment_type'=>'change_task_priority');\n-                $wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\n-            }\n-        }\n-    }\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_bulk_change_task_priority', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$task_ids = isset( $_POST['task_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['task_ids'] ) ) ) ) ) : array();\r\n+if ( ! $task_ids ) {\r\n+    wp_send_json_error( 'Missing task ids', 400 );\r\n+}\r\n+$task_priority   = isset($_POST['wppm_task_priority']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_task_priority']))) : 0 ;\r\n+if(!empty($task_ids)){\r\n+    foreach($task_ids as $task_id){\r\n+        $task_data = $wppmfunction->get_task($task_id);\r\n+        $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+        if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {\r\n+            if( !$task_priority ){\r\n+                die();\r\n+            }\r\n+            $old_priority_id   \t= $task_data['priority'];\r\n+\r\n+            if( $task_priority && $task_priority != $old_priority_id){\r\n+                $wppmfunction->change_priority( $task_id, $task_priority);\r\n+                $change_priority_value = array('prev_prio'=>\"$task_data[priority]\",'new_prio'=>\"$task_priority\");\r\n+                $change_priority_obj = serialize($change_priority_value);\r\n+                $log_values = array('task_id'=>esc_sql($task_id),'body'=>$change_priority_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>esc_sql($current_user->ID));\r\n+                $wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\r\n+                $log_id = $wpdb->insert_id;\r\n+                $task_log_values = array('task_id'=>esc_sql($task_id),'comment_id'=>esc_sql($log_id),'comment_type'=>'change_task_priority');\r\n+                $wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n do_action('wppm_after_set_bulk_change_task_priority',$task_ids, $task_priority);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_bulk_change_task_status.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_bulk_change_task_status.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_bulk_change_task_status.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_bulk_change_task_status.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,52 +1,52 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $wpdb,$wppmfunction,$current_user;\n-if ( check_ajax_referer( 'wppm_set_bulk_change_task_status', '_ajax_nonce', false ) != 1 ) {\n-    wp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-\n-$task_ids = isset( $_POST['task_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['task_ids'] ) ) ) ) ) : array();\n-if ( ! $task_ids ) {\n-    wp_send_json_error( 'Missing task ids', 400 );\n-}\n-$flag= false;\n-$cu_id = absint($current_user->ID);\n-$task_status = isset( $_POST['wppm_task_status']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_task_status']))) : ''; \n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if(!empty($task_ids)){\n-    foreach($task_ids as $task_id){\n-        $task_data = $wppmfunction->get_task($task_id);\n-        $tusers =  $task_data['users'];\n-        $tusers_arr = explode(',',$tusers);\n-        $tproject_id = absint($task_data['project']);\n-        if(!empty($tusers) && in_array($current_user->ID,$tusers_arr)){\n-            $project_user_role = $wpdb->get_var( $wpdb->prepare( \"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $tproject_id, $cu_id ) );\n-            $project_users = $wpdb->get_var( $wpdb->prepare( \"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $tproject_id ) );\n-            $project_users_arr = explode(',',(string)$project_users);\n-            if(((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr))){\n-                $flag = true;\n-            }\n-        }\n-        if($current_user->has_cap('manage_options') || $wppm_current_user_capability == ('wppm_admin')  || ($flag==true) || ($wppmfunction->has_permission('change_task_status',$task_id))!=\"\"){\n-            $status_id   = isset($_POST['wppm_task_status']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_task_status']))) : 0 ;\n-            if( !$status_id ){\n-                die();\n-            }\n-            $old_status_id = $task_data['status'];\n-            if($status_id && $status_id!=$old_status_id){\n-                $wppmfunction->change_status( $task_id, $status_id);\n-                $task_id = esc_sql($task_id);\n-                $change_task_value = array('prev_status'=>$task_data['status'],'new_status'=>$status_id);\n-                $change_task_obj = serialize($change_task_value);\n-                $log_values = array('task_id'=>\"$task_id\",'body'=>$change_task_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>esc_sql($current_user->ID) );\n-                $wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\n-                $log_id = esc_sql($wpdb->insert_id);\n-                $task_log_values = array('task_id'=>\"$task_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_task_status');\n-                $wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\n-            }\n-        }\n-    }\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $wpdb,$wppmfunction,$current_user;\r\n+if ( check_ajax_referer( 'wppm_set_bulk_change_task_status', '_ajax_nonce', false ) != 1 ) {\r\n+    wp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+\r\n+$task_ids = isset( $_POST['task_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['task_ids'] ) ) ) ) ) : array();\r\n+if ( ! $task_ids ) {\r\n+    wp_send_json_error( 'Missing task ids', 400 );\r\n+}\r\n+$flag= false;\r\n+$cu_id = absint($current_user->ID);\r\n+$task_status = isset( $_POST['wppm_task_status']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_task_status']))) : ''; \r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if(!empty($task_ids)){\r\n+    foreach($task_ids as $task_id){\r\n+        $task_data = $wppmfunction->get_task($task_id);\r\n+        $tusers =  $task_data['users'];\r\n+        $tusers_arr = explode(',',$tusers);\r\n+        $tproject_id = absint($task_data['project']);\r\n+        if(!empty($tusers) && in_array($current_user->ID,$tusers_arr)){\r\n+            $project_user_role = $wpdb->get_var( $wpdb->prepare( \"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $tproject_id, $cu_id ) );\r\n+            $project_users = $wpdb->get_var( $wpdb->prepare( \"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $tproject_id ) );\r\n+            $project_users_arr = explode(',',(string)$project_users);\r\n+            if(((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr))){\r\n+                $flag = true;\r\n+            }\r\n+        }\r\n+        if($current_user->has_cap('manage_options') || $wppm_current_user_capability == ('wppm_admin')  || ($flag==true) || ($wppmfunction->has_permission('change_task_status',$task_id))!=\"\"){\r\n+            $status_id   = isset($_POST['wppm_task_status']) ? intval(sanitize_text_field(wp_unslash($_POST['wppm_task_status']))) : 0 ;\r\n+            if( !$status_id ){\r\n+                die();\r\n+            }\r\n+            $old_status_id = $task_data['status'];\r\n+            if($status_id && $status_id!=$old_status_id){\r\n+                $wppmfunction->change_status( $task_id, $status_id);\r\n+                $task_id = esc_sql($task_id);\r\n+                $change_task_value = array('prev_status'=>$task_data['status'],'new_status'=>$status_id);\r\n+                $change_task_obj = serialize($change_task_value);\r\n+                $log_values = array('task_id'=>\"$task_id\",'body'=>$change_task_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>esc_sql($current_user->ID) );\r\n+                $wpdb->insert($wpdb->prefix . 'wppm_task_comment',$log_values);\r\n+                $log_id = esc_sql($wpdb->insert_id);\r\n+                $task_log_values = array('task_id'=>\"$task_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_task_status');\r\n+                $wpdb->insert($wpdb->prefix . 'wppm_task_comment_meta',$task_log_values);\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n do_action('wppm_after_set_bulk_change_task_status',$task_ids, $task_status);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_delete_bulk_tasks.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_delete_bulk_tasks.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_delete_bulk_tasks.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_delete_bulk_tasks.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,74 +1,74 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wppmfunction ,$wpdb;\n-\n-if ( check_ajax_referer( 'wppm_set_delete_bulk_tasks', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$task_ids = isset( $_POST['task_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['task_ids'] ) ) ) ) ) : array();\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-\n-if ( ! $task_ids ) {\n-    wp_send_json_error( 'Missing task ids', 400 );\n-}\n-if ( ! empty($task_ids) ) {\n-    foreach($task_ids as $task_id){\n-        $task_data =  $wppmfunction->get_task($task_id);\n-        $project_data = $wppmfunction->get_project($task_data['project']);\n-        if ((($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('delete_task',$task_id)) || $wppm_current_user_capability == 'wppm_admin'|| $project_data['created_by']==$current_user->ID)) {\n-            $task_id = absint( $task_id );\n-            $thread_attachment_ids = $wpdb->get_results( $wpdb->prepare( \"SELECT attachment_ids FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d\", $task_id ));\n-            \u002F***************************Code for deleting attachment files****************************************************\u002F\n-            if(!empty($thread_attachment_ids)){\n-                foreach ($thread_attachment_ids as $thread_attachment_id){\n-                    $attachment_ids_temp = array();\n-                    if($thread_attachment_id->attachment_ids){\n-                        $attachment_ids_temp = explode(',', $thread_attachment_id->attachment_ids);\n-                    }\n-                    if(!empty($attachment_ids_temp)){\n-                        foreach ($attachment_ids_temp as $attachment_id){\n-                            $attachment_id = absint( $attachment_id );\n-                            $result = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\", $attachment_id));\n-                            if(!empty($result)){\n-                                $file_path = isset( $result->file_path ) ? sanitize_text_field( $result->file_path ) : '';\n-                                $attach_result = $wpdb->get_results( $wpdb->prepare( \"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\", $file_path));\n-                                $result_count = count($attach_result);\n-                                if(file_exists($result->file_path) && $result_count \u003C 2)\n-                                {\n-                                    wp_delete_file($result->file_path);\n-                                }\n-                                $wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => esc_sql($attachment_id)));\n-                            }\n-                        }\n-                    }\n-                }\n-            }\n-            \u002F***************************Code for deleting checklists****************************************************\u002F\n-            $task_id = absint( $task_id );\n-            $checklists = $wpdb->get_results( $wpdb->prepare( \"SELECT id FROM {$wpdb->prefix}wppm_checklist WHERE task_id = %d\", $task_id));\n-            if(!empty($checklists)){\n-                foreach($checklists as $checklist){\n-                    $chk_array = (array) $checklist;\n-                    $checklist_id = isset( $chk_array['id'] ) ? absint( $chk_array['id'] ) : 0;\n-                    $checklist_items = $wpdb->get_results( $wpdb->prepare( \"SELECT id FROM {$wpdb->prefix}wppm_checklist_items WHERE checklist_id = %d\", $checklist_id));\n-                    if(!empty($checklist_items)){\n-                        foreach($checklist_items as $ch_item){\n-                            $chk_items_array = (array) $ch_item;\n-                            $wpdb->delete($wpdb->prefix.'wppm_checklist_items',array('id'=>esc_sql($chk_items_array['id'])));\n-                        }\n-                    }\n-                    $wpdb->delete($wpdb->prefix.'wppm_checklist',array('id'=>esc_sql($chk_array['id'])));\n-                }\n-            }\n-            $wpdb->delete($wpdb->prefix.'wppm_task',array('id'=>esc_sql($task_id)));\n-            $wpdb->delete($wpdb->prefix.'wppm_task_meta',array('task_id'=>esc_sql($task_id)));\n-            $wpdb->delete($wpdb->prefix.'wppm_task_comment',array('task_id'=>esc_sql($task_id)));\n-            $wpdb->delete($wpdb->prefix.'wppm_task_comment_meta',array('task_id'=>esc_sql($task_id)));\n-            do_action('wppm_after_delete_task',$task_id);\n-        }\n-    }\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wppmfunction ,$wpdb;\r\n+\r\n+if ( check_ajax_referer( 'wppm_set_delete_bulk_tasks', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$task_ids = isset( $_POST['task_ids'] ) ? array_filter( array_map( 'intval', explode( ',', sanitize_text_field( wp_unslash( $_POST['task_ids'] ) ) ) ) ) : array();\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+\r\n+if ( ! $task_ids ) {\r\n+    wp_send_json_error( 'Missing task ids', 400 );\r\n+}\r\n+if ( ! empty($task_ids) ) {\r\n+    foreach($task_ids as $task_id){\r\n+        $task_data =  $wppmfunction->get_task($task_id);\r\n+        $project_data = $wppmfunction->get_project($task_data['project']);\r\n+        if ((($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('delete_task',$task_id)) || $wppm_current_user_capability == 'wppm_admin'|| $project_data['created_by']==$current_user->ID)) {\r\n+            $task_id = absint( $task_id );\r\n+            $thread_attachment_ids = $wpdb->get_results( $wpdb->prepare( \"SELECT attachment_ids FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d\", $task_id ));\r\n+            \u002F***************************Code for deleting attachment files****************************************************\u002F\r\n+            if(!empty($thread_attachment_ids)){\r\n+                foreach ($thread_attachment_ids as $thread_attachment_id){\r\n+                    $attachment_ids_temp = array();\r\n+                    if($thread_attachment_id->attachment_ids){\r\n+                        $attachment_ids_temp = explode(',', $thread_attachment_id->attachment_ids);\r\n+                    }\r\n+                    if(!empty($attachment_ids_temp)){\r\n+                        foreach ($attachment_ids_temp as $attachment_id){\r\n+                            $attachment_id = absint( $attachment_id );\r\n+                            $result = $wpdb->get_row( $wpdb->prepare( \"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\", $attachment_id));\r\n+                            if(!empty($result)){\r\n+                                $file_path = isset( $result->file_path ) ? sanitize_text_field( $result->file_path ) : '';\r\n+                                $attach_result = $wpdb->get_results( $wpdb->prepare( \"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\", $file_path));\r\n+                                $result_count = count($attach_result);\r\n+                                if(file_exists($result->file_path) && $result_count \u003C 2)\r\n+                                {\r\n+                                    wp_delete_file($result->file_path);\r\n+                                }\r\n+                                $wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => esc_sql($attachment_id)));\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+            \u002F***************************Code for deleting checklists****************************************************\u002F\r\n+            $task_id = absint( $task_id );\r\n+            $checklists = $wpdb->get_results( $wpdb->prepare( \"SELECT id FROM {$wpdb->prefix}wppm_checklist WHERE task_id = %d\", $task_id));\r\n+            if(!empty($checklists)){\r\n+                foreach($checklists as $checklist){\r\n+                    $chk_array = (array) $checklist;\r\n+                    $checklist_id = isset( $chk_array['id'] ) ? absint( $chk_array['id'] ) : 0;\r\n+                    $checklist_items = $wpdb->get_results( $wpdb->prepare( \"SELECT id FROM {$wpdb->prefix}wppm_checklist_items WHERE checklist_id = %d\", $checklist_id));\r\n+                    if(!empty($checklist_items)){\r\n+                        foreach($checklist_items as $ch_item){\r\n+                            $chk_items_array = (array) $ch_item;\r\n+                            $wpdb->delete($wpdb->prefix.'wppm_checklist_items',array('id'=>esc_sql($chk_items_array['id'])));\r\n+                        }\r\n+                    }\r\n+                    $wpdb->delete($wpdb->prefix.'wppm_checklist',array('id'=>esc_sql($chk_array['id'])));\r\n+                }\r\n+            }\r\n+            $wpdb->delete($wpdb->prefix.'wppm_task',array('id'=>esc_sql($task_id)));\r\n+            $wpdb->delete($wpdb->prefix.'wppm_task_meta',array('task_id'=>esc_sql($task_id)));\r\n+            $wpdb->delete($wpdb->prefix.'wppm_task_comment',array('task_id'=>esc_sql($task_id)));\r\n+            $wpdb->delete($wpdb->prefix.'wppm_task_comment_meta',array('task_id'=>esc_sql($task_id)));\r\n+            do_action('wppm_after_delete_task',$task_id);\r\n+        }\r\n+    }\r\n+}\r\n do_action('wppm_after_bulk_delete_all_tasks',$task_ids);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_delete_task.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_delete_task.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_delete_task.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_set_delete_task.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,68 +1,68 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wppmfunction ,$wpdb;\n-if ( check_ajax_referer( 'wppm_set_delete_task', '_ajax_nonce', false ) != 1 ) {\n-\twp_send_json_error( 'Unauthorised request!', 401 );\n-}\n-$task_id  = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : 0 ;\n-\n-$task_data = $wppmfunction->get_task($task_id);\n-$project_data = $wppmfunction->get_project($task_data['project']);\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-if(!(($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('delete_task',$task_id)) || $wppm_current_user_capability == 'wppm_admin'|| $project_data['created_by']==$current_user->ID )){\n-    exit;\n-}\n-$sql=$wpdb->prepare(\"SELECT attachment_ids FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d\",$task_id);\n-$thread_attachment_ids= $wpdb->get_results( $sql );\n-\u002F***************************Code for deleting attachment files****************************************************\u002F\n-if(!empty($thread_attachment_ids)){\n-    foreach ($thread_attachment_ids as $thread_attachment_id){\n-        $attachment_ids_temp = array();\n-        if($thread_attachment_id->attachment_ids){\n-            $attachment_ids_temp = explode(',', $thread_attachment_id->attachment_ids);\n-        }\n-        if(!empty($attachment_ids_temp)){\n-            foreach ($attachment_ids_temp as $attachment_id){\n-                $sql=$wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",$attachment_id);\n-                $result=$wpdb->get_row($sql);\n-                if(!empty($result)){\n-                    $sql_query=$wpdb->prepare(\"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",$result->file_path);\n-                    $attach_result=$wpdb->get_results($sql_query);\n-                    $result_count = count($attach_result);\n-                    if(file_exists($result->file_path) && $result_count \u003C 2)\n-                    {\n-                        wp_delete_file($result->file_path);\n-                    }\n-                    $wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => absint($attachment_id)));\n-                }\n-            }\n-        }\n-    }\n-}\n-\u002F***************************Code for deleting checklists****************************************************\u002F\n-$sql=$wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_checklist WHERE task_id = %d\",$task_id);\n-$checklists = $wpdb->get_results( $sql );\n-if(!empty($checklists)){\n-    foreach($checklists as $checklist){\n-        $chk_array = (array) $checklist;\n-        $chk_array_id = absint($chk_array['id']);\n-        $sql=$wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_checklist_items WHERE checklist_id = %d\",$chk_array_id);\n-        $checklist_items = $wpdb->get_results( $sql );\n-        if(!empty($checklist_items)){\n-            foreach($checklist_items as $ch_item){\n-                $chk_items_array = (array) $ch_item;\n-                $chk_items_array_id = absint($chk_items_array['id']);\n-                $wpdb->delete($wpdb->prefix.'wppm_checklist_items',array('id'=>$chk_items_array_id));\n-            }\n-        }\n-        $wpdb->delete($wpdb->prefix.'wppm_checklist',array('id'=>$chk_array_id));\n-    }\n-}\n-$wpdb->delete($wpdb->prefix.'wppm_task',array('id'=>$task_id));\n-$wpdb->delete($wpdb->prefix.'wppm_task_meta',array('task_id'=>$task_id));\n-$wpdb->delete($wpdb->prefix.'wppm_task_comment',array('task_id'=>$task_id)) ;\n-$wpdb->delete($wpdb->prefix.'wppm_task_comment_meta',array('task_id'=>$task_id));\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wppmfunction ,$wpdb;\r\n+if ( check_ajax_referer( 'wppm_set_delete_task', '_ajax_nonce', false ) != 1 ) {\r\n+\twp_send_json_error( 'Unauthorised request!', 401 );\r\n+}\r\n+$task_id  = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : 0 ;\r\n+\r\n+$task_data = $wppmfunction->get_task($task_id);\r\n+$project_data = $wppmfunction->get_project($task_data['project']);\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+if(!(($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('delete_task',$task_id)) || $wppm_current_user_capability == 'wppm_admin'|| $project_data['created_by']==$current_user->ID )){\r\n+    exit;\r\n+}\r\n+$sql=$wpdb->prepare(\"SELECT attachment_ids FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d\",$task_id);\r\n+$thread_attachment_ids= $wpdb->get_results( $sql );\r\n+\u002F***************************Code for deleting attachment files****************************************************\u002F\r\n+if(!empty($thread_attachment_ids)){\r\n+    foreach ($thread_attachment_ids as $thread_attachment_id){\r\n+        $attachment_ids_temp = array();\r\n+        if($thread_attachment_id->attachment_ids){\r\n+            $attachment_ids_temp = explode(',', $thread_attachment_id->attachment_ids);\r\n+        }\r\n+        if(!empty($attachment_ids_temp)){\r\n+            foreach ($attachment_ids_temp as $attachment_id){\r\n+                $sql=$wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\",$attachment_id);\r\n+                $result=$wpdb->get_row($sql);\r\n+                if(!empty($result)){\r\n+                    $sql_query=$wpdb->prepare(\"SELECT file_path FROM {$wpdb->prefix}wppm_attachments WHERE file_path = %s\",$result->file_path);\r\n+                    $attach_result=$wpdb->get_results($sql_query);\r\n+                    $result_count = count($attach_result);\r\n+                    if(file_exists($result->file_path) && $result_count \u003C 2)\r\n+                    {\r\n+                        wp_delete_file($result->file_path);\r\n+                    }\r\n+                    $wpdb->delete($wpdb->prefix.'wppm_attachments', array( 'id' => absint($attachment_id)));\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n+\u002F***************************Code for deleting checklists****************************************************\u002F\r\n+$sql=$wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_checklist WHERE task_id = %d\",$task_id);\r\n+$checklists = $wpdb->get_results( $sql );\r\n+if(!empty($checklists)){\r\n+    foreach($checklists as $checklist){\r\n+        $chk_array = (array) $checklist;\r\n+        $chk_array_id = absint($chk_array['id']);\r\n+        $sql=$wpdb->prepare(\"SELECT id FROM {$wpdb->prefix}wppm_checklist_items WHERE checklist_id = %d\",$chk_array_id);\r\n+        $checklist_items = $wpdb->get_results( $sql );\r\n+        if(!empty($checklist_items)){\r\n+            foreach($checklist_items as $ch_item){\r\n+                $chk_items_array = (array) $ch_item;\r\n+                $chk_items_array_id = absint($chk_items_array['id']);\r\n+                $wpdb->delete($wpdb->prefix.'wppm_checklist_items',array('id'=>$chk_items_array_id));\r\n+            }\r\n+        }\r\n+        $wpdb->delete($wpdb->prefix.'wppm_checklist',array('id'=>$chk_array_id));\r\n+    }\r\n+}\r\n+$wpdb->delete($wpdb->prefix.'wppm_task',array('id'=>$task_id));\r\n+$wpdb->delete($wpdb->prefix.'wppm_task_meta',array('task_id'=>$task_id));\r\n+$wpdb->delete($wpdb->prefix.'wppm_task_comment',array('task_id'=>$task_id)) ;\r\n+$wpdb->delete($wpdb->prefix.'wppm_task_comment_meta',array('task_id'=>$task_id));\r\n do_action('wppm_after_delete_task',$task_id);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,819 +1,1055 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-$task_per_page = 20;\n-$page_no = isset($_POST['page_no']) ? intval(sanitize_text_field(wp_unslash($_POST['page_no']))) : '0';\n-$project_id = isset($_POST['project_id']) ? intval(sanitize_text_field(wp_unslash($_POST['project_id']))) : \"0\";\n-$search_tag = isset($_POST['task_search']) ? sanitize_text_field(wp_unslash($_POST['task_search'])) : '';\n-$order = isset($_POST['order']) ? sanitize_text_field(wp_unslash($_POST['order'])) :\"ASC\";\n-$sort_by = isset($_POST['sort_by']) ? sanitize_text_field(wp_unslash($_POST['sort_by'])):\"task_name\";\n-$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_filter'])) : \"all\";\n-$proj_filter = isset($_POST['wppm_proj_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_proj_filter'])) : \"0\";\n-$proj_attr = isset($_POST['wppm_project_attr']) ? sanitize_text_field(wp_unslash($_POST['wppm_project_attr'])):\"\";\n-$public_projects = isset($_POST['public_projects']) ? sanitize_text_field(wp_unslash($_POST['public_projects'])):\"0\";\n-$page = isset($_POST['page']) ? sanitize_text_field(wp_unslash($_POST['page'])):\"\";\n-$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-$wppm_create_tasks_coworkers_permission = get_option('wppm_allow_coworkers_create_task');\n-$orderby_proj_sql = esc_sql(sanitize_sql_orderby( \"project_name\" ));\n-$wppm_date_setting = get_option('wppm_date_setting');\n-$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');\n-$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');\n-$wppm_deafault_time_duration_task = get_option('wppm_display_time_duration_task');\n-if(!empty($wppm_hide_task_statuses_from_frontend)){\n-  $wppm_hide_task_statuses_from_frontend = explode(\",\",$wppm_hide_task_statuses_from_frontend);\n-} else {\n-  $wppm_hide_task_statuses_from_frontend = '';\n-}\n-$proj_attr = esc_sql($proj_attr);\n-$is_frontend = 0;\n-if(!empty($proj_attr )){\n-  $wppm_proj_attr = ' AND (proj.project_name = \"'.$proj_attr.'\")';\n-}else{\n-  $wppm_proj_attr = '';\n-}\n-$current_date = wp_date('Y-m-d');\n-$current_date = esc_sql($current_date );\n-$cu_id = esc_sql($current_user->ID);\n-$archived_where = \"\";\n-if ( isset($page) && $page === 'wppm-archived-tasks' ) {\n-  $archived_where = \" AND is_archived = 1\";\n-}\n-if( isset($page) && $page === 'wppm-tasks'){\n-  $archived_where = \" AND is_archived = 0\";\n-}\n-$wppm_task_time = get_option('wppm_task_time');\n-$query = (\"SELECT proj.*\n-            FROM {$wpdb->prefix}wppm_project AS proj\n-            Left join {$wpdb->prefix}wppm_project_meta proj_meta ON proj.id = proj_meta.project_id\");\n-if($current_user->has_cap('manage_options')  || $wppm_current_user_capability == 'wppm_admin'){\n-  if(!empty($proj_attr )){\n-    $where = \" where project_name = '\".$proj_attr.\"' Group by proj.id ORDER BY \".$orderby_proj_sql;\n-  }else{\n-    if(!empty($public_projects)){\n-      $where = \" where proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1 Group by proj.id ORDER BY \".$orderby_proj_sql;\n-    }else{\n-      $where = \" Group by proj.id ORDER BY \".$orderby_proj_sql;\n-    }\n-  }\n-}else{\n-  if(!empty($public_projects)){\n-    $where =  \" where (proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) $wppm_proj_attr Group by proj.id ORDER BY $orderby_proj_sql\";\n-  }\n-  else{\n-    $where =  \" where ((FIND_IN_SET('$current_user->ID',proj.users)) OR (proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR ( proj.created_by='$cu_id')) $wppm_proj_attr Group by proj.id ORDER BY $orderby_proj_sql\";\n-  }\n-}\n-$where = apply_filters('wppm_project_filter_in_task_list_where',$where);\n-$query.= $where;\n-$projects = $wpdb->get_results($query);\n-$appearance_settings = get_option(\"wppm-ap-task-list\");\n-$filters = array(\n-  'sort_by' => $sort_by,\n-  'order' => $order,\n-  'search' => $search_tag,\n-  'filter'=>$filter_by,\n-  'proj_filter' =>$proj_filter\n-);\n-$tl_filters = isset( $_COOKIE['wppm_filters'] ) ? sanitize_text_field( wp_unslash( $_COOKIE['wppm_filters'] ) ) : $filters;\n-if(!is_array($tl_filters)){\n-    $tl_filters  = json_decode($tl_filters);\n-    $tl_filters_arr = (array) $tl_filters;\n-} else{\n-  $tl_filters_arr = $filters;\n-}\n-$wppm_tl_filter = \"1=1\";\n-$order = isset($_POST['order']) ? sanitize_text_field(wp_unslash($_POST['order'])) :$tl_filters_arr['order'];\n-$sort_by = isset($_POST['sort_by']) ? sanitize_text_field(wp_unslash($_POST['sort_by'])):$tl_filters_arr['sort_by'];\n-$search_tag = isset($_POST['task_search']) ? sanitize_text_field(wp_unslash($_POST['task_search'])) : $tl_filters_arr['search'];\n-$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_filter'])) : $tl_filters_arr['filter'];\n-$proj_filter = isset($_POST['wppm_proj_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_proj_filter'])) : $tl_filters_arr['proj_filter'];\n-$proj_filter = esc_sql($proj_filter);\n-if($sort_by == \"\"){\n-  $sort_by = 'task_name';\n-}\n-$filters = array(\n-  'sort_by' => $sort_by,\n-  'order' => $order,\n-  'search'=>$search_tag,\n-  'filter'=>$filter_by,\n-  'proj_filter'=>$proj_filter\n-);\n-setcookie('wppm_filters',wp_json_encode( $filters ),time() + 3600);\n-\n-\u002F\u002F Allowed sort columns\n-$allowed_sort_by = [\n-    'project'       => 'proj.project_name',\n-    'status'        => 'task_statuses.name',\n-    'priority'      => 'task_priorities.name',\n-    'start_date'    => 'Task.start_date',\n-    'end_date'      => 'Task.end_date',\n-    'TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)' => 'TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)',\n-];\n-\n-\u002F\u002F Resolve sort_by safely\n-$sort_key = isset($_POST['sort_by'])\n-    ? sanitize_text_field(wp_unslash($_POST['sort_by']))\n-    : ($tl_filters_arr['sort_by'] ?? 'task_name');\n-\n-$sort_by = $allowed_sort_by[$sort_key] ?? 'task_name';\n-\n-\u002F\u002F Resolve order safely\n-$order = (isset($_POST['order']) && strtoupper(wp_unslash($_POST['order'])) === 'ASC')\n-    ? 'ASC'\n-    : 'DESC';\n-\n-if($filter_by=='all'){\n-  if($wppm_hide_completed_status_task == 0){\n-     $wppm_tl_filter = \"Task.status!='4'\";\n-  }\n-}\n-if($filter_by=='4'){\n-  $wppm_tl_filter = \"Task.status='4'\";\n-}elseif($filter_by=='overdue'){\n-  $wppm_tl_filter = \"Task.status!='4' AND (CAST(Task.end_date AS DATE)) \u003C '$current_date'\";\n-}elseif($filter_by == 'unassigned'){\n-  $wppm_tl_filter = \"Task.users=''\";\n-}elseif($filter_by == '1'){\n-  $wppm_tl_filter = \"Task.status='1'\";\n-}elseif($filter_by == '2'){\n-  $wppm_tl_filter = \"Task.status='2'\";\n-}elseif($filter_by == '3'){\n-  $wppm_tl_filter = \"Task.status='3'\";\n-}elseif($filter_by == 'mine'){\n-  $wppm_tl_filter = \"(FIND_IN_SET('$current_user->ID',Task.users)>0)\";\n-}elseif($filter_by == 'archived'){\n-  $wppm_tl_filter = \"Task.is_archived = 1\";\n-}\n-\n-if(!empty($wppm_hide_task_statuses_from_frontend) && is_array($wppm_hide_task_statuses_from_frontend) && ((isset($_POST['is_frontend'])) && (sanitize_text_field(wp_unslash($_POST['is_frontend']))==1))){\n-  foreach($wppm_hide_task_statuses_from_frontend as $status){\n-    $wppm_tl_filter .= \" AND Task.status != '$status'\";\n-  }\n-}\n-if($proj_filter!=0 || $project_id!=0){\n-  if($project_id!=0){\n-    $proj_filter = $project_id;\n-  }\n-  $wppm_task_by_proj_filter = \"Task.project = '$proj_filter'\";\n-}else{\n-  $wppm_task_by_proj_filter =\"1=1\";\n-}\n-$wppm_default_task_date = get_option('wppm_default_task_date');\n-$search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';\n-if(!empty($search_tag)){\n-  $search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';\n-  $query = (\"SELECT Task.*\n-              FROM {$wpdb->prefix}wppm_task AS Task\n-              Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\n-              Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id\n-              Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id\n-              Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id\n-              Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'\n-              Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\");          \n-} \n-else{ \n-  if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\n-    if($sort_by=='task_name'|| $sort_by=='start_date' || $sort_by=='end_date'){\n-      $query = ( \"SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task\n-      Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\n-      Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\n-      \");\n-    } else{\n-      $query = ( \"SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task\n-      Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\n-      Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id\n-      Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id\n-      Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\n-    \");\n-    }\n-  }else{\n-    $query = ( \"SELECT Task.*\n-      FROM {$wpdb->prefix}wppm_task AS Task\n-      Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\n-      Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id\n-      Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id\n-      Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id\n-      Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\n-      \");\n-  }\n-}\n-$no_of_rows = ( \"SELECT count(*) FROM ($query\");\n-if(!empty($search_tag )){\n-  if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\n-    if(!empty($public_projects)){\n-      $where = \" where (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text') $wppm_proj_attr \";\n-    }else{\n-      $where = \" where $wppm_tl_filter AND $wppm_task_by_proj_filter AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text') $wppm_proj_attr \";\n-    }\n-  } else{\n-    if(!empty($public_projects)){\n-      $where = \" where (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter AND (((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$cu_id') OR (proj_users.user_id = '$cu_id' AND proj_users.role_id = 1 AND (FIND_IN_SET('$current_user->ID',proj.users)>0)) OR (Task.project = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR (proj.created_by='$cu_id' AND (FIND_IN_SET('$current_user->ID',proj.users)>0))) AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text')) $wppm_proj_attr\";\n-    }else{\n-      $where = \" where $wppm_tl_filter AND $wppm_task_by_proj_filter AND (((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$cu_id') OR (proj_users.user_id = '$cu_id' AND proj_users.role_id = 1 AND (FIND_IN_SET('$current_user->ID',proj.users)>0)) OR (Task.project = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR (proj.created_by='$cu_id' AND (FIND_IN_SET('$current_user->ID',proj.users)>0))) AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text')) $wppm_proj_attr\";\n-    }\n-  }\n-}else{\n-  if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\n-    if(!empty($public_projects)){\n-      $where = \" where (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter $wppm_proj_attr\";\n-    }else{\n-      $where = \" where $wppm_tl_filter AND $wppm_task_by_proj_filter $wppm_proj_attr\";\n-    }\n-  } else{\n-    if(!empty($public_projects)){\n-      $where = \" where  (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter $wppm_proj_attr\";\n-    }else{\n-      $where = \" where $wppm_tl_filter AND $wppm_task_by_proj_filter AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$cu_id') OR (proj_users.user_id = '$cu_id' AND proj_users.role_id = 1 AND (FIND_IN_SET('$current_user->ID',proj.users)>0)) OR (Task.project = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR (proj.created_by='$cu_id' AND (FIND_IN_SET('$current_user->ID',proj.users)>0))) $wppm_proj_attr\";\n-    }\n-  }\n-}\n-$query = apply_filters('wppm_task_list_list_view_query',$query,$search_tag_text);\n-$no_of_rows= apply_filters('wppm_task_list_number_of_rows_query',$no_of_rows,$search_tag_text);\n-$where = apply_filters('wppm_task_list_query_where',$where, $wppm_tl_filter,$search_tag_text);\n-if($filter_by != 'archived'){\n-  $where .= $archived_where;\n-}\n-$no_of_rows_where = $where.\" Group by Task.id) AS Task\";\n-$no_of_rows .= $no_of_rows_where;\n-$no_of_rows = apply_filters('wppm_task_list_no_of_rows',$no_of_rows,$wppm_tl_filter,$search_tag_text);\n-$totalrows = $wpdb->get_var($no_of_rows);\n-$query .= $where.\" Group by Task.id ORDER BY \".$sort_by.\" \".$order.\"\";\n-$query = apply_filters('wppm_task_list_query',$query);\n-$limit_start=$page_no*$task_per_page;\n-$limit=\"\\n LIMIT \".$limit_start.\",\".$task_per_page.\" \";\n-$task_id_array = array();\n-$query = $query.$limit;\n-$wppm_task_fillter = $wpdb->get_results($query);\n-$flag = false;\n-$project_creator = $wpdb->get_var($wpdb->prepare(\"SELECT created_by FROM {$wpdb->prefix}wppm_project WHERE created_by = %d\",$cu_id));\n-if(!empty($wppm_task_fillter)){\n-  foreach($wppm_task_fillter as $key_filter=>$val_filter){\n-    $val_array = (array) $val_filter;\n-    $tusers =  $val_array['users'];\n-    $tusers_arr = explode(',',$tusers);\n-    $tproject_id = esc_sql($val_array['project']);\n-    if(!empty($tusers) && in_array($current_user->ID,$tusers_arr)){\n-      $project_user_role = $wpdb->get_var($wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$tproject_id,$cu_id));\n-      $project_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$tproject_id));\n-      $project_users_arr = explode(',',(string)$project_users);\n-      if(((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr))){\n-        $flag= true;\n-        break;\n-      }\n-    }\n-  }\n-}\n-if(($current_user->has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',0) || ($flag==true) || ($project_creator!=\"\")) && (isset($page) && $page != 'wppm-archived-tasks' )){\n-  $style = \"display:inline;\";\n-}else{\n-  $style = \"display:none;\";\n-}\n-$style = apply_filters('wppm_tl_add_new_task_btn_style',$style);\n-if($current_user->has_cap('manage_options') || $wppm_current_user_capability == ('wppm_admin') || ($flag==true) || ($wppmfunction->has_permission('change_task_status',0))!=\"\" || ($project_creator!=\"\")){\n-  $cs_style = \"display:flex;\";\n-}else{\n-  $cs_style = \"display:none;\";\n-}\n-if ( isset($page) && $page === 'wppm-archived-tasks' ) {\n-  $ar_filter_style = \"display:none;\";\n-} else {\n-  $ar_filter_style = \"display:flex;\";\n-}\n-$todo_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id='\".esc_sql(1).\"'\" );\n-$inp_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id='\".esc_sql(2).\"'\" );\n-$hold_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id='\".esc_sql(3).\"'\" );\n-$completed_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id='\".esc_sql(4).\"'\" );\n-$todo_status_style = (!empty($todo_status_name))? \"display:inline\" :\"display:none;\";\n-$inp_status_style = (!empty($inp_status_name))? \"display:inline\" :\"display:none;\";\n-$hold_status_style = (!empty($hold_status_name))? \"display:inline\" :\"display:none;\";\n-$completed_status_style = (!empty($completed_status_name))? \"display:inline\" :\"display:none;\";\n-if( isset($page) && $page === 'wppm-tasks'){\n- $arch_filter_style = \"display:inline;\";\n-}else{\n-  $arch_filter_style = \"display:none;\";\n-}\n-?>\n-\u003Cform id=\"wppm_task_list_frm\">\n-  \u003Cdiv id=\"wppm_task_list_container\" class=\"wppm_bootstrap\">\n-    \u003Cdiv class=\"row\">\n-      \u003Cdiv class=\"col-sm-12\" id=\"wppm_heading_inline\">\n-        \u003Cspan class=\"wppm-heading-inline\">\u003C?php echo (isset($page) && $page === 'wppm-archived-tasks' ) ? esc_html_e('Archived Tasks','taskbuilder'): esc_html_e('Tasks','taskbuilder');?> \u003C\u002Fspan>\n-        \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_add_new_task_btn_tl\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-button-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-button-text-color'])?>;\u003C?php echo esc_attr($style)?>;\" onclick=\"wppm_add_new_task()\">\u003Cimg class=\"wppm_add_new_task_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus_icon.svg'); ?>\" alt=\"add_icon\">\u003C?php echo esc_html_e('Add New','taskbuilder');?>\u003C\u002Fspan>\n-          \u003C!-- Dashboard Button -->\n-          \u003Ca class=\"wppm-add-new-btn btn-primary\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-button-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-button-text-color'])?>;\u003C?php echo esc_attr($style)?>;\" href=\"\u003C?php echo esc_url( admin_url('admin.php?page=wppm-dashboard') ); ?>\"\n-            style=\"margin-right:10px;\">\n-            \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdashboard.svg'); ?>\" alt=\"dashboard_icon\">\n-            \u003C?php esc_html_e('Dashboard','taskbuilder'); ?>\n-          \u003C\u002Fa>\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv style=\"display:flex;justify-content:space-between;margin-top:20px;flex-wrap: wrap;\">\n-      \u003Cdiv style=\"display:flex;flex-wrap: wrap;min-width: 0; max-width: 100%; \">\n-        \u003Cdiv id=\"wppm_task_filter_container\">\n-          \u003Cdiv class=\"wppm-bulk-actions\"style=\"margin-left: -14px !important;\">\n-            \u003Cbutton \n-              id=\"wppm-task-bulk-actions-btn\"\n-              class=\"wppm-button small secondary\"\n-              type=\"button\"\n-              style=\"display:none;margin: 14px -20px 0px 22px; padding:14px;font: 13px Helvetica Neue, Arial, Helvetica, sans-serif !important;\"\n-              data-popover=\"wppm-task-bulk-actions\">\n-              \u003C?php esc_attr_e( 'Bulk Actions ', 'taskbuilder' ); ?>\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwppm_chevron_down_icon.svg'); ?>\" alt=\"chevron_down\">\n-            \u003C\u002Fbutton>\n-            \u003Cdiv id=\"wppm-task-bulk-actions\" class=\"gpopover wppm-popover-menu wppm-proj-bulk-actions\">\n-              \u003Cdiv class=\"wppm-popover-menu-item\" style=\"\u003C?php echo esc_attr($cs_style);?>\u003C?php echo esc_attr($ar_filter_style);?>\" onclick=\"wppm_bulk_change_task_status('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_task_status' ) ); ?>');\">\n-                \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fgps-navigation.svg'); ?>\" alt=\"task_status\">\u003C?php echo esc_html_e('Change Status','taskbuilder'); ?>\u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-              \u003Cdiv class=\"wppm-popover-menu-item\" style=\"\u003C?php echo esc_attr($ar_filter_style);?>\" onclick=\"wppm_bulk_change_task_priority('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_task_priority' ) ); ?>');\">\n-                \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fpriority_up_icon.svg'); ?>\" alt=\"priority\">\u003C?php echo esc_html_e('Change Priority','taskbuilder'); ?>\u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-              \u003Cdiv class=\"wppm-popover-menu-item\" onclick=\"wppm_bulk_delete_task('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_delete_task' ) ); ?>');\">\n-                \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash-alt-solid.svg'); ?>\" alt=\"delete\">\u003C?php echo esc_html_e('Delete Tasks','taskbuilder'); ?>\u003C\u002Fspan>\n-              \u003C\u002Fdiv>\n-          \u003C\u002Fdiv>\n-          \u003Cdiv class=\"wppm-filter-item\">\n-                \u003Clabel for=\"wppm_task_filter\" style=\"margin-left:20px;\"> \u003C?php echo esc_html_e('Filter','taskbuilder');?>\u003C\u002Flabel>\n-                \u003Cselect id=\"wppm_task_filter\" name=\"wppm_task_filter\" onchange=\"wppm_apply_task_filter('\u003C?php echo esc_attr($page); ?>')\" style=\"margin-left:20px;\">\n-                  \u003Coption value=\"all\"\u003C?php echo ($filter_by == \"all\")? 'selected':\"\"?>>\u003C?php echo esc_html_e('All','taskbuilder');?>\u003C\u002Foption>\n-                  \u003Coption value=\"1\" style=\"\u003C?php echo esc_attr($todo_status_style); ?>\" \u003C?php echo ($filter_by == \"1\")? 'selected':\"\"?>>\u003C?php echo  esc_html($todo_status_name);?>\u003C\u002Foption>\n-                  \u003Coption value=\"2\" style=\"\u003C?php echo esc_attr($inp_status_style); ?>\" \u003C?php echo ($filter_by == \"2\")? 'selected':\"\"?>>\u003C?php echo  esc_html($inp_status_name);?>\u003C\u002Foption>\n-                  \u003Coption value=\"3\" style=\"\u003C?php echo esc_attr($hold_status_style); ?>\" \u003C?php echo ($filter_by == \"3\")? 'selected':\"\"?>>\u003C?php echo  esc_html($hold_status_name);?>\u003C\u002Foption>\n-                  \u003Coption value=\"4\" style=\"\u003C?php echo esc_attr($completed_status_style); ?>\" \u003C?php echo ($filter_by == \"4\")? 'selected':\"\"?>>\u003C?php echo  esc_html($completed_status_name);?>\u003C\u002Foption>\n-                  \u003Coption value=\"mine\" \u003C?php echo ($filter_by == \"mine\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Mine','taskbuilder');?>\u003C\u002Foption>\n-                  \u003Coption value=\"unassigned\" \u003C?php echo ($filter_by == \"unassigned\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Unassigned','taskbuilder');?>\u003C\u002Foption>\n-                  \u003Coption value=\"overdue\" \u003C?php echo ($filter_by == \"overdue\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Overdue','taskbuilder');?>\u003C\u002Foption>\n-                  \u003Coption value=\"archived\" style=\"\u003C?php echo esc_attr($arch_filter_style); ?>\" \u003C?php echo ($filter_by == \"archived\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Archived','taskbuilder');?>\u003C\u002Foption>\n-                \u003C\u002Fselect>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-          \u003C\u002Fdiv>\n-          \u003Cdiv class=\"wppm-filter-item wppm_project_autocomplete_container\" style=\"margin: 0 0 0 28px;\">\n-                \u003Clabel for=\"wppm_task_list_proj_filter\">\n-                    \u003C?php echo esc_html_e('Project','taskbuilder');?>\n-                \u003C\u002Flabel>\u003Cbr>\n-                \u003Cselect searchable=\"search here\" onchange=\"wppm_tasks_by_select_project('\u003C?php echo esc_attr($page); ?>')\" class=\"form-control\" size=\"40\" name=\"wppm_task_list_proj_filter\" id=\"wppm_task_list_proj_filter\" data-width=\"100%\" style=\"width: 100%!important;\">\n-                    \u003Coption value=\"0\" \u003C?php echo ($proj_filter == 0)? 'selected':\"\"?>>\u003C?php echo esc_html_e('All','taskbuilder');?>\u003C\u002Foption>\n-                    \u003C?php \n-                      if(!empty($projects)){\n-                          foreach($projects as $proj) { \n-                              ?>\n-                              \u003Coption value=\"\u003C?php echo esc_attr($proj->id)?>\" \u003C?php echo ($proj_filter == $proj->id)? 'selected':\"\"?>>\u003C?php echo esc_html($proj->project_name,'taskbuilder');?>\u003C\u002Foption>\n-                      \u003C?php } \n-                      } ?>\n-                \u003C\u002Fselect>\n-          \u003C\u002Fdiv>\n-          \u003Cdiv class=\"wppm_display_submit\" style=\"margin: 0 0 -5px 10px;\">\n-            \u003Cdiv class=\"wppm-filter-actions\">\n-                \u003Cspan class=\"wppm-link\" onclick=\"wppm_tl_reset_filter('\u003C?php echo esc_attr($page); ?>')\"> \u003C?php echo esc_html_e('Reset','taskbuilder');?>\u003C\u002Fspan>\n-            \u003C\u002Fdiv>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv> \n-        \u003Cdiv id=\"wppm_task_search\" style=\"display:flex;justify-content:flex-end;\">\n-          \u003Cimg width=\"25px\" height=\"15\" class=\"wppm_task_search_filter_img\" style=\"position: relative;top: 10px;left: 30px;\" height=\"15px\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsearch.svg'); ?>\" alt=\"search\">\n-          \u003Cinput type=\"search\" id=\"wppm_task_search_filter\" style=\"margin-right:10px;\" name=\"wppm_task_search_filter\" class=\"form-control form-control-sm\" aria-controls=\"selection-datatable\" placeholder=\"\u003C?php echo esc_attr__('Search','taskbuilder');?>\" value=\"\u003C?php echo (!empty($search_tag)) ? esc_attr($search_tag) : \"\" ?>\">\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv style=\"display:flex;justify-content:flex-end;margin-right: 10px;\">\n-      \u003Cspan id=\"wppm_grid_view_btn\" onclick=\"wppm_view_task_search_filter('\u003C?php echo esc_attr($page_no)?>','\u003C?php echo esc_attr($page)?>','\u003C?php echo esc_attr($project_id)?>')\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fgrid_view.svg'); ?>\" alt=\"grid_view\">\u003Cspan>\u003C?php echo esc_html_e('Grid view','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-  \u003Cscript>\n-    jQuery('#wppm-more-actions-btn, #wppm-task-bulk-actions-btn').gpopover({width: 200});\n-  \u003C\u002Fscript>\n-    \u003Cdiv id=\"wppm_task_table_container\" class=\"wppm_task_table_container table-responsive\" style=\"padding: 0 15px 15px 15px;\">\n-      \u003Ctable id=\"wppm_task_table\" class=\"wppm_table table\">\n-        \u003Cthead>\n-          \u003Ctr>\n-            \u003Cth style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\" onchange=\"wppm_task_bulk_select_change()\">\n-              \u003Cdiv class=\"checkbox-container\">\n-                \u003Cinput id=\"wppm_task_bulk_select_option\" class=\"wppm-bulk-selector\" type=\"checkbox\" onchange=\"wppm_task_bulk_select_change();\"\u002F>\n-                \u003Clabel for=\"wppm_task_bulk_select_option\">\u003C\u002Flabel>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-              \u003Cdiv id=\"wppm_task_name_container\">\n-                \u003Cspan id=\"wppm_task_name_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Task name','taskbuilder'); ?>\u003C\u002Fspan>\n-                \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'task_name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('task_name','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_task_name_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-                \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'task_name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('task_name','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_task_name_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-              \u003Cspan id=\"wppm_project_name_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Project','taskbuilder'); ?>\u003C\u002Fspan>\n-              \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'proj.project_name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('project','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_list_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-              \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'proj.project_name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('project','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_list_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-            \u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-              \u003Cspan id=\"wppm_status_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Status','taskbuilder'); ?>\u003C\u002Fspan>\n-              \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'task_statuses.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('status','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_status_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-              \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'task_statuses.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('status','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_status_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-            \u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-              \u003Cspan id=\"wppm_priority_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Priority','taskbuilder'); ?>\u003C\u002Fspan>\n-              \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == ('task_priorities.name') && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('priority','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_priority_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-              \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == ('task_priorities.name') && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('priority','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_priority_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-            \u003C\u002Fth>\n-            \u003C?php if($wppm_default_task_date == 1 && $wppm_deafault_time_duration_task==0) { ?>\n-                    \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-                      \u003Cspan id=\"wppm_start_date_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Start date','taskbuilder'); ?>\u003C\u002Fspan>\n-                      \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'Task.start_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('start_date','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_start_date_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-                      \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'Task.start_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('start_date','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_start_date_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-                    \u003C\u002Fth>\n-                    \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-                      \u003Cspan id=\"wppm_end_date_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('End date','taskbuilder'); ?>\u003C\u002Fspan>\n-                      \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'Task.end_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('end_date','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_end_date_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-                      \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'Task.end_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('end_date','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_end_date_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-                    \u003C\u002Fth>\n-            \u003C?php }\n-            if( $wppm_deafault_time_duration_task==1){ ?>\n-                  \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-                      \u003Cspan id=\"wppm_task_duration_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Duration','taskbuilder'); ?>\u003C\u002Fspan>\n-                      \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_task_duration_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\n-                      \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_task_duration_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\n-                    \u003C\u002Fth>\n-          \u003C?php }?>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-              \u003Cspan style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Assign To','taskbuilder'); ?>\u003C\u002Fspan>\n-            \u003C\u002Fth>\n-            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\n-              \u003Cspan style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Progress','taskbuilder'); ?>\u003C\u002Fspan>\n-            \u003C\u002Fth>\n-            \u003C?php do_action('wppm_table_header');?>\n-          \u003C\u002Ftr>\n-        \u003C\u002Fthead>\n-        \u003Ctbody>\n-          \u003C?php \n-          $task_index = 0;\n-          if(!empty($wppm_task_fillter)){\n-            foreach($wppm_task_fillter as $task) {\n-              $task_id = absint($task->id);\n-              $wppm_task_duration = $wppmfunction->wppm_get_duration($task->start_date,$task->end_date);\n-              $checklists = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = %d\",$task_id) );\n-                if(!empty($task)){\n-                  $taskdata = $wppmfunction->get_task($task->id);\n-                  $project_data = $wppmfunction->get_project($task->project);\n-                  $task_index++;\n-                  $total=$wpdb->get_var(\"SELECT COUNT(Items.id) AS check_id\n-                    FROM {$wpdb->prefix}wppm_checklist_items AS Items\n-                    Left join {$wpdb->prefix}wppm_checklist checklist ON Items.checklist_id = checklist.id\n-                    WHERE checklist.task_id = '$task_id'\");\n-                  $total_checked_items=$wpdb->get_var(\"SELECT COUNT(Items.id) AS check_id\n-                    FROM {$wpdb->prefix}wppm_checklist_items AS Items\n-                    Left join {$wpdb->prefix}wppm_checklist checklist ON Items.checklist_id = checklist.id\n-                    WHERE checklist.task_id = '$task_id' AND Items.checked=1\");\n-                  \n-                  if(isset($task->status)){\n-                    $tstatus = absint($task->status);\n-                    $status = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id = %d\",$tstatus) );\n-                  }\n-                  if(!empty($task->priority)){\n-                    $tpriority = absint($task->priority);\n-                    $priority = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = %d\",$tpriority) );\n-                  }\n-                  if(isset($task->project)){\n-                    $tproj = absint($task->project);\n-                    $project = $wpdb->get_row( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project where id = %d\",$tproj) );\n-                  }\n-                  if($wppm_task_time == 1){\n-                    $tsDate = new DateTime($task->start_date);\n-                    $teDate = new DateTime($task->end_date);\n-                    if($task->start_date=='0000-00-00 00:00:00'){\n-                      if($wppm_date_setting=='Y-m-d H:i:s'){\n-                        $task_start_date = '0000-00-00 00:00:00';\n-                      }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                        $task_start_date = '00-00-0000 00:00:00';\n-                      }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                        $task_start_date = '00-00-0000 00:00:00';\n-                      }else{\n-                        $task_start_date = '0000-00-00 00:00:00';\n-                      }\n-                    }if($task->end_date=='0000-00-00 00:00:00'){\n-                      if($wppm_date_setting=='Y-m-d H:i:s'){\n-                        $task_end_date = '0000-00-00 00:00:00';\n-                      }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                        $task_end_date = '00-00-0000 00:00:00';\n-                      }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                        $task_end_date = '00-00-0000 00:00:00';\n-                      }else{\n-                        $task_end_date = '0000-00-00 00:00:00';\n-                      }\n-                    }if($task->start_date!='0000-00-00 00:00:00'){\n-                      if(!empty($wppm_date_setting)){\n-                        $task_start_date = $tsDate->format($wppm_date_setting);\n-                      } else {\n-                        $task_start_date = isset($task->start_date)? $task->start_date:\"\";\n-                      }\n-                    }if($task->end_date!='0000-00-00 00:00:00'){\n-                      if(!empty($wppm_date_setting)){\n-                        $task_end_date = $teDate->format($wppm_date_setting);\n-                      }else{\n-                        $task_end_date = isset($task->end_date) ? $task->end_date: \"\" ;\n-                      }\n-\n-                    }\n-                  } elseif($wppm_task_time == 0){\n-                      $tsDate = new DateTime($task->start_date);\n-                      $teDate = new DateTime($task->end_date);\n-                      $task_start_date = $tsDate->format('Y-m-d');\n-                      $task_end_date = $teDate->format('Y-m-d');\n-                      if($task->start_date=='0000-00-00 00:00:00'){\n-                        if($wppm_date_setting=='Y-m-d H:i:s'){\n-                          $task_start_date = '0000-00-00';\n-                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                          $task_start_date = '00-00-0000';\n-                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                          $task_start_date = '00-00-0000';\n-                        }else{\n-                          $task_start_date = '0000-00-00';\n-                        }\n-                      }\n-                      if($task->end_date=='0000-00-00 00:00:00'){\n-                        if($wppm_date_setting=='Y-m-d H:i:s'){\n-                          $task_end_date = '0000-00-00';\n-                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                          $task_end_date = '00-00-0000';\n-                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                          $task_end_date = '00-00-0000';\n-                        }else{\n-                          $task_end_date = '0000-00-00';\n-                        }\n-                      }\n-                      if($task->start_date!='0000-00-00 00:00:00'){\n-                        if($wppm_date_setting=='Y-m-d H:i:s'){\n-                          $task_start_date = $tsDate->format('Y-m-d');\n-                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                          $task_start_date = $tsDate->format('d-m-Y');                       \n-                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                          $task_start_date = $tsDate->format('m-d-Y');\n-                        }else{\n-                          $task_start_date = $tsDate->format('Y-m-d');\n-                        }\n-                      }\n-                      if($task->end_date!='0000-00-00 00:00:00'){\n-                        if($wppm_date_setting=='Y-m-d H:i:s'){\n-                          $task_end_date = $teDate->format('Y-m-d');\n-                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\n-                          $task_end_date = $teDate->format('d-m-Y');\n-                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\n-                          $task_end_date = $teDate->format('m-d-Y');\n-                        }else{\n-                          $task_end_date = $teDate->format('Y-m-d');\n-                        }\n-                      }\n-                  }\n-                  $url = $wppmfunction->get_task_url( $task->id, $is_frontend );\n-                  ?>\n-                  \u003Ctr onclick= \"if(link)wppm_tl_handle_click(event, \u003C?php echo esc_attr($task->id) ?>, '\u003C?php echo esc_url( $url ); ?>',\u003C?php echo esc_attr($project_id) ?>)\" >\n-                    \u003Ctd class=\"bulk-selector\" onmouseover=\"link=false;\" onmouseout=\"link=true;\">\n-                      \u003Cdiv class=\"wppm-pl-item-selector\">\n-                        \u003Cdiv class=\"checkbox-container\">\n-                          \u003Cinput id=\"wppm_bulk_select_\u003C?php echo esc_attr($task->id) ?>\" class=\"wppm-task-bulk-select\" type=\"checkbox\" onchange=\"wppm_bulk_task_item_select_change();\" value=\"\u003C?php echo esc_attr( $task->id ); ?>\"\u002F>\n-                          \u003Clabel for=\"wppm_bulk_select_\u003C?php echo esc_attr($task->id) ?>\">\u003C\u002Flabel>\n-                        \u003C\u002Fdiv>\n-                      \u003C\u002Fdiv>\n-                    \u003C\u002Ftd>\n-                    \u003Ctd onmouseover=\"link=true;\">\n-                      \u003C?php echo esc_html($task->task_name) ?>\n-                    \u003C\u002Ftd>\n-                    \u003Ctd onmouseover=\"link=true;\">\n-                      \u003C?php if(!empty($project->project_name)){\n-                      echo esc_html($project->project_name);\n-                      }\n-                      ?>\n-                    \u003C\u002Ftd>\n-                    \u003Ctd onmouseover=\"link=true;\">\n-                    \u003C?php if(!empty($task->status)){ ?>\n-                              \u003Cspan class=\"wppm_td_task_status\" style=\"background-color:\u003C?php echo (isset($status->bg_color))? esc_attr($status->bg_color):\"\";?>; color: \u003C?php echo (isset($status->color))? esc_attr($status->color):\"\"; ?>\">\u003C?php echo (isset($status->name))? esc_html($status->name):\"\" ?>\u003C\u002Fspan>\n-                    \u003C?php } ?>\n-                    \u003C\u002Ftd>\n-                    \u003Ctd onmouseover=\"link=true;\">\n-                      \u003C?php if(!empty($task->priority)){ ?>\n-                              \u003Cspan class =\"wppm_td_task_priority\" style=\"background-color:\u003C?php echo (isset($priority->bg_color))? esc_attr($priority->bg_color):\"\" ;?>; color: \u003C?php echo (isset($priority->color))? esc_attr($priority->color):\"\"; ?>\">\u003C?php echo (isset($priority->name))? esc_html($priority->name):\"\" ?>\u003C\u002Fspan>\n-                      \u003C?php } ?>\n-                    \u003C\u002Ftd>\n-                    \u003C?php if($wppm_default_task_date == 1 && $wppm_deafault_time_duration_task==0) { ?>\n-                            \u003Ctd onmouseover=\"link=true;\">\n-                            \u003C?php if(!empty($task_start_date)){ ?>\n-                                      \u003C?php echo esc_html($task_start_date);\n-                                  } ?>\n-                            \u003C\u002Ftd>\n-                            \u003Ctd onmouseover=\"link=true;\">\n-                            \u003C?php if(!empty($task_end_date) && ($task->status!=4 && $task_end_date \u003C $current_date && $task_end_date != '0000-00-00 00:00:00' && $task_end_date != '00-00-0000 00:00:00' && $task_end_date != '00-00-0000' && $task_end_date != '0000-00-00')){ \n-                                  $style =  \"color:#FF0000\";\n-                                  } else{\n-                                  $style = \"color:#2C3E50\";\n-                                  }?>\n-                                  \u003Cspan style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo esc_html($task_end_date);?>\u003C\u002Fspan>\n-                            \u003C\u002Ftd>\n-                    \u003C?php } ?>\n-                    \u003C?php if($wppm_deafault_time_duration_task==1){ ?>\n-                            \u003C?php\n-                            if(!empty($task_end_date) && ($task->status!=4 && $task_end_date \u003C $current_date && $task_end_date != '0000-00-00 00:00:00' && $task_end_date != '00-00-0000 00:00:00' && $task_end_date != '00-00-0000' && $task_end_date != '0000-00-00')){ \n-                              $style = \"color:#FF2222\";\n-                            } else {\n-                              $style = \"color:#2C3E50\";\n-                            } ?>\n-                            \u003Ctd onmouseover=\"link=true;\" class=\"wppm_table_td\">\u003Cspan style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo isset($wppm_task_duration) ? esc_html($wppm_task_duration):\"\" ?>\u003C\u002Fspan>\u003C\u002Ftd>\n-                    \u003C?php } ?>\n-                    \u003C\u002Ftd>\n-                    \u003Ctd onmouseover=\"link=true;\" style=\"text-align:center;\">\n-                      \u003C?php \n-                        $i=0;\n-                        if(!empty($project_data['users'])){\n-                          $proj_users = explode(',',$project_data['users']);\n-                        }\n-                        if(!empty($task->users)){\n-                          $users = explode(\",\",$task->users);\n-                          foreach($users as $user){ \n-                            if( (!empty($proj_users)) && (in_array($user,$proj_users))){\n-                              $i++;\n-                              if( $i \u003C= 4 ){\n-                                $userdata = get_userdata( $user ); \n-                                if(!empty($userdata)){\n-                                  ?>\n-                                  \u003Ca href=\"#\" title=\"\u003C?php echo esc_attr($userdata->display_name); ?>\">\n-                                    \u003C?php echo get_avatar($userdata->ID, 25, \"mysteryman\")?>\n-                                  \u003C\u002Fa> \u003C?php\n-                                }\n-                              }\n-                            }\n-                          }\n-                        } \n-                        if($i > 4){\n-                          ?>\n-                          \u003Ca href=\"#\" class=\"wppm_avatar\">\n-                            \u003Cspan id=\"wppm_avatar\" style=\"background-color:black;\" class=\"avatar\">+\u003C?php echo esc_html($i-4) ?>\u003C\u002Fspan>\n-                          \u003C\u002Fa>\n-                        \u003C?php } ?>\n-                        \u003C?php\n-                        if($i==0){\n-                          echo esc_html_e('None','taskbuilder');\n-                        } ?>\n-                    \u003C\u002Ftd>\n-                    \u003Ctd onmouseover=\"link=true;\">\n-                      \u003C?php\n-                      $completion = 0;\n-                      if ($total != 0 && $total != NULL) {\n-                        $completion = intval($total_checked_items\u002F$total*100);\n-                      }\n-                      echo esc_html($completion).'%';\n-                      ?>\n-                    \u003C\u002Ftd>\n-                    \u003C?php do_action('wppm_table_column');?>\n-                  \u003C\u002Ftr>\n-        \u003C?php   }\n-            } \n-          }\n-          ?>\n-        \u003C\u002Ftbody>\n-      \u003C\u002Ftable>\n-      \u003Cscript>\n-      function wppm_tl_handle_click(event, id, url,project_id) {\n-        if ( ( event.ctrlKey || event.metaKey ) && url ) {\n-          window.open(url, '_blank');\n-        } else {\n-          wppm_open_task(id,project_id);\n-        }\n-      }\n-\t\t\t\u003C\u002Fscript>\n-      \u003C?php\n-      $current_page=$page_no+1;\n-      $total_pages=ceil($totalrows\u002F$task_per_page);\n-      $prev_page_no=$current_page-1;\n-      $prev_class=($prev_page_no==0)?'disabled':'';\n-      $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;\n-      $next_class=($total_pages==$current_page)?'disabled':'';\n-      ?>\n-      \u003Cdiv class=\"row\" style=\"background-color:#ffffff;\">\n-        \u003Cdiv class=\"col-sm-12\">\n-          \u003Cdiv class=\"wppm_task_result\" style=\"\u003C?php echo esc_attr($total_pages==0)? '':'display: none;';?>\">\u003C?php esc_html_e('Your search request returned no results.','taskbuilder');?>\u003C\u002Fdiv>\n-          \u003Chr style=\"\u003C?php echo esc_attr($total_pages==0)? '':'display: none;';?>\">\n-        \u003C\u002Fdiv>\n-      \u003Cdiv>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-  \u003Cdiv class=\"row wppm_task_pagination_container\">\n-    \u003Cdiv class=\"col-sm-4\">\n-      \u003C?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;\u003C?php echo esc_attr($task_index) ?>&nbsp;\u003C?php echo esc_html_e('of','taskbuilder') ?>&nbsp;\u003C?php echo esc_html($totalrows) ?>&nbsp;\u003C?php echo esc_html_e('Tasks','taskbuilder')?>\n-    \u003C\u002Fdiv>\n-    \u003Cdiv class=\"wppm_task_pagination col-sm-4\" style=\"\u003C?php echo esc_attr($total_pages==0)? \"display:none;\":\"display:flex;\"?>\">\n-      \u003Cspan class=\"wppm-pagination-txt\">\n-          \u003Cspan>\u003C?php echo esc_html($current_page)?>&nbsp;\u003C?php echo esc_html_e('of','taskbuilder');?>&nbsp;\u003C?php echo esc_html($total_pages); ?>&nbsp;\u003C?php echo esc_html_e('Page','taskbuilder'); ?>\u003C\u002Fspan>\n-      \u003C\u002Fspan>\n-      \u003Cspan \u003C?php echo esc_attr($prev_class) ?> \n-        style=\"\u003C?php echo (isset($prev_class) && esc_attr($prev_class)== 'disabled') ? 'display:none;':'display:block;'?>cursor:pointer;\">\n-        \u003Ca class=\"wppm_pagination_prev\" onclick=\"return wppm_load_prev_task_page(\u003C?php echo esc_attr($prev_page_no) ?>,\u003C?php echo esc_attr($page_no) ?>,'\u003C?php echo esc_attr($sort_by)?>','\u003C?php echo esc_attr($order) ?>');\">\u003C?php echo esc_html_e('PREV','taskbuilder');?>\u003C\u002Fa>\n-      \u003C\u002Fspan>\n-      \u003Cspan \u003C?php echo esc_attr($next_class) ?>\n-        style=\"\u003C?php echo (isset($next_class) && esc_attr($next_class) == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;\">\n-        \u003Ca class=\"wppm_pagination_next\" onclick=\"return wppm_load_next_task_page(\u003C?php echo esc_attr($next_page_no) ?>,\u003C?php echo esc_attr($page_no) ?>,'\u003C?php echo esc_attr($sort_by)?>','\u003C?php echo esc_attr($order) ?>');\">\u003C?php echo esc_html_e('NEXT','taskbuilder');?>\u003C\u002Fa>\n-      \u003C\u002Fspan>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-\u003C\u002Fform>\n-\u003Cstyle>\n-\t.select2-selection--single {\n-\t\theight: 30px!important;\n-\t}\n-  .select2-dropdown:hover {\n-    \tcolor: #23527c!important;;\n-\t}\n-\t.select2-results__options{\n-\t\tfont:15px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\n-\t\tmargin: 0!important;\n-\t\tline-height: inherit!important;\n-\t}\n-\t.select2-selection__rendered{\n-\t\tfont:15px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\n-\t\tmargin-top: 5px!important;\n-\t}\n-\t.select2-selection__rendered:hover{\n-\t\tcolor: #2271b1 !important;\n-\t}\n-\t.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{\n-\t\tbackground-color: #e85f08!important;\n-\t\tcolor: white !important;\n-\t}\n-  .select2-container {\n-    max-width: 150px !important;\n-    min-width: 150px !important;\n-  }\n-  #wppm_task_filter{\n-\t\tmin-height: 30px !important;\n-    max-height: 35px !important;\n-\t}\n-  #wppm_task_table tr:nth-child(even) td{\n-    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-even-background-color'])?>;\n-    color:\u003C?php echo esc_attr($appearance_settings['list-item-even-text-color'])?>;\n-  }\n-  #wppm_task_table tr:nth-child(odd) td{\n-    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-odd-background-color'])?>;\n-    color:\u003C?php echo esc_attr($appearance_settings['list-item-odd-text-color'])?>;\n-  }\n-  #wppm_task_table tr:hover td{\n-    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-hover-background-color'])?>;\n-  }\n-  #wppm_task_table tr:hover td{\n-    color: \u003C?php echo esc_attr($appearance_settings['list-item-hover-text-color'])?>;\n-  }\n-  #wppm_add_new_task_btn_tl:hover{\n-    background-color:\u003C?php echo esc_attr($appearance_settings['list-header-button-hover-color'])?>!important; \n-  }\n-\u003C\u002Fstyle>\n-\u003Cscript type=\"text\u002Fjavascript\">\n-  var link = true;\n-  jQuery( document ).ready( function( jQuery ) {\n-    jQuery(\"input[name='wppm_task_search_filter']\").keypress(function(e) {\n-          \u002F\u002FEnter key\n-      if (e.which == 13) {\n-        wppm_task_search_filter('\u003C?php echo esc_attr($page); ?>');\n-      }\n-    });\n-    jQuery(\"#wppm_task_name_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_task_name_img').show();\n-      jQuery('#wppm_chevron_sort_down_task_name_img').hide();\n-    });\n-    jQuery(\"#wppm_project_name_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_project_list_img').show();\n-      jQuery('#wppm_chevron_sort_down_project_list_img').hide();\n-    });\n-    jQuery(\"#wppm_status_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_status_img').show();\n-      jQuery('#wppm_chevron_sort_down_status_img').hide();\n-    });\n-    jQuery(\"#wppm_priority_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_priority_img').show();\n-      jQuery('#wppm_chevron_sort_down_priority_img').hide();\n-    });\n-    jQuery(\"#wppm_start_date_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_start_date_img').show();\n-      jQuery('#wppm_chevron_sort_down_start_date_img').hide();\n-    });\n-    jQuery(\"#wppm_end_date_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_end_date_img').show();\n-      jQuery('#wppm_chevron_sort_down_end_date_img').hide();\n-    });\n-     jQuery(\"#wppm_task_duration_th\").hover(function(){\n-      jQuery('#wppm_chevron_sort_up_task_duration_img').show();\n-      jQuery('#wppm_chevron_sort_down_task_duration_img').hide();\n-    });\n-    \n-  })\n-  jQuery('#wppm_task_list_proj_filter').select2({ dropdownAutoWidth: true, width: 'auto' });\n-  jQuery('#wppm_task_list_proj_filter').val(\u003C?php echo esc_attr($proj_filter) ?>);\n-    \u002F**\n- * Bulk item selector change\n- *\u002F\n-  function wppm_bulk_task_item_select_change() {\n-    jQuery(\"#wppm-task-bulk-actions-btn\").show();\n-    var items = jQuery(\".wppm-task-bulk-select:checked\");\n-    var checked = items.length === 0 ? false : true;\n-    if(checked){\n-      jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\n-    }else{\n-      jQuery(\"#wppm-task-bulk-actions-btn\").hide();\n-      jQuery(\".wppm-bulk-selector\").prop(\"checked\", false);\n-    }\n-  }\n-\u003C\u002Fscript>\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+$task_per_page = 20;\r\n+$page_no = isset($_POST['page_no']) ? intval(sanitize_text_field(wp_unslash($_POST['page_no']))) : '0';\r\n+$project_id = isset($_POST['project_id']) ? intval(sanitize_text_field(wp_unslash($_POST['project_id']))) : \"0\";\r\n+$search_tag = isset($_POST['task_search']) ? sanitize_text_field(wp_unslash($_POST['task_search'])) : '';\r\n+$order = isset($_POST['order']) ? sanitize_text_field(wp_unslash($_POST['order'])) :\"ASC\";\r\n+$sort_by = isset($_POST['sort_by']) ? sanitize_text_field(wp_unslash($_POST['sort_by'])):\"task_name\";\r\n+$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_filter'])) : \"all\";\r\n+$proj_filter = isset($_POST['wppm_proj_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_proj_filter'])) : \"0\";\r\n+$proj_attr = isset($_POST['wppm_project_attr']) ? sanitize_text_field(wp_unslash($_POST['wppm_project_attr'])):\"\";\r\n+$public_projects = isset($_POST['public_projects']) ? sanitize_text_field(wp_unslash($_POST['public_projects'])):\"0\";\r\n+$page = isset($_POST['page']) ? sanitize_text_field(wp_unslash($_POST['page'])):\"\";\r\n+$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+$wppm_create_tasks_coworkers_permission = get_option('wppm_allow_coworkers_create_task');\r\n+$orderby_proj_sql = esc_sql(sanitize_sql_orderby( \"project_name\" ));\r\n+$wppm_date_setting = get_option('wppm_date_setting');\r\n+$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');\r\n+$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');\r\n+$wppm_deafault_time_duration_task = get_option('wppm_display_time_duration_task');\r\n+if(!empty($wppm_hide_task_statuses_from_frontend)){\r\n+  $wppm_hide_task_statuses_from_frontend = explode(\",\",$wppm_hide_task_statuses_from_frontend);\r\n+} else {\r\n+  $wppm_hide_task_statuses_from_frontend = '';\r\n+}\r\n+$proj_attr = esc_sql($proj_attr);\r\n+$is_frontend = 0;\r\n+if ( ! empty( $proj_attr ) ) {\r\n+    $wppm_proj_attr = $wpdb->prepare(\r\n+        ' AND (proj.project_name = %s)',\r\n+        $proj_attr\r\n+    );\r\n+} else {\r\n+    $wppm_proj_attr = '';\r\n+}\r\n+$current_date = wp_date('Y-m-d');\r\n+$cu_id = absint($current_user->ID);\r\n+$archived_where = '';\r\n+if ( isset( $page ) && $page === 'wppm-archived-tasks' ) {\r\n+    $archived_where = ' AND Task.is_archived = 1';\r\n+} elseif ( isset( $page ) && $page === 'wppm-tasks' ) {\r\n+    $archived_where = ' AND Task.is_archived = 0';\r\n+}\r\n+$wppm_task_time = get_option('wppm_task_time');\r\n+$query = \"SELECT proj.*\r\n+FROM {$wpdb->prefix}wppm_project AS proj\r\n+LEFT JOIN {$wpdb->prefix}wppm_project_meta AS proj_meta ON proj.id = proj_meta.project_id\";\r\n+if ( $current_user->has_cap( 'manage_options' ) || $wppm_current_user_capability === 'wppm_admin' ) {\r\n+    if ( ! empty( $proj_attr ) ) {\r\n+        $where = $wpdb->prepare(\r\n+            \" WHERE proj.project_name = %s\r\n+            GROUP BY proj.id\r\n+            ORDER BY $orderby_proj_sql\",\r\n+            $proj_attr\r\n+        );\r\n+    } else {\r\n+        if ( ! empty( $public_projects ) ) {\r\n+            $where = $wpdb->prepare(\r\n+                \" WHERE proj_meta.meta_key = %s\r\n+                AND proj_meta.meta_value = %d\r\n+                GROUP BY proj.id\r\n+                ORDER BY $orderby_proj_sql\",\r\n+                'public_project',\r\n+                1\r\n+            );\r\n+        } else {\r\n+            $where = \" GROUP BY proj.id ORDER BY $orderby_proj_sql\";\r\n+        }\r\n+    }\r\n+} else {\r\n+    if ( ! empty( $public_projects ) ) {\r\n+        $where = $wpdb->prepare(\r\n+            \" WHERE (\r\n+                proj_meta.meta_key = %s\r\n+                AND proj_meta.meta_value = %d\r\n+            )\r\n+            $wppm_proj_attr\r\n+            GROUP BY proj.id\r\n+            ORDER BY $orderby_proj_sql\",\r\n+            'public_project',\r\n+            1\r\n+        );\r\n+\r\n+    } else {\r\n+        $where = $wpdb->prepare(\r\n+            \" WHERE (\r\n+                FIND_IN_SET(%d, proj.users)\r\n+                OR (\r\n+                    proj_meta.meta_key = %s\r\n+                    AND proj_meta.meta_value = %d\r\n+                )\r\n+                OR proj.created_by = %d\r\n+            )\r\n+            $wppm_proj_attr\r\n+            GROUP BY proj.id\r\n+            ORDER BY $orderby_proj_sql\",\r\n+            $current_user->ID,\r\n+            'public_project',\r\n+            1,\r\n+            $cu_id\r\n+        );\r\n+    }\r\n+}\r\n+$where = apply_filters('wppm_project_filter_in_task_list_where',$where);\r\n+$query.= $where;\r\n+$projects = $wpdb->get_results($query);\r\n+$appearance_settings = get_option(\"wppm-ap-task-list\");\r\n+$filters = array(\r\n+  'sort_by' => $sort_by,\r\n+  'order' => $order,\r\n+  'search' => $search_tag,\r\n+  'filter'=>$filter_by,\r\n+  'proj_filter' =>$proj_filter\r\n+);\r\n+$tl_filters = isset( $_COOKIE['wppm_filters'] ) ? sanitize_text_field( wp_unslash( $_COOKIE['wppm_filters'] ) ) : $filters;\r\n+if(!is_array($tl_filters)){\r\n+    $tl_filters  = json_decode($tl_filters);\r\n+    $tl_filters_arr = (array) $tl_filters;\r\n+} else{\r\n+  $tl_filters_arr = $filters;\r\n+}\r\n+$wppm_tl_filter = \"1=1\";\r\n+$order = isset($_POST['order']) ? sanitize_text_field(wp_unslash($_POST['order'])) :$tl_filters_arr['order'];\r\n+$sort_by = isset($_POST['sort_by']) ? sanitize_text_field(wp_unslash($_POST['sort_by'])):$tl_filters_arr['sort_by'];\r\n+$search_tag = isset($_POST['task_search']) ? sanitize_text_field(wp_unslash($_POST['task_search'])) : $tl_filters_arr['search'];\r\n+$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_filter'])) : $tl_filters_arr['filter'];\r\n+$proj_filter = isset($_POST['wppm_proj_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_proj_filter'])) : $tl_filters_arr['proj_filter'];\r\n+$proj_filter = esc_sql($proj_filter);\r\n+if($sort_by == \"\"){\r\n+  $sort_by = 'task_name';\r\n+}\r\n+$filters = array(\r\n+  'sort_by' => $sort_by,\r\n+  'order' => $order,\r\n+  'search'=>$search_tag,\r\n+  'filter'=>$filter_by,\r\n+  'proj_filter'=>$proj_filter\r\n+);\r\n+setcookie('wppm_filters',wp_json_encode( $filters ),time() + 3600);\r\n+\r\n+\u002F\u002F Allowed sort columns\r\n+$allowed_sort_by = [\r\n+    'project'       => 'proj.project_name',\r\n+    'status'        => 'task_statuses.name',\r\n+    'priority'      => 'task_priorities.name',\r\n+    'start_date'    => 'Task.start_date',\r\n+    'end_date'      => 'Task.end_date',\r\n+    'TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)' => 'TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)',\r\n+];\r\n+\r\n+\u002F\u002F Resolve sort_by safely\r\n+$sort_key = isset($_POST['sort_by'])\r\n+    ? sanitize_text_field(wp_unslash($_POST['sort_by']))\r\n+    : ($tl_filters_arr['sort_by'] ?? 'task_name');\r\n+\r\n+$sort_by = $allowed_sort_by[$sort_key] ?? 'Task.task_name';\r\n+\u002F\u002F Resolve order safely\r\n+$order = (isset($_POST['order']) && strtoupper(wp_unslash($_POST['order'])) === 'ASC')\r\n+    ? 'ASC'\r\n+    : 'DESC';\r\n+\r\n+if($filter_by=='all'){\r\n+  if($wppm_hide_completed_status_task == 0){\r\n+     $wppm_tl_filter = \"Task.status!='4'\";\r\n+  }\r\n+}\r\n+if($filter_by=='4'){\r\n+  $wppm_tl_filter = \"Task.status='4'\";\r\n+}elseif($filter_by=='overdue'){\r\n+  $wppm_tl_filter = \"Task.status!='4' AND (CAST(Task.end_date AS DATE)) \u003C '$current_date'\";\r\n+}elseif($filter_by == 'unassigned'){\r\n+  $wppm_tl_filter = \"Task.users=''\";\r\n+}elseif($filter_by == '1'){\r\n+  $wppm_tl_filter = \"Task.status='1'\";\r\n+}elseif($filter_by == '2'){\r\n+  $wppm_tl_filter = \"Task.status='2'\";\r\n+}elseif($filter_by == '3'){\r\n+  $wppm_tl_filter = \"Task.status='3'\";\r\n+}elseif($filter_by == 'mine'){\r\n+  $wppm_tl_filter = \"(FIND_IN_SET('$current_user->ID',Task.users)>0)\";\r\n+}elseif($filter_by == 'archived'){\r\n+  $wppm_tl_filter = \"Task.is_archived = 1\";\r\n+}\r\n+\r\n+if(!empty($wppm_hide_task_statuses_from_frontend) && is_array($wppm_hide_task_statuses_from_frontend) && ((isset($_POST['is_frontend'])) && (sanitize_text_field(wp_unslash($_POST['is_frontend']))==1))){\r\n+  foreach($wppm_hide_task_statuses_from_frontend as $status){\r\n+    $wppm_tl_filter .= \" AND Task.status != '$status'\";\r\n+  }\r\n+}\r\n+if ( $proj_filter != 0 || $project_id != 0 ) {\r\n+    if ( $project_id != 0 ) {\r\n+        $proj_filter = $project_id;\r\n+    }\r\n+    $proj_filter = absint( $proj_filter );\r\n+    $wppm_task_by_proj_filter = $wpdb->prepare(\r\n+        \"Task.project = %d\",\r\n+        $proj_filter\r\n+    );\r\n+} else {\r\n+    $wppm_task_by_proj_filter = \"1=1\";\r\n+}\r\n+$wppm_default_task_date = get_option('wppm_default_task_date');\r\n+$search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';\r\n+if(!empty($search_tag)){\r\n+  $search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';\r\n+  $query = (\"SELECT Task.*\r\n+              FROM {$wpdb->prefix}wppm_task AS Task\r\n+              Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\r\n+              Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id\r\n+              Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id\r\n+              Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id\r\n+              Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'\r\n+              Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\");          \r\n+} \r\n+else{ \r\n+  if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\r\n+    if($sort_by=='task_name'|| $sort_by=='start_date' || $sort_by=='end_date'){\r\n+      $query = ( \"SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task\r\n+      Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\r\n+      Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\r\n+      \");\r\n+    } else{\r\n+      $query = ( \"SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task\r\n+      Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\r\n+      Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id\r\n+      Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id\r\n+      Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\r\n+    \");\r\n+    }\r\n+  }else{\r\n+    $query = ( \"SELECT Task.*\r\n+      FROM {$wpdb->prefix}wppm_task AS Task\r\n+      Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id\r\n+      Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id\r\n+      Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id\r\n+      Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id\r\n+      Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id\r\n+      \");\r\n+  }\r\n+}\r\n+$no_of_rows = ( \"SELECT count(*) FROM ($query\");\r\n+if(!empty($search_tag )){\r\n+  if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\r\n+    if(!empty($public_projects)){\r\n+      \u002F\u002F$where = \" where (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text') $wppm_proj_attr \";\r\n+      $where = $wpdb->prepare( \" WHERE (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter\r\n+    AND (\r\n+        Task.task_name LIKE %s\r\n+        OR proj.project_name LIKE %s\r\n+        OR task_statuses.name LIKE %s\r\n+        OR task_priorities.name LIKE %s\r\n+        OR user.display_name LIKE %s\r\n+        ) $wppm_proj_attr\",\r\n+        $search_tag_text,\r\n+        $search_tag_text,\r\n+        $search_tag_text,\r\n+        $search_tag_text,\r\n+        $search_tag_text\r\n+      );    \r\n+    }else{\r\n+      $where = $wpdb->prepare(\r\n+        \" WHERE $wppm_tl_filter\r\n+        AND $wppm_task_by_proj_filter\r\n+        AND (\r\n+            Task.task_name LIKE %s\r\n+            OR proj.project_name LIKE %s\r\n+            OR task_statuses.name LIKE %s\r\n+            OR task_priorities.name LIKE %s\r\n+            OR user.display_name LIKE %s\r\n+        )\r\n+        $wppm_proj_attr\",\r\n+        $search_tag_text,\r\n+        $search_tag_text,\r\n+        $search_tag_text,\r\n+        $search_tag_text,\r\n+        $search_tag_text\r\n+      );   \r\n+    }\r\n+  } else{\r\n+    if(!empty($public_projects)){\r\n+      $where = $wpdb->prepare(\r\n+            \" WHERE\r\n+            (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1)\r\n+            AND $wppm_tl_filter\r\n+            AND $wppm_task_by_proj_filter\r\n+            AND (\r\n+                (\r\n+                    FIND_IN_SET(%d, Task.users) > 0\r\n+                    OR Task.created_by = %d\r\n+                    OR (\r\n+                        proj_users.user_id = %d\r\n+                        AND proj_users.role_id = 1\r\n+                        AND FIND_IN_SET(%d, proj.users) > 0\r\n+                    )\r\n+                    OR (\r\n+                        Task.project = proj_meta.project_id\r\n+                        AND proj_meta.meta_key='public_project'\r\n+                        AND proj_meta.meta_value=1\r\n+                    )\r\n+                    OR (\r\n+                        proj.created_by = %d\r\n+                        AND FIND_IN_SET(%d, proj.users) > 0\r\n+                    )\r\n+                )\r\n+                AND (\r\n+                    Task.task_name LIKE %s\r\n+                    OR proj.project_name LIKE %s\r\n+                    OR task_statuses.name LIKE %s\r\n+                    OR task_priorities.name LIKE %s\r\n+                    OR user.display_name LIKE %s\r\n+                )\r\n+            )\r\n+            $wppm_proj_attr\",\r\n+            $current_user->ID,\r\n+            $cu_id,\r\n+            $cu_id,\r\n+            $current_user->ID,\r\n+            $cu_id,\r\n+            $current_user->ID,\r\n+            $search_tag_text,\r\n+            $search_tag_text,\r\n+            $search_tag_text,\r\n+            $search_tag_text,\r\n+            $search_tag_text\r\n+        ); \r\n+     }else{\r\n+      $where = $wpdb->prepare(\r\n+          \" WHERE\r\n+          $wppm_tl_filter\r\n+          AND $wppm_task_by_proj_filter\r\n+          AND (\r\n+              (\r\n+                  FIND_IN_SET(%d, Task.users) > 0\r\n+                  OR Task.created_by = %d\r\n+                  OR (\r\n+                      proj_users.user_id = %d\r\n+                      AND proj_users.role_id = 1\r\n+                      AND FIND_IN_SET(%d, proj.users) > 0\r\n+                  )\r\n+                  OR (\r\n+                      Task.project = proj_meta.project_id\r\n+                      AND proj_meta.meta_key='public_project'\r\n+                      AND proj_meta.meta_value=1\r\n+                  )\r\n+                  OR (\r\n+                      proj.created_by = %d\r\n+                      AND FIND_IN_SET(%d, proj.users) > 0\r\n+                  )\r\n+              )\r\n+              AND (\r\n+                  Task.task_name LIKE %s\r\n+                  OR proj.project_name LIKE %s\r\n+                  OR task_statuses.name LIKE %s\r\n+                  OR task_priorities.name LIKE %s\r\n+                  OR user.display_name LIKE %s\r\n+              )\r\n+          )\r\n+          $wppm_proj_attr\",\r\n+          $current_user->ID,\r\n+          $cu_id,\r\n+          $cu_id,\r\n+          $current_user->ID,\r\n+          $cu_id,\r\n+          $current_user->ID,\r\n+          $search_tag_text,\r\n+          $search_tag_text,\r\n+          $search_tag_text,\r\n+          $search_tag_text,\r\n+          $search_tag_text\r\n+      );\r\n+    }\r\n+  }\r\n+}else{\r\n+  if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){\r\n+    if(!empty($public_projects)){\r\n+      $where = $wpdb->prepare(\r\n+          \" WHERE\r\n+          (proj_meta.meta_key = %s AND proj_meta.meta_value = %d)\r\n+          AND $wppm_tl_filter\r\n+          AND $wppm_task_by_proj_filter\r\n+          $wppm_proj_attr\",\r\n+          'public_project',\r\n+          1\r\n+      );\r\n+    }else{\r\n+      $where = \" where $wppm_tl_filter AND $wppm_task_by_proj_filter $wppm_proj_attr\";\r\n+    }\r\n+  } else{\r\n+    if(!empty($public_projects)){\r\n+      $where = $wpdb->prepare(\r\n+                      \" WHERE\r\n+                      (\r\n+                          proj_meta.meta_key = %s\r\n+                          AND proj_meta.meta_value = %d\r\n+                      )\r\n+                      AND $wppm_tl_filter\r\n+                      AND $wppm_task_by_proj_filter\r\n+                      $wppm_proj_attr\",\r\n+                      'public_project',\r\n+                      1\r\n+                  );  \r\n+    }else{\r\n+       $where = $wpdb->prepare(\r\n+              \" WHERE\r\n+              $wppm_tl_filter\r\n+              AND $wppm_task_by_proj_filter\r\n+              AND (\r\n+                  (\r\n+                      FIND_IN_SET(%d, Task.users) > 0\r\n+                  )\r\n+                  OR (\r\n+                      Task.created_by = %d\r\n+                  )\r\n+                  OR (\r\n+                      proj_users.user_id = %d\r\n+                      AND proj_users.role_id = %d\r\n+                      AND FIND_IN_SET(%d, proj.users) > 0\r\n+                  )\r\n+                  OR (\r\n+                      Task.project = proj_meta.project_id\r\n+                      AND proj_meta.meta_key = %s\r\n+                      AND proj_meta.meta_value = %d\r\n+                  )\r\n+                  OR (\r\n+                      proj.created_by = %d\r\n+                      AND FIND_IN_SET(%d, proj.users) > 0\r\n+                  )\r\n+              )\r\n+              $wppm_proj_attr\",\r\n+              $current_user->ID,\r\n+              $cu_id,\r\n+              $cu_id,\r\n+              1,\r\n+              $current_user->ID,\r\n+              'public_project',\r\n+              1,\r\n+              $cu_id,\r\n+              $current_user->ID\r\n+        );   \r\n+    }\r\n+  }\r\n+}\r\n+$query = apply_filters('wppm_task_list_list_view_query',$query,$search_tag_text);\r\n+$no_of_rows= apply_filters('wppm_task_list_number_of_rows_query',$no_of_rows,$search_tag_text);\r\n+$where = apply_filters('wppm_task_list_query_where',$where, $wppm_tl_filter,$search_tag_text);\r\n+if($filter_by != 'archived'){\r\n+  $where .= $archived_where;\r\n+}\r\n+$no_of_rows_where = $where.\" Group by Task.id) AS Task\";\r\n+$no_of_rows .= $no_of_rows_where;\r\n+$no_of_rows = apply_filters('wppm_task_list_no_of_rows',$no_of_rows,$wppm_tl_filter,$search_tag_text);\r\n+$totalrows = $wpdb->get_var($no_of_rows);\r\n+$query .= $where.\" Group by Task.id ORDER BY \".$sort_by.\" \".$order.\"\";\r\n+$query = apply_filters('wppm_task_list_query',$query);\r\n+$limit_start=$page_no*$task_per_page;\r\n+$limit=\"\\n LIMIT \".$limit_start.\",\".$task_per_page.\" \";\r\n+$task_id_array = array();\r\n+$query = $query.$limit;\r\n+$wppm_task_fillter = $wpdb->get_results($query);\r\n+$flag = false;\r\n+$project_creator = $wpdb->get_var($wpdb->prepare(\"SELECT created_by FROM {$wpdb->prefix}wppm_project WHERE created_by = %d\",$cu_id));\r\n+if(!empty($wppm_task_fillter)){\r\n+  foreach($wppm_task_fillter as $key_filter=>$val_filter){\r\n+    $val_array = (array) $val_filter;\r\n+    $tusers =  $val_array['users'];\r\n+    $tusers_arr = explode(',',$tusers);\r\n+    $tproject_id = esc_sql($val_array['project']);\r\n+    if(!empty($tusers) && in_array($current_user->ID,$tusers_arr)){\r\n+      $project_user_role = $wpdb->get_var($wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\",$tproject_id,$cu_id));\r\n+      $project_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\",$tproject_id));\r\n+      $project_users_arr = explode(',',(string)$project_users);\r\n+      if(((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr))){\r\n+        $flag= true;\r\n+        break;\r\n+      }\r\n+    }\r\n+  }\r\n+}\r\n+if(($current_user->has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',0) || ($flag==true) || ($project_creator!=\"\")) && (isset($page) && $page != 'wppm-archived-tasks' )){\r\n+  $style = \"display:inline;\";\r\n+}else{\r\n+  $style = \"display:none;\";\r\n+}\r\n+$style = apply_filters('wppm_tl_add_new_task_btn_style',$style);\r\n+if($current_user->has_cap('manage_options') || $wppm_current_user_capability == ('wppm_admin') || ($flag==true) || ($wppmfunction->has_permission('change_task_status',0))!=\"\" || ($project_creator!=\"\")){\r\n+  $cs_style = \"display:flex;\";\r\n+}else{\r\n+  $cs_style = \"display:none;\";\r\n+}\r\n+if ( isset($page) && $page === 'wppm-archived-tasks' ) {\r\n+  $ar_filter_style = \"display:none;\";\r\n+} else {\r\n+  $ar_filter_style = \"display:flex;\";\r\n+}\r\n+$todo_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id='\".esc_sql(1).\"'\" );\r\n+$inp_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id='\".esc_sql(2).\"'\" );\r\n+$hold_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id='\".esc_sql(3).\"'\" );\r\n+$completed_status_name = $wpdb->get_var( \"SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id='\".esc_sql(4).\"'\" );\r\n+$todo_status_style = (!empty($todo_status_name))? \"display:inline\" :\"display:none;\";\r\n+$inp_status_style = (!empty($inp_status_name))? \"display:inline\" :\"display:none;\";\r\n+$hold_status_style = (!empty($hold_status_name))? \"display:inline\" :\"display:none;\";\r\n+$completed_status_style = (!empty($completed_status_name))? \"display:inline\" :\"display:none;\";\r\n+if( isset($page) && $page === 'wppm-tasks'){\r\n+ $arch_filter_style = \"display:inline;\";\r\n+}else{\r\n+  $arch_filter_style = \"display:none;\";\r\n+}\r\n+?>\r\n+\u003Cform id=\"wppm_task_list_frm\">\r\n+  \u003Cdiv id=\"wppm_task_list_container\" class=\"wppm_bootstrap\">\r\n+    \u003Cdiv class=\"row\">\r\n+      \u003Cdiv class=\"col-sm-12\" id=\"wppm_heading_inline\">\r\n+        \u003Cspan class=\"wppm-heading-inline\">\u003C?php echo (isset($page) && $page === 'wppm-archived-tasks' ) ? esc_html_e('Archived Tasks','taskbuilder'): esc_html_e('Tasks','taskbuilder');?> \u003C\u002Fspan>\r\n+        \u003Cspan class=\"wppm-add-new-btn btn-primary\" id=\"wppm_add_new_task_btn_tl\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-button-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-button-text-color'])?>;\u003C?php echo esc_attr($style)?>;\" onclick=\"wppm_add_new_task()\">\u003Cimg class=\"wppm_add_new_task_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fplus_icon.svg'); ?>\" alt=\"add_icon\">\u003C?php echo esc_html_e('Add New','taskbuilder');?>\u003C\u002Fspan>\r\n+          \u003C!-- Dashboard Button -->\r\n+          \u003Ca class=\"wppm-add-new-btn btn-primary\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-button-background-color'])?>;color:\u003C?php echo esc_attr($appearance_settings['list-header-button-text-color'])?>;\u003C?php echo esc_attr($style)?>;\" href=\"\u003C?php echo esc_url( admin_url('admin.php?page=wppm-dashboard') ); ?>\"\r\n+            style=\"margin-right:10px;\">\r\n+            \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fdashboard.svg'); ?>\" alt=\"dashboard_icon\">\r\n+            \u003C?php esc_html_e('Dashboard','taskbuilder'); ?>\r\n+          \u003C\u002Fa>\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv style=\"display:flex;justify-content:space-between;margin-top:20px;flex-wrap: wrap;\">\r\n+      \u003Cdiv style=\"display:flex;flex-wrap: wrap;min-width: 0; max-width: 100%; \">\r\n+        \u003Cdiv id=\"wppm_task_filter_container\">\r\n+          \u003Cdiv class=\"wppm-bulk-actions\"style=\"margin-left: -14px !important;\">\r\n+            \u003Cbutton \r\n+              id=\"wppm-task-bulk-actions-btn\"\r\n+              class=\"wppm-button small secondary\"\r\n+              type=\"button\"\r\n+              style=\"display:none;margin: 14px -20px 0px 22px; padding:14px;font: 13px Helvetica Neue, Arial, Helvetica, sans-serif !important;\"\r\n+              data-popover=\"wppm-task-bulk-actions\">\r\n+              \u003C?php esc_attr_e( 'Bulk Actions ', 'taskbuilder' ); ?>\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwppm_chevron_down_icon.svg'); ?>\" alt=\"chevron_down\">\r\n+            \u003C\u002Fbutton>\r\n+            \u003Cdiv id=\"wppm-task-bulk-actions\" class=\"gpopover wppm-popover-menu wppm-proj-bulk-actions\">\r\n+              \u003Cdiv class=\"wppm-popover-menu-item\" style=\"\u003C?php echo esc_attr($cs_style);?>\u003C?php echo esc_attr($ar_filter_style);?>\" onclick=\"wppm_bulk_change_task_status('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_task_status' ) ); ?>');\">\r\n+                \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fgps-navigation.svg'); ?>\" alt=\"task_status\">\u003C?php echo esc_html_e('Change Status','taskbuilder'); ?>\u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+              \u003Cdiv class=\"wppm-popover-menu-item\" style=\"\u003C?php echo esc_attr($ar_filter_style);?>\" onclick=\"wppm_bulk_change_task_priority('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_task_priority' ) ); ?>');\">\r\n+                \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fpriority_up_icon.svg'); ?>\" alt=\"priority\">\u003C?php echo esc_html_e('Change Priority','taskbuilder'); ?>\u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+              \u003Cdiv class=\"wppm-popover-menu-item\" onclick=\"wppm_bulk_delete_task('\u003C?php echo esc_attr( wp_create_nonce( 'wppm_bulk_delete_task' ) ); ?>');\">\r\n+                \u003Cspan>\u003Cimg style=\"margin-right:5px;\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftrash-alt-solid.svg'); ?>\" alt=\"delete\">\u003C?php echo esc_html_e('Delete Tasks','taskbuilder'); ?>\u003C\u002Fspan>\r\n+              \u003C\u002Fdiv>\r\n+          \u003C\u002Fdiv>\r\n+          \u003Cdiv class=\"wppm-filter-item\">\r\n+                \u003Clabel for=\"wppm_task_filter\" style=\"margin-left:20px;\"> \u003C?php echo esc_html_e('Filter','taskbuilder');?>\u003C\u002Flabel>\r\n+                \u003Cselect id=\"wppm_task_filter\" name=\"wppm_task_filter\" onchange=\"wppm_apply_task_filter('\u003C?php echo esc_attr($page); ?>')\" style=\"margin-left:20px;\">\r\n+                  \u003Coption value=\"all\"\u003C?php echo ($filter_by == \"all\")? 'selected':\"\"?>>\u003C?php echo esc_html_e('All','taskbuilder');?>\u003C\u002Foption>\r\n+                  \u003Coption value=\"1\" style=\"\u003C?php echo esc_attr($todo_status_style); ?>\" \u003C?php echo ($filter_by == \"1\")? 'selected':\"\"?>>\u003C?php echo  esc_html($todo_status_name);?>\u003C\u002Foption>\r\n+                  \u003Coption value=\"2\" style=\"\u003C?php echo esc_attr($inp_status_style); ?>\" \u003C?php echo ($filter_by == \"2\")? 'selected':\"\"?>>\u003C?php echo  esc_html($inp_status_name);?>\u003C\u002Foption>\r\n+                  \u003Coption value=\"3\" style=\"\u003C?php echo esc_attr($hold_status_style); ?>\" \u003C?php echo ($filter_by == \"3\")? 'selected':\"\"?>>\u003C?php echo  esc_html($hold_status_name);?>\u003C\u002Foption>\r\n+                  \u003Coption value=\"4\" style=\"\u003C?php echo esc_attr($completed_status_style); ?>\" \u003C?php echo ($filter_by == \"4\")? 'selected':\"\"?>>\u003C?php echo  esc_html($completed_status_name);?>\u003C\u002Foption>\r\n+                  \u003Coption value=\"mine\" \u003C?php echo ($filter_by == \"mine\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Mine','taskbuilder');?>\u003C\u002Foption>\r\n+                  \u003Coption value=\"unassigned\" \u003C?php echo ($filter_by == \"unassigned\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Unassigned','taskbuilder');?>\u003C\u002Foption>\r\n+                  \u003Coption value=\"overdue\" \u003C?php echo ($filter_by == \"overdue\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Overdue','taskbuilder');?>\u003C\u002Foption>\r\n+                  \u003Coption value=\"archived\" style=\"\u003C?php echo esc_attr($arch_filter_style); ?>\" \u003C?php echo ($filter_by == \"archived\")? 'selected':\"\"?>>\u003C?php echo  esc_html_e('Archived','taskbuilder');?>\u003C\u002Foption>\r\n+                \u003C\u002Fselect>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+          \u003C\u002Fdiv>\r\n+          \u003Cdiv class=\"wppm-filter-item wppm_project_autocomplete_container\" style=\"margin: 0 0 0 28px;\">\r\n+                \u003Clabel for=\"wppm_task_list_proj_filter\">\r\n+                    \u003C?php echo esc_html_e('Project','taskbuilder');?>\r\n+                \u003C\u002Flabel>\u003Cbr>\r\n+                \u003Cselect searchable=\"search here\" onchange=\"wppm_tasks_by_select_project('\u003C?php echo esc_attr($page); ?>')\" class=\"form-control\" size=\"40\" name=\"wppm_task_list_proj_filter\" id=\"wppm_task_list_proj_filter\" data-width=\"100%\" style=\"width: 100%!important;\">\r\n+                    \u003Coption value=\"0\" \u003C?php echo ($proj_filter == 0)? 'selected':\"\"?>>\u003C?php echo esc_html_e('All','taskbuilder');?>\u003C\u002Foption>\r\n+                    \u003C?php \r\n+                      if(!empty($projects)){\r\n+                          foreach($projects as $proj) { \r\n+                              ?>\r\n+                              \u003Coption value=\"\u003C?php echo esc_attr($proj->id)?>\" \u003C?php echo ($proj_filter == $proj->id)? 'selected':\"\"?>>\u003C?php echo esc_html($proj->project_name,'taskbuilder');?>\u003C\u002Foption>\r\n+                      \u003C?php } \r\n+                      } ?>\r\n+                \u003C\u002Fselect>\r\n+          \u003C\u002Fdiv>\r\n+          \u003Cdiv class=\"wppm_display_submit\" style=\"margin: 0 0 -5px 10px;\">\r\n+            \u003Cdiv class=\"wppm-filter-actions\">\r\n+                \u003Cspan class=\"wppm-link\" onclick=\"wppm_tl_reset_filter('\u003C?php echo esc_attr($page); ?>')\"> \u003C?php echo esc_html_e('Reset','taskbuilder');?>\u003C\u002Fspan>\r\n+            \u003C\u002Fdiv>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv> \r\n+        \u003Cdiv id=\"wppm_task_search\" style=\"display:flex;justify-content:flex-end;\">\r\n+          \u003Cimg width=\"25px\" height=\"15\" class=\"wppm_task_search_filter_img\" style=\"position: relative;top: 10px;left: 30px;\" height=\"15px\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsearch.svg'); ?>\" alt=\"search\">\r\n+          \u003Cinput type=\"search\" id=\"wppm_task_search_filter\" style=\"margin-right:10px;\" name=\"wppm_task_search_filter\" class=\"form-control form-control-sm\" aria-controls=\"selection-datatable\" placeholder=\"\u003C?php echo esc_attr__('Search','taskbuilder');?>\" value=\"\u003C?php echo (!empty($search_tag)) ? esc_attr($search_tag) : \"\" ?>\">\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv style=\"display:flex;justify-content:flex-end;margin-right: 10px;\">\r\n+      \u003Cspan id=\"wppm_grid_view_btn\" onclick=\"wppm_view_task_search_filter('\u003C?php echo esc_attr($page_no)?>','\u003C?php echo esc_attr($page)?>','\u003C?php echo esc_attr($project_id)?>')\">\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fgrid_view.svg'); ?>\" alt=\"grid_view\">\u003Cspan>\u003C?php echo esc_html_e('Grid view','taskbuilder');?>\u003C\u002Fspan>\u003C\u002Fspan>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cscript>\r\n+    jQuery('#wppm-more-actions-btn, #wppm-task-bulk-actions-btn').gpopover({width: 200});\r\n+  \u003C\u002Fscript>\r\n+    \u003Cdiv id=\"wppm_task_table_container\" class=\"wppm_task_table_container table-responsive\" style=\"padding: 0 15px 15px 15px;\">\r\n+      \u003Ctable id=\"wppm_task_table\" class=\"wppm_table table\">\r\n+        \u003Cthead>\r\n+          \u003Ctr>\r\n+            \u003Cth style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\" onchange=\"wppm_task_bulk_select_change()\">\r\n+              \u003Cdiv class=\"checkbox-container\">\r\n+                \u003Cinput id=\"wppm_task_bulk_select_option\" class=\"wppm-bulk-selector\" type=\"checkbox\" onchange=\"wppm_task_bulk_select_change();\"\u002F>\r\n+                \u003Clabel for=\"wppm_task_bulk_select_option\">\u003C\u002Flabel>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+              \u003Cdiv id=\"wppm_task_name_container\">\r\n+                \u003Cspan id=\"wppm_task_name_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Task name','taskbuilder'); ?>\u003C\u002Fspan>\r\n+                \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'task_name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('task_name','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_task_name_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+                \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'task_name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('task_name','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_task_name_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+              \u003Cspan id=\"wppm_project_name_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Project','taskbuilder'); ?>\u003C\u002Fspan>\r\n+              \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'proj.project_name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('project','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_project_list_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+              \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'proj.project_name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('project','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_project_list_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+            \u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+              \u003Cspan id=\"wppm_status_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Status','taskbuilder'); ?>\u003C\u002Fspan>\r\n+              \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'task_statuses.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('status','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_status_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+              \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'task_statuses.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('status','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_status_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+            \u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+              \u003Cspan id=\"wppm_priority_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Priority','taskbuilder'); ?>\u003C\u002Fspan>\r\n+              \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == ('task_priorities.name') && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('priority','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_priority_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+              \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == ('task_priorities.name') && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('priority','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_priority_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+            \u003C\u002Fth>\r\n+            \u003C?php if($wppm_default_task_date == 1 && $wppm_deafault_time_duration_task==0) { ?>\r\n+                    \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+                      \u003Cspan id=\"wppm_start_date_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Start date','taskbuilder'); ?>\u003C\u002Fspan>\r\n+                      \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'Task.start_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('start_date','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_start_date_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+                      \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'Task.start_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('start_date','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_start_date_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+                    \u003C\u002Fth>\r\n+                    \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+                      \u003Cspan id=\"wppm_end_date_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('End date','taskbuilder'); ?>\u003C\u002Fspan>\r\n+                      \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'Task.end_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('end_date','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_end_date_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+                      \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'Task.end_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('end_date','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_end_date_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+                    \u003C\u002Fth>\r\n+            \u003C?php }\r\n+            if( $wppm_deafault_time_duration_task==1){ ?>\r\n+                  \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+                      \u003Cspan id=\"wppm_task_duration_th\" style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Duration','taskbuilder'); ?>\u003C\u002Fspan>\r\n+                      \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)' && $order == 'DESC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)','ASC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_up_task_duration_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_up_icon.svg'); ?>\" alt=\"chevron_sort_up_icon\">\r\n+                      \u003Cimg width=\"16\" height=\"16\" style = \"\u003C?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)' && $order == 'ASC') ? 'display:inline': 'display:none;'?>\" onclick=\"wppm_sort_up_task_list('TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)','DESC','\u003C?php echo esc_attr($page); ?>')\" class=\"wppm_chevron_img\" id=\"wppm_chevron_sort_down_task_duration_img\" src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsort_down_icon.svg'); ?>\" alt=\"chevron_sort_down_icon\">\r\n+                    \u003C\u002Fth>\r\n+          \u003C?php }?>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+              \u003Cspan style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Assign To','taskbuilder'); ?>\u003C\u002Fspan>\r\n+            \u003C\u002Fth>\r\n+            \u003Cth class=\"wppm_table_header\" style=\"background-color:\u003C?php echo esc_attr($appearance_settings['list-header-background-color'])?>\">\r\n+              \u003Cspan style=\"color:\u003C?php echo esc_attr($appearance_settings['list-header-text-color'])?>\">\u003C?php echo esc_html_e('Progress','taskbuilder'); ?>\u003C\u002Fspan>\r\n+            \u003C\u002Fth>\r\n+            \u003C?php do_action('wppm_table_header');?>\r\n+          \u003C\u002Ftr>\r\n+        \u003C\u002Fthead>\r\n+        \u003Ctbody>\r\n+          \u003C?php \r\n+          $task_index = 0;\r\n+          $statuses = $wpdb->get_results(\r\n+              \"SELECT * FROM {$wpdb->prefix}wppm_task_statuses\",\r\n+              OBJECT_K\r\n+          );\r\n+\r\n+          $priorities = $wpdb->get_results(\r\n+              \"SELECT * FROM {$wpdb->prefix}wppm_task_priorities\",\r\n+              OBJECT_K\r\n+          );\r\n+          $projects = $wpdb->get_results( \"SELECT * FROM {$wpdb->prefix}wppm_project\", OBJECT_K) ;\r\n+          $task_ids = wp_list_pluck($wppm_task_fillter, 'id');\r\n+          $checklist_counts = [];\r\n+          if (!empty($task_ids)) {\r\n+              $task_ids_sql = implode(',', array_map('absint', $task_ids));\r\n+              $checklist_results = $wpdb->get_results(\" SELECT checklist.task_id,\r\n+                      COUNT(Items.id) AS total_items,\r\n+                      SUM(CASE WHEN Items.checked = 1 THEN 1 ELSE 0 END) AS checked_items\r\n+                      FROM {$wpdb->prefix}wppm_checklist_items AS Items\r\n+                      LEFT JOIN {$wpdb->prefix}wppm_checklist AS checklist\r\n+                          ON Items.checklist_id = checklist.id\r\n+                      WHERE checklist.task_id IN ($task_ids_sql)\r\n+                      GROUP BY checklist.task_id\"\r\n+              );\r\n+              foreach ($checklist_results as $row) {\r\n+                  $checklist_counts[$row->task_id] = [\r\n+                      'total'   => (int) $row->total_items,\r\n+                      'checked' => (int) $row->checked_items,\r\n+                  ];\r\n+              }\r\n+          }\r\n+          if(!empty($wppm_task_fillter)){\r\n+            foreach($wppm_task_fillter as $task) {\r\n+              $task_id = absint($task->id);\r\n+              $wppm_task_duration = $wppmfunction->wppm_get_duration($task->start_date,$task->end_date);\r\n+              $checklists = $wpdb->get_results( $wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = %d\",$task_id) );\r\n+                if(!empty($task)){\r\n+                  $taskdata = $wppmfunction->get_task($task->id);\r\n+                  $project_data = $wppmfunction->get_project($task->project);\r\n+                  $task_index++;\r\n+                  $total = $checklist_counts[$task_id]['total'] ?? 0;\r\n+                  $total_checked_items = $checklist_counts[$task_id]['checked'] ?? 0;\r\n+                  if(isset($task->status)){\r\n+                    $tstatus = absint($task->status);\r\n+                    $status = $statuses[$task->status] ?? null;\r\n+                  }\r\n+                  if(!empty($task->priority)){\r\n+                    $tpriority = absint($task->priority);\r\n+                    $priority = $priorities[$task->priority] ?? null;\r\n+                  }\r\n+                  if(isset($task->project)){\r\n+                    $tproj = absint($task->project);\r\n+                    $project = $projects[$task->project] ?? null;\r\n+                  }\r\n+                  if($wppm_task_time == 1){\r\n+                    $tsDate = new DateTime($task->start_date);\r\n+                    $teDate = new DateTime($task->end_date);\r\n+                    if($task->start_date=='0000-00-00 00:00:00'){\r\n+                      if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                        $task_start_date = '0000-00-00 00:00:00';\r\n+                      }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                        $task_start_date = '00-00-0000 00:00:00';\r\n+                      }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                        $task_start_date = '00-00-0000 00:00:00';\r\n+                      }else{\r\n+                        $task_start_date = '0000-00-00 00:00:00';\r\n+                      }\r\n+                    }if($task->end_date=='0000-00-00 00:00:00'){\r\n+                      if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                        $task_end_date = '0000-00-00 00:00:00';\r\n+                      }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                        $task_end_date = '00-00-0000 00:00:00';\r\n+                      }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                        $task_end_date = '00-00-0000 00:00:00';\r\n+                      }else{\r\n+                        $task_end_date = '0000-00-00 00:00:00';\r\n+                      }\r\n+                    }if($task->start_date!='0000-00-00 00:00:00'){\r\n+                      if(!empty($wppm_date_setting)){\r\n+                        $task_start_date = $tsDate->format($wppm_date_setting);\r\n+                      } else {\r\n+                        $task_start_date = isset($task->start_date)? $task->start_date:\"\";\r\n+                      }\r\n+                    }if($task->end_date!='0000-00-00 00:00:00'){\r\n+                      if(!empty($wppm_date_setting)){\r\n+                        $task_end_date = $teDate->format($wppm_date_setting);\r\n+                      }else{\r\n+                        $task_end_date = isset($task->end_date) ? $task->end_date: \"\" ;\r\n+                      }\r\n+                    }\r\n+                  } elseif($wppm_task_time == 0){\r\n+                      $tsDate = new DateTime($task->start_date);\r\n+                      $teDate = new DateTime($task->end_date);\r\n+                      $task_start_date = $tsDate->format('Y-m-d');\r\n+                      $task_end_date = $teDate->format('Y-m-d');\r\n+                      if($task->start_date=='0000-00-00 00:00:00'){\r\n+                        if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                          $task_start_date = '0000-00-00';\r\n+                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                          $task_start_date = '00-00-0000';\r\n+                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                          $task_start_date = '00-00-0000';\r\n+                        }else{\r\n+                          $task_start_date = '0000-00-00';\r\n+                        }\r\n+                      }\r\n+                      if($task->end_date=='0000-00-00 00:00:00'){\r\n+                        if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                          $task_end_date = '0000-00-00';\r\n+                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                          $task_end_date = '00-00-0000';\r\n+                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                          $task_end_date = '00-00-0000';\r\n+                        }else{\r\n+                          $task_end_date = '0000-00-00';\r\n+                        }\r\n+                      }\r\n+                      if($task->start_date!='0000-00-00 00:00:00'){\r\n+                        if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                          $task_start_date = $tsDate->format('Y-m-d');\r\n+                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                          $task_start_date = $tsDate->format('d-m-Y');                       \r\n+                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                          $task_start_date = $tsDate->format('m-d-Y');\r\n+                        }else{\r\n+                          $task_start_date = $tsDate->format('Y-m-d');\r\n+                        }\r\n+                      }\r\n+                      if($task->end_date!='0000-00-00 00:00:00'){\r\n+                        if($wppm_date_setting=='Y-m-d H:i:s'){\r\n+                          $task_end_date = $teDate->format('Y-m-d');\r\n+                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){\r\n+                          $task_end_date = $teDate->format('d-m-Y');\r\n+                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){\r\n+                          $task_end_date = $teDate->format('m-d-Y');\r\n+                        }else{\r\n+                          $task_end_date = $teDate->format('Y-m-d');\r\n+                        }\r\n+                      }\r\n+                  }\r\n+                  $url = $wppmfunction->get_task_url( $task->id, $is_frontend );\r\n+                  ?>\r\n+                  \u003Ctr onclick= \"if(link)wppm_tl_handle_click(event, \u003C?php echo esc_attr($task->id) ?>, '\u003C?php echo esc_url( $url ); ?>',\u003C?php echo esc_attr($project_id) ?>)\" >\r\n+                    \u003Ctd class=\"bulk-selector\" onmouseover=\"link=false;\" onmouseout=\"link=true;\">\r\n+                      \u003Cdiv class=\"wppm-pl-item-selector\">\r\n+                        \u003Cdiv class=\"checkbox-container\">\r\n+                          \u003Cinput id=\"wppm_bulk_select_\u003C?php echo esc_attr($task->id) ?>\" class=\"wppm-task-bulk-select\" type=\"checkbox\" onchange=\"wppm_bulk_task_item_select_change();\" value=\"\u003C?php echo esc_attr( $task->id ); ?>\"\u002F>\r\n+                          \u003Clabel for=\"wppm_bulk_select_\u003C?php echo esc_attr($task->id) ?>\">\u003C\u002Flabel>\r\n+                        \u003C\u002Fdiv>\r\n+                      \u003C\u002Fdiv>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003Ctd onmouseover=\"link=true;\">\r\n+                      \u003C?php echo esc_html($task->task_name) ?>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003Ctd onmouseover=\"link=true;\">\r\n+                      \u003C?php if(!empty($project->project_name)){\r\n+                      echo esc_html($project->project_name);\r\n+                      }\r\n+                      ?>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003Ctd onmouseover=\"link=true;\">\r\n+                    \u003C?php if(!empty($task->status)){ ?>\r\n+                              \u003Cspan class=\"wppm_td_task_status\" style=\"background-color:\u003C?php echo (isset($status->bg_color))? esc_attr($status->bg_color):\"\";?>; color: \u003C?php echo (isset($status->color))? esc_attr($status->color):\"\"; ?>\">\u003C?php echo (isset($status->name))? esc_html($status->name):\"\" ?>\u003C\u002Fspan>\r\n+                    \u003C?php } ?>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003Ctd onmouseover=\"link=true;\">\r\n+                      \u003C?php if(!empty($task->priority)){ ?>\r\n+                              \u003Cspan class =\"wppm_td_task_priority\" style=\"background-color:\u003C?php echo (isset($priority->bg_color))? esc_attr($priority->bg_color):\"\" ;?>; color: \u003C?php echo (isset($priority->color))? esc_attr($priority->color):\"\"; ?>\">\u003C?php echo (isset($priority->name))? esc_html($priority->name):\"\" ?>\u003C\u002Fspan>\r\n+                      \u003C?php } ?>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003C?php if($wppm_default_task_date == 1 && $wppm_deafault_time_duration_task==0) { ?>\r\n+                            \u003Ctd onmouseover=\"link=true;\">\r\n+                            \u003C?php if(!empty($task_start_date)){ ?>\r\n+                                      \u003C?php echo esc_html($task_start_date);\r\n+                                  } ?>\r\n+                            \u003C\u002Ftd>\r\n+                            \u003Ctd onmouseover=\"link=true;\">\u003C?php\r\n+                            if(!empty($task_end_date) && ($task->status!=4 && $task_end_date \u003C $current_date && $task_end_date != '0000-00-00 00:00:00' && $task_end_date != '00-00-0000 00:00:00' && $task_end_date != '00-00-0000' && $task_end_date != '0000-00-00')){ \r\n+                                  $style =  \"color:#FF0000\";\r\n+                                  } else{\r\n+                                  $style = \"color:#2C3E50\";\r\n+                                  }?>\r\n+                                  \u003Cspan style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo esc_html($task_end_date);?>\u003C\u002Fspan>\r\n+                            \u003C\u002Ftd>\r\n+                    \u003C?php } ?>\r\n+                    \u003C?php if($wppm_deafault_time_duration_task==1){ ?>\r\n+                            \u003C?php\r\n+                            if(!empty($task_end_date) && ($task->status!=4 && $task_end_date \u003C $current_date && $task_end_date != '0000-00-00 00:00:00' && $task_end_date != '00-00-0000 00:00:00' && $task_end_date != '00-00-0000' && $task_end_date != '0000-00-00')){ \r\n+                              $style = \"color:#FF2222\";\r\n+                            } else {\r\n+                              $style = \"color:#2C3E50\";\r\n+                            } ?>\r\n+                            \u003Ctd onmouseover=\"link=true;\" class=\"wppm_table_td\">\u003Cspan style=\"\u003C?php echo esc_attr($style); ?>\">\u003C?php echo isset($wppm_task_duration) ? esc_html($wppm_task_duration):\"\" ?>\u003C\u002Fspan>\u003C\u002Ftd>\r\n+                    \u003C?php } ?>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003Ctd onmouseover=\"link=true;\" style=\"text-align:center;\">\r\n+                      \u003C?php \r\n+                        $i=0;\r\n+                        if(!empty($project_data['users'])){\r\n+                          $proj_users = explode(',',$project_data['users']);\r\n+                        }\r\n+                        if(!empty($task->users)){\r\n+                          $users = explode(\",\",$task->users);\r\n+                          foreach($users as $user){ \r\n+                            if( (!empty($proj_users)) && (in_array($user,$proj_users))){\r\n+                              $i++;\r\n+                              if( $i \u003C= 4 ){\r\n+                                $userdata = get_userdata( $user ); \r\n+                                if(!empty($userdata)){\r\n+                                  ?>\r\n+                                  \u003Ca href=\"#\" title=\"\u003C?php echo esc_attr($userdata->display_name); ?>\">\r\n+                                    \u003C?php echo get_avatar($userdata->ID, 25, \"mysteryman\")?>\r\n+                                  \u003C\u002Fa> \u003C?php\r\n+                                }\r\n+                              }\r\n+                            }\r\n+                          }\r\n+                        } \r\n+                        if($i > 4){\r\n+                          ?>\r\n+                          \u003Ca href=\"#\" class=\"wppm_avatar\">\r\n+                            \u003Cspan id=\"wppm_avatar\" style=\"background-color:black;\" class=\"avatar\">+\u003C?php echo esc_html($i-4) ?>\u003C\u002Fspan>\r\n+                          \u003C\u002Fa>\r\n+                        \u003C?php } ?>\r\n+                        \u003C?php\r\n+                        if($i==0){\r\n+                          echo esc_html_e('None','taskbuilder');\r\n+                        } ?>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003Ctd onmouseover=\"link=true;\">\r\n+                      \u003C?php\r\n+                      $completion = 0;\r\n+                      if ($total != 0 && $total != NULL) {\r\n+                        $completion = intval($total_checked_items\u002F$total*100);\r\n+                      }\r\n+                      echo esc_html($completion).'%';\r\n+                      ?>\r\n+                    \u003C\u002Ftd>\r\n+                    \u003C?php do_action('wppm_table_column');?>\r\n+                  \u003C\u002Ftr>\r\n+        \u003C?php   }\r\n+            } \r\n+          }\r\n+          ?>\r\n+        \u003C\u002Ftbody>\r\n+      \u003C\u002Ftable>\r\n+      \u003Cscript>\r\n+      function wppm_tl_handle_click(event, id, url,project_id) {\r\n+        if ( ( event.ctrlKey || event.metaKey ) && url ) {\r\n+          window.open(url, '_blank');\r\n+        } else {\r\n+          wppm_open_task(id,project_id);\r\n+        }\r\n+      }\r\n+\t\t\t\u003C\u002Fscript>\r\n+      \u003C?php\r\n+      $current_page=$page_no+1;\r\n+      $total_pages=ceil($totalrows\u002F$task_per_page);\r\n+      $prev_page_no=$current_page-1;\r\n+      $prev_class=($prev_page_no==0)?'disabled':'';\r\n+      $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;\r\n+      $next_class=($total_pages==$current_page)?'disabled':'';\r\n+      ?>\r\n+      \u003Cdiv class=\"row\" style=\"background-color:#ffffff;\">\r\n+        \u003Cdiv class=\"col-sm-12\">\r\n+          \u003Cdiv class=\"wppm_task_result\" style=\"\u003C?php echo esc_attr($total_pages==0)? '':'display: none;';?>\">\u003C?php esc_html_e('Your search request returned no results.','taskbuilder');?>\u003C\u002Fdiv>\r\n+          \u003Chr style=\"\u003C?php echo esc_attr($total_pages==0)? '':'display: none;';?>\">\r\n+        \u003C\u002Fdiv>\r\n+      \u003Cdiv>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+  \u003Cdiv class=\"row wppm_task_pagination_container\">\r\n+    \u003Cdiv class=\"col-sm-4\">\r\n+      \u003C?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;\u003C?php echo esc_attr($task_index) ?>&nbsp;\u003C?php echo esc_html_e('of','taskbuilder') ?>&nbsp;\u003C?php echo esc_html($totalrows) ?>&nbsp;\u003C?php echo esc_html_e('Tasks','taskbuilder')?>\r\n+    \u003C\u002Fdiv>\r\n+    \u003Cdiv class=\"wppm_task_pagination col-sm-4\" style=\"\u003C?php echo esc_attr($total_pages==0)? \"display:none;\":\"display:flex;\"?>\">\r\n+      \u003Cspan class=\"wppm-pagination-txt\">\r\n+          \u003Cspan>\u003C?php echo esc_html($current_page)?>&nbsp;\u003C?php echo esc_html_e('of','taskbuilder');?>&nbsp;\u003C?php echo esc_html($total_pages); ?>&nbsp;\u003C?php echo esc_html_e('Page','taskbuilder'); ?>\u003C\u002Fspan>\r\n+      \u003C\u002Fspan>\r\n+      \u003Cspan \u003C?php echo esc_attr($prev_class) ?> \r\n+        style=\"\u003C?php echo (isset($prev_class) && esc_attr($prev_class)== 'disabled') ? 'display:none;':'display:block;'?>cursor:pointer;\">\r\n+        \u003Ca class=\"wppm_pagination_prev\" onclick=\"return wppm_load_prev_task_page(\u003C?php echo esc_attr($prev_page_no) ?>,\u003C?php echo esc_attr($page_no) ?>,'\u003C?php echo esc_attr($sort_by)?>','\u003C?php echo esc_attr($order) ?>');\">\u003C?php echo esc_html_e('PREV','taskbuilder');?>\u003C\u002Fa>\r\n+      \u003C\u002Fspan>\r\n+      \u003Cspan \u003C?php echo esc_attr($next_class) ?>\r\n+        style=\"\u003C?php echo (isset($next_class) && esc_attr($next_class) == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;\">\r\n+        \u003Ca class=\"wppm_pagination_next\" onclick=\"return wppm_load_next_task_page(\u003C?php echo esc_attr($next_page_no) ?>,\u003C?php echo esc_attr($page_no) ?>,'\u003C?php echo esc_attr($sort_by)?>','\u003C?php echo esc_attr($order) ?>');\">\u003C?php echo esc_html_e('NEXT','taskbuilder');?>\u003C\u002Fa>\r\n+      \u003C\u002Fspan>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fform>\r\n+\u003Cstyle>\r\n+\t.select2-selection--single {\r\n+\t\theight: 30px!important;\r\n+\t}\r\n+  .select2-dropdown:hover {\r\n+    \tcolor: #23527c!important;;\r\n+\t}\r\n+\t.select2-results__options{\r\n+\t\tfont:15px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\r\n+\t\tmargin: 0!important;\r\n+\t\tline-height: inherit!important;\r\n+\t}\r\n+\t.select2-selection__rendered{\r\n+\t\tfont:15px \"Helvetica Neue\",Arial,Helvetica,sans-serif !important;\r\n+\t\tmargin-top: 5px!important;\r\n+\t}\r\n+\t.select2-selection__rendered:hover{\r\n+\t\tcolor: #2271b1 !important;\r\n+\t}\r\n+\t.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{\r\n+\t\tbackground-color: #e85f08!important;\r\n+\t\tcolor: white !important;\r\n+\t}\r\n+  .select2-container {\r\n+    max-width: 150px !important;\r\n+    min-width: 150px !important;\r\n+  }\r\n+  #wppm_task_filter{\r\n+\t\tmin-height: 30px !important;\r\n+    max-height: 35px !important;\r\n+\t}\r\n+  #wppm_task_table tr:nth-child(even) td{\r\n+    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-even-background-color'])?>;\r\n+    color:\u003C?php echo esc_attr($appearance_settings['list-item-even-text-color'])?>;\r\n+  }\r\n+  #wppm_task_table tr:nth-child(odd) td{\r\n+    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-odd-background-color'])?>;\r\n+    color:\u003C?php echo esc_attr($appearance_settings['list-item-odd-text-color'])?>;\r\n+  }\r\n+  #wppm_task_table tr:hover td{\r\n+    background-color:\u003C?php echo esc_attr($appearance_settings['list-item-hover-background-color'])?>;\r\n+  }\r\n+  #wppm_task_table tr:hover td{\r\n+    color: \u003C?php echo esc_attr($appearance_settings['list-item-hover-text-color'])?>;\r\n+  }\r\n+  #wppm_add_new_task_btn_tl:hover{\r\n+    background-color:\u003C?php echo esc_attr($appearance_settings['list-header-button-hover-color'])?>!important; \r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript type=\"text\u002Fjavascript\">\r\n+  var link = true;\r\n+  jQuery( document ).ready( function( jQuery ) {\r\n+    jQuery(\"input[name='wppm_task_search_filter']\").keypress(function(e) {\r\n+          \u002F\u002FEnter key\r\n+      if (e.which == 13) {\r\n+        wppm_task_search_filter('\u003C?php echo esc_attr($page); ?>');\r\n+      }\r\n+    });\r\n+    jQuery(\"#wppm_task_name_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_task_name_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_task_name_img').hide();\r\n+    });\r\n+    jQuery(\"#wppm_project_name_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_project_list_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_project_list_img').hide();\r\n+    });\r\n+    jQuery(\"#wppm_status_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_status_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_status_img').hide();\r\n+    });\r\n+    jQuery(\"#wppm_priority_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_priority_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_priority_img').hide();\r\n+    });\r\n+    jQuery(\"#wppm_start_date_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_start_date_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_start_date_img').hide();\r\n+    });\r\n+    jQuery(\"#wppm_end_date_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_end_date_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_end_date_img').hide();\r\n+    });\r\n+     jQuery(\"#wppm_task_duration_th\").hover(function(){\r\n+      jQuery('#wppm_chevron_sort_up_task_duration_img').show();\r\n+      jQuery('#wppm_chevron_sort_down_task_duration_img').hide();\r\n+    });\r\n+    \r\n+  })\r\n+  jQuery('#wppm_task_list_proj_filter').select2({ dropdownAutoWidth: true, width: 'auto' });\r\n+  jQuery('#wppm_task_list_proj_filter').val(\u003C?php echo esc_attr($proj_filter) ?>);\r\n+    \u002F**\r\n+ * Bulk item selector change\r\n+ *\u002F\r\n+  function wppm_bulk_task_item_select_change() {\r\n+    jQuery(\"#wppm-task-bulk-actions-btn\").show();\r\n+    var items = jQuery(\".wppm-task-bulk-select:checked\");\r\n+    var checked = items.length === 0 ? false : true;\r\n+    if(checked){\r\n+      jQuery(\".wppm-bulk-selector\").prop(\"checked\", checked);\r\n+    }else{\r\n+      jQuery(\"#wppm-task-bulk-actions-btn\").hide();\r\n+      jQuery(\".wppm-bulk-selector\").prop(\"checked\", false);\r\n+    }\r\n+  }\r\n+\u003C\u002Fscript>\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,89 +1,89 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-$wppm_default_task_list_view = get_option('wppm_default_task_list_view');\n-$settings = get_option(\"wppm-ap-modal\");\n-$id = isset($_GET['task_id']) ? intval($_GET['task_id']) : 0;\n-$action = isset($_GET['action']) ? sanitize_text_field($_GET['action']) : 'view';\n-$page = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';\n-global $wpdb,$wppmfunction,$current_user,$plugin_page;\n-echo wp_kses_post(!empty($wppmfunction->wppm_load_setting_header_html()) ? $wppmfunction->wppm_load_setting_header_html() : ''); ?>\n-\u003Cdiv class=\"wppm_bootstrap\">\n-  \u003Cdiv id=\"wppm_task_container\">\n-  \u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003C!-- Pop-up snippet start -->\n-  \u003Cdiv id=\"wppm_task_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\n-  \u003Cdiv id=\"wppm_task_popup_container\" style=\"display:none;\">\n-    \u003Cdiv class=\"wppm_bootstrap\">\n-      \u003Cdiv class=\"row\">\n-        \u003Cdiv id=\"wppm_task_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n-          \u003Cdiv id=\"wppm_task_popup_title\" class=\"row\">\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\n-          \u003Cdiv id=\"wppm_task_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\n-          \u003Cdiv id=\"wppm_task_popup_footer\" class=\"row\">\n-            \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\" >\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-            \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-\u003C!-- Pop-up snippet end -->\n-\u003C\u002Fdiv>\n-\u003Cstyle>\n-  #wppm_task_popup_title{\n-  background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\n-  }\n-  #wppm_task_popup_title h3{\n-    color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\n-  }\n-  #wppm_task_popup_body{\n-    background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\n-  }\n-  #wppm_task_popup_body label{\n-    color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\n-  }\n-  #wppm_task_popup_body input{\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_task_popup_body select{\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_task_popup_body span {\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_task_popup_body .select2-results__options {\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_task_popup_footer{\n-    background-color: \u003C?php echo esc_attr($settings['footer-bg-color'])?>!important;\n-  }\n-  .wppm_task_popup_action{\n-    background-color: \u003C?php echo esc_attr($settings['action-btn-bg-color'])?>!important;\n-    color:\u003C?php echo esc_attr( $settings['action-btn-text-color'])?>!important;\n-  }\n-\u003C\u002Fstyle>\n-\u003Cscript type=\"text\u002Fjavascript\">\n-jQuery(document).ready(function($){\n-    var wppm_open_task_id = \u003C?php echo intval($id); ?>;\n-    var task_list_view = \u003C?php echo (int) $wppm_default_task_list_view; ?>;\n-    var wppm_action = \u003C?php echo wp_json_encode($action); ?>;\n-    if (wppm_open_task_id > 0) {\n-        \u002F\u002F Open specific task\n-        wppm_open_task(wppm_open_task_id);\n-        return;\n-    }\n-    if (wppm_action === 'add') {\n-        \u002F\u002F Open Add Task modal\n-        wppm_add_new_task();\n-        return;\n-    }\n-    \u002F\u002F Default view\n-    if (task_list_view == 1) {\n-        wppm_get_task_list();\n-    } else {\n-        wppm_display_grid_view(\u003C?php echo wp_json_encode($page); ?>);\n-    }\n-\n-});\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+$wppm_default_task_list_view = get_option('wppm_default_task_list_view');\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+$id = isset($_GET['task_id']) ? intval($_GET['task_id']) : 0;\r\n+$action = isset($_GET['action']) ? sanitize_text_field($_GET['action']) : 'view';\r\n+$page = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';\r\n+global $wpdb,$wppmfunction,$current_user,$plugin_page;\r\n+echo wp_kses_post(!empty($wppmfunction->wppm_load_setting_header_html()) ? $wppmfunction->wppm_load_setting_header_html() : ''); ?>\r\n+\u003Cdiv class=\"wppm_bootstrap\">\r\n+  \u003Cdiv id=\"wppm_task_container\">\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003C!-- Pop-up snippet start -->\r\n+  \u003Cdiv id=\"wppm_task_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\r\n+  \u003Cdiv id=\"wppm_task_popup_container\" style=\"display:none;\">\r\n+    \u003Cdiv class=\"wppm_bootstrap\">\r\n+      \u003Cdiv class=\"row\">\r\n+        \u003Cdiv id=\"wppm_task_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\r\n+          \u003Cdiv id=\"wppm_task_popup_title\" class=\"row\">\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\r\n+          \u003Cdiv id=\"wppm_task_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\r\n+          \u003Cdiv id=\"wppm_task_popup_footer\" class=\"row\">\r\n+            \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\" >\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+            \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+\u003C!-- Pop-up snippet end -->\r\n+\u003C\u002Fdiv>\r\n+\u003Cstyle>\r\n+  #wppm_task_popup_title{\r\n+  background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\r\n+  }\r\n+  #wppm_task_popup_title h3{\r\n+    color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\r\n+  }\r\n+  #wppm_task_popup_body{\r\n+    background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\r\n+  }\r\n+  #wppm_task_popup_body label{\r\n+    color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\r\n+  }\r\n+  #wppm_task_popup_body input{\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_task_popup_body select{\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_task_popup_body span {\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_task_popup_body .select2-results__options {\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_task_popup_footer{\r\n+    background-color: \u003C?php echo esc_attr($settings['footer-bg-color'])?>!important;\r\n+  }\r\n+  .wppm_task_popup_action{\r\n+    background-color: \u003C?php echo esc_attr($settings['action-btn-bg-color'])?>!important;\r\n+    color:\u003C?php echo esc_attr( $settings['action-btn-text-color'])?>!important;\r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003Cscript type=\"text\u002Fjavascript\">\r\n+jQuery(document).ready(function($){\r\n+    var wppm_open_task_id = \u003C?php echo intval($id); ?>;\r\n+    var task_list_view = \u003C?php echo (int) $wppm_default_task_list_view; ?>;\r\n+    var wppm_action = \u003C?php echo wp_json_encode($action); ?>;\r\n+    if (wppm_open_task_id > 0) {\r\n+        \u002F\u002F Open specific task\r\n+        wppm_open_task(wppm_open_task_id);\r\n+        return;\r\n+    }\r\n+    if (wppm_action === 'add') {\r\n+        \u002F\u002F Open Add Task modal\r\n+        wppm_add_new_task();\r\n+        return;\r\n+    }\r\n+    \u002F\u002F Default view\r\n+    if (task_list_view == 1) {\r\n+        wppm_get_task_list();\r\n+    } else {\r\n+        wppm_display_grid_view(\u003C?php echo wp_json_encode($page); ?>);\r\n+    }\r\n+\r\n+});\r\n \u003C\u002Fscript>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fwppm_download_pdf.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fwppm_download_pdf.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fwppm_download_pdf.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fwppm_download_pdf.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,104 +1,104 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-$task_id = isset($_GET['id']) ? intval(sanitize_text_field(wp_unslash($_GET['id']))) : '';\n-$wppm_print_settings = get_option('wppm_print_settings');\n-$task = $wppmfunction->get_task($task_id);\n-$project = $wppmfunction->get_project($task['project']);\n-$proj_users = $project['users'] ? explode(',',$project['users']) : array();\n-$task_status = $task['status'];\n-$task_priority = $task['priority'];\n-$users = array();\n-$assigned_users = array();\n-$assigned_users_name = '';\n-$status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", esc_sql($task_status)));\n-$priority_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_priorities WHERE id = %d\", esc_sql($task_priority)));\n-if(!empty($task['users'])){\n-\t$users = explode(\",\",$task['users']);\n-}\n-if(!empty($users)){\n-\tforeach($users as $user){ \n-\t\tif( (!empty($proj_users)) && in_array($user,$proj_users)){\n-\t\t\t$userdata = get_userdata( $user ); \n-\t\t\t$assigned_users[] = $userdata->display_name;\n-\t\t\t$assigned_users_name = implode(', ',$assigned_users);\n-\t\t}\n-\t}\n-}\n-$task_creator_data = get_userdata( $task['created_by'] ); \n-$task_creator_name = $task_creator_data->display_name;\n-$export_colomn_value = array();\n-$unique_id = wp_rand();\n-$file_name = $unique_id.'.pdf';\n-$path_to_export = get_temp_dir().$file_name;\n-$url_to_export  = get_home_url().'\u002F?download-wppm-pdf-export='.$unique_id;\n-$upload_dir = wp_upload_dir();\n-$file_path = $upload_dir['basedir'] . '\u002Ftask-pdf-' . time() . '.pdf';\n-$file_url  = $upload_dir['baseurl'] . '\u002Ftask-pdf-' . time() . '.pdf';\n-$filename=$path_to_export;\n-$counter_rec = 0;\n-if (ob_get_length()) ob_end_clean();\n-require(WPPM_ABSPATH.'asset\u002Flib\u002Ffpdf\u002Fhtml2pdf.php');\n-$pdf = new PDF_HTML();\n-$pdf->AddPage();\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Task Title:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $task['task_name'], 0, 1);\n-\n-\u002F\u002F --- DESCRIPTION\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Description:', 0, 1);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->MultiCell(0, 10, $pdf->WriteHTML($task['description']), 0, 1);\n-\n-\u002F\u002F --- OTHER FIELDS\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Project:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $project['project_name'], 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Start Date:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $task['start_date'], 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Due Date:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $task['end_date'], 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Task Creator:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $task_creator_name, 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Status:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $status_name, 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Priority:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $priority_name, 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Assigned Users:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $assigned_users_name, 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Date Created:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $task['date_created'], 0, 1);\n-$pdf->Ln();\n-header('Content-Type: application\u002Foctet-stream charset=utf-8');\n-header('Content-Type: application\u002Fpdf');\n-header('Content-Disposition: attachment; filename='.$file_name);\n-header('Cache-Control: private, max-age=0, must-revalidate');\n-header(\"Pragma: public\");\n-$pdf->Output( 'D',$file_name); \u002F\u002F Save file locally\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+$task_id = isset($_GET['id']) ? intval(sanitize_text_field(wp_unslash($_GET['id']))) : '';\r\n+$wppm_print_settings = get_option('wppm_print_settings');\r\n+$task = $wppmfunction->get_task($task_id);\r\n+$project = $wppmfunction->get_project($task['project']);\r\n+$proj_users = $project['users'] ? explode(',',$project['users']) : array();\r\n+$task_status = $task['status'];\r\n+$task_priority = $task['priority'];\r\n+$users = array();\r\n+$assigned_users = array();\r\n+$assigned_users_name = '';\r\n+$status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", esc_sql($task_status)));\r\n+$priority_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_priorities WHERE id = %d\", esc_sql($task_priority)));\r\n+if(!empty($task['users'])){\r\n+\t$users = explode(\",\",$task['users']);\r\n+}\r\n+if(!empty($users)){\r\n+\tforeach($users as $user){ \r\n+\t\tif( (!empty($proj_users)) && in_array($user,$proj_users)){\r\n+\t\t\t$userdata = get_userdata( $user ); \r\n+\t\t\t$assigned_users[] = $userdata->display_name;\r\n+\t\t\t$assigned_users_name = implode(', ',$assigned_users);\r\n+\t\t}\r\n+\t}\r\n+}\r\n+$task_creator_data = get_userdata( $task['created_by'] ); \r\n+$task_creator_name = $task_creator_data->display_name;\r\n+$export_colomn_value = array();\r\n+$unique_id = wp_rand();\r\n+$file_name = $unique_id.'.pdf';\r\n+$path_to_export = get_temp_dir().$file_name;\r\n+$url_to_export  = get_home_url().'\u002F?download-wppm-pdf-export='.$unique_id;\r\n+$upload_dir = wp_upload_dir();\r\n+$file_path = $upload_dir['basedir'] . '\u002Ftask-pdf-' . time() . '.pdf';\r\n+$file_url  = $upload_dir['baseurl'] . '\u002Ftask-pdf-' . time() . '.pdf';\r\n+$filename=$path_to_export;\r\n+$counter_rec = 0;\r\n+if (ob_get_length()) ob_end_clean();\r\n+require(WPPM_ABSPATH.'asset\u002Flib\u002Ffpdf\u002Fhtml2pdf.php');\r\n+$pdf = new PDF_HTML();\r\n+$pdf->AddPage();\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Task Title:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $task['task_name'], 0, 1);\r\n+\r\n+\u002F\u002F --- DESCRIPTION\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Description:', 0, 1);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->MultiCell(0, 10, $pdf->WriteHTML($task['description']), 0, 1);\r\n+\r\n+\u002F\u002F --- OTHER FIELDS\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Project:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $project['project_name'], 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Start Date:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $task['start_date'], 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Due Date:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $task['end_date'], 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Task Creator:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $task_creator_name, 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Status:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $status_name, 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Priority:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $priority_name, 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Assigned Users:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $assigned_users_name, 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Date Created:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $task['date_created'], 0, 1);\r\n+$pdf->Ln();\r\n+header('Content-Type: application\u002Foctet-stream charset=utf-8');\r\n+header('Content-Type: application\u002Fpdf');\r\n+header('Content-Disposition: attachment; filename='.$file_name);\r\n+header('Cache-Control: private, max-age=0, must-revalidate');\r\n+header(\"Pragma: public\");\r\n+$pdf->Output( 'D',$file_name); \u002F\u002F Save file locally\r\n exit;\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fwppm_get_task_pdf.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fwppm_get_task_pdf.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fwppm_get_task_pdf.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fwppm_get_task_pdf.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,103 +1,103 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-global $current_user,$wpdb,$wppmfunction;\n-$task_id = isset($_GET['id']) ? absint(sanitize_text_field(wp_unslash($_GET['id']))) : '';\n-$wppm_print_settings = get_option('wppm_print_settings');\n-$task = $wppmfunction->get_task($task_id);\n-$project = $wppmfunction->get_project($task['project']);\n-$proj_users = $project['users'] ? explode(',',$project['users']) : array();\n-$task_status = absint($task['status']);\n-$task_priority = absint($task['priority']);\n-$users = array();\n-$assigned_users = array();\n-$assigned_users_name = '';\n-$status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", $task_status));\n-$priority_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_priorities WHERE id = %d\", $task_priority));\n-if(!empty($task['users'])){\n-\t$users = explode(\",\",$task['users']);\n-}\n-if(!empty($users)){\n-\tforeach($users as $user){ \n-\t\tif( (!empty($proj_users)) && in_array($user,$proj_users)){\n-\t\t\t$userdata = get_userdata( $user ); \n-\t\t\t$assigned_users[] = $userdata->display_name;\n-\t\t\t$assigned_users_name = implode(', ',$assigned_users);\n-\t\t}\n-\t}\n-}\n-$task_creator_data = get_userdata( $task['created_by'] ); \n-$task_creator_name = $task_creator_data->display_name;\n-$export_colomn_value = array();\n-$unique_id = wp_rand();\n-$file_name = $unique_id.'.pdf';\n-$path_to_export = get_temp_dir().$file_name;\n-$url_to_export  = get_home_url().'\u002F?download-wppm-pdf-export='.$unique_id;\n-$upload_dir = wp_upload_dir();\n-$file_path = $upload_dir['basedir'] . '\u002Ftask-pdf-' . time() . '.pdf';\n-$file_url  = $upload_dir['baseurl'] . '\u002Ftask-pdf-' . time() . '.pdf';\n-$filename=$path_to_export;\n-$counter_rec = 0;\n-if (ob_get_length()) ob_end_clean();\n-require(WPPM_ABSPATH.'asset\u002Flib\u002Ffpdf\u002Fhtml2pdf.php');\n-$pdf = new PDF_HTML();\n-$pdf->AddPage();\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Task Title:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $task['task_name'], 0, 1);\n-\n-\u002F\u002F --- DESCRIPTION\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Description:', 0, 1);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->MultiCell(0, 10, $pdf->WriteHTML($task['description']), 0, 1);\n-\n-\u002F\u002F --- OTHER FIELDS\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Project:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $project['project_name'], 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Start Date:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $task['start_date'], 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Due Date:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $task['end_date'], 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Task Creator:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $task_creator_name, 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Status:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $status_name, 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Priority:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $priority_name, 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Assigned Users:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $assigned_users_name, 0, 1);\n-\n-$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(45, 10, 'Date Created:', 0, 0);\n-$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\n-$pdf->Cell(0, 10, $task['date_created'], 0, 1);\n-$pdf->Ln();\n-header('Content-Type: application\u002Fpdf');\n-header('Content-Disposition: inline; filename=\"task.pdf\"');\n-header('Cache-Control: private, max-age=0, must-revalidate');\n-header('Pragma: public');\n-$pdf->Output( 'I',$file_name); \u002F\u002F Save file locally\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+global $current_user,$wpdb,$wppmfunction;\r\n+$task_id = isset($_GET['id']) ? absint(sanitize_text_field(wp_unslash($_GET['id']))) : '';\r\n+$wppm_print_settings = get_option('wppm_print_settings');\r\n+$task = $wppmfunction->get_task($task_id);\r\n+$project = $wppmfunction->get_project($task['project']);\r\n+$proj_users = $project['users'] ? explode(',',$project['users']) : array();\r\n+$task_status = absint($task['status']);\r\n+$task_priority = absint($task['priority']);\r\n+$users = array();\r\n+$assigned_users = array();\r\n+$assigned_users_name = '';\r\n+$status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\", $task_status));\r\n+$priority_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_priorities WHERE id = %d\", $task_priority));\r\n+if(!empty($task['users'])){\r\n+\t$users = explode(\",\",$task['users']);\r\n+}\r\n+if(!empty($users)){\r\n+\tforeach($users as $user){ \r\n+\t\tif( (!empty($proj_users)) && in_array($user,$proj_users)){\r\n+\t\t\t$userdata = get_userdata( $user ); \r\n+\t\t\t$assigned_users[] = $userdata->display_name;\r\n+\t\t\t$assigned_users_name = implode(', ',$assigned_users);\r\n+\t\t}\r\n+\t}\r\n+}\r\n+$task_creator_data = get_userdata( $task['created_by'] ); \r\n+$task_creator_name = $task_creator_data->display_name;\r\n+$export_colomn_value = array();\r\n+$unique_id = wp_rand();\r\n+$file_name = $unique_id.'.pdf';\r\n+$path_to_export = get_temp_dir().$file_name;\r\n+$url_to_export  = get_home_url().'\u002F?download-wppm-pdf-export='.$unique_id;\r\n+$upload_dir = wp_upload_dir();\r\n+$file_path = $upload_dir['basedir'] . '\u002Ftask-pdf-' . time() . '.pdf';\r\n+$file_url  = $upload_dir['baseurl'] . '\u002Ftask-pdf-' . time() . '.pdf';\r\n+$filename=$path_to_export;\r\n+$counter_rec = 0;\r\n+if (ob_get_length()) ob_end_clean();\r\n+require(WPPM_ABSPATH.'asset\u002Flib\u002Ffpdf\u002Fhtml2pdf.php');\r\n+$pdf = new PDF_HTML();\r\n+$pdf->AddPage();\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Task Title:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $task['task_name'], 0, 1);\r\n+\r\n+\u002F\u002F --- DESCRIPTION\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Description:', 0, 1);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->MultiCell(0, 10, $pdf->WriteHTML($task['description']), 0, 1);\r\n+\r\n+\u002F\u002F --- OTHER FIELDS\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Project:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $project['project_name'], 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Start Date:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $task['start_date'], 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Due Date:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $task['end_date'], 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Task Creator:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $task_creator_name, 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Status:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $status_name, 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Priority:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $priority_name, 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Assigned Users:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $assigned_users_name, 0, 1);\r\n+\r\n+$pdf->SetFont('Arial', 'B', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(45, 10, 'Date Created:', 0, 0);\r\n+$pdf->SetFont('Arial', '', $wppm_print_settings['wppm_print_body_font_size']);\r\n+$pdf->Cell(0, 10, $task['date_created'], 0, 1);\r\n+$pdf->Ln();\r\n+header('Content-Type: application\u002Fpdf');\r\n+header('Content-Disposition: inline; filename=\"task.pdf\"');\r\n+header('Cache-Control: private, max-age=0, must-revalidate');\r\n+header('Pragma: public');\r\n+$pdf->Output( 'I',$file_name); \u002F\u002F Save file locally\r\n exit;\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fwppm_update_admin_notice.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fwppm_update_admin_notice.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fadmin\u002Fwppm_update_admin_notice.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fadmin\u002Fwppm_update_admin_notice.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,19 +1,19 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-if (!get_option('wppm_show_update_notice')) {\n-    return;\n-}\n-\n-?>\n-\u003Cdiv class=\"notice notice-success is-dismissible\">\n-    \u003Cp>\n-    \u003Cstrong> \u003C?php echo esc_html__('Taskbuilder Updated!', 'taskbuilder'); ?>\u003C\u002Fstrong>\u003Cbr>\n-    \u003C?php echo esc_html__('The menu has moved to', 'taskbuilder'); ?> \u003Cb>\u003C?php echo esc_html__('Taskbuilder', 'taskbuilder'); ?>\u003C\u002Fb>.  \n-    \u003C?php echo esc_html__('You can now access', 'taskbuilder'); ?> \u003Cb> \u003C?php echo esc_html__('Projects, Tasks and Dashboard etc.', 'taskbuilder'); ?>  \u003C\u002Fb> \u003C?php echo esc_html__('from the new menu.', 'taskbuilder'); ?>\n-    \u003C\u002Fp>\n-\u003C\u002Fdiv>\n-\u003C?php\n-delete_option('wppm_show_update_notice');\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+if (!get_option('wppm_show_update_notice')) {\r\n+    return;\r\n+}\r\n+\r\n+?>\r\n+\u003Cdiv class=\"notice notice-success is-dismissible\">\r\n+    \u003Cp>\r\n+    \u003Cstrong> \u003C?php echo esc_html__('Taskbuilder Updated!', 'taskbuilder'); ?>\u003C\u002Fstrong>\u003Cbr>\r\n+    \u003C?php echo esc_html__('The menu has moved to', 'taskbuilder'); ?> \u003Cb>\u003C?php echo esc_html__('Taskbuilder', 'taskbuilder'); ?>\u003C\u002Fb>.  \r\n+    \u003C?php echo esc_html__('You can now access', 'taskbuilder'); ?> \u003Cb> \u003C?php echo esc_html__('Projects, Tasks and Dashboard etc.', 'taskbuilder'); ?>  \u003C\u002Fb> \u003C?php echo esc_html__('from the new menu.', 'taskbuilder'); ?>\r\n+    \u003C\u002Fp>\r\n+\u003C\u002Fdiv>\r\n+\u003C?php\r\n+delete_option('wppm_show_update_notice');\r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fclass-wppm-admin.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fclass-wppm-admin.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fclass-wppm-admin.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fclass-wppm-admin.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,1188 +1,1188 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-if ( ! class_exists( 'WPPM_Admin' ) ) :\n-  \n-  final class WPPM_Admin {\n-    \n-    \u002F\u002F constructor\n-    public function __construct() {\n-      add_action( 'admin_enqueue_scripts', array( $this, 'loadScripts') );\n-      add_action( 'admin_menu', array($this,'wppm_register_dashboard_menu') );\n-      add_action( 'admin_notices', array($this,'wppm_update_admin_notice'));    \n-      add_action( 'wp_ajax_wppm_add_new_project',array($this,'wppm_add_new_project'));\n-      add_action( 'wp_ajax_wppm_open_project',array($this,'wppm_open_project'));\n-      add_action( 'wp_ajax_nopriv_wppm_open_project',array($this,'wppm_open_project'));\n-      add_action( 'wp_ajax_wppm_get_users',array($this,'wppm_get_users'));\n-      add_action( 'wp_ajax_wppm_filter_autocomplete',array($this,'wppm_filter_autocomplete'));\n-      add_action( 'wp_ajax_wppm_get_general_setings',array($this,'wppm_get_general_settings'));\n-      add_action( 'wp_ajax_wppm_get_page_setings',array($this,'wppm_get_page_settings'));\n-      add_action( 'wp_ajax_wppm_get_category_settings',array($this,'wppm_get_category_settings'));\n-      add_action( 'wp_ajax_wppm_get_add_category',array($this,'wppm_get_add_category'));\n-      add_action( 'wp_ajax_wppm_set_add_category',array($this,'wppm_set_add_category'));\n-      add_action( 'wp_ajax_wppm_get_edit_category',array($this,'wppm_get_edit_category'));\n-      add_action( 'wp_ajax_wppm_set_edit_category',array($this,'wppm_set_edit_category'));\n-      add_action( 'wp_ajax_wppm_delete_category',array($this,'wppm_delete_category'));\n-      add_action( 'wp_ajax_wppm_get_proj_status_settings',array($this,'wppm_get_proj_status_settings'));\n-      add_action( 'wp_ajax_wppm_get_add_proj_status',array($this,'wppm_get_add_proj_status'));\n-      add_action( 'wp_ajax_wppm_set_category_order',array($this,'wppm_set_category_order'));\n-      add_action( 'wp_ajax_wppm_set_add_status',array($this,'wppm_set_add_status'));\n-      add_action( 'wp_ajax_wppm_get_edit_proj_status',array($this,'wppm_get_edit_proj_status'));\n-      add_action( 'wp_ajax_wppm_set_edit_status',array($this,'wppm_set_edit_status'));\n-      add_action( 'wp_ajax_wppm_delete_status',array($this,'wppm_delete_status'));\n-      add_action( 'wp_ajax_wppm_set_status_order',array($this,'wppm_set_status_order'));\n-      add_action( 'wp_ajax_wppm_create_project',array($this,'wppm_create_project'));\n-      add_action('wp_ajax_wppm_get_project_list',array($this,'wppm_get_project_list'),10,2);\n-      add_action('wp_ajax_wppm_view_project_tasks',array($this,'wppm_view_project_tasks'));\n-      add_action('wp_ajax_wppm_add_new_task',array($this,'wppm_add_new_task'));\n-      add_action('wp_ajax_wppm_get_task_list',array($this,'wppm_get_task_list'),100,3);\n-      add_action('wp_ajax_wppm_get_priority_settings',array($this,'wppm_get_priority_settings'));\n-      add_action('wp_ajax_wppm_add_task_priority',array($this,'wppm_add_task_priority'));\n-      add_action('wp_ajax_wppm_set_add_priority',array($this,'wppm_set_add_priority'));\n-      add_action('wp_ajax_wppm_get_edit_priority',array($this,'wppm_get_edit_priority'));\n-      add_action('wp_ajax_wppm_set_edit_priority',array($this,'wppm_set_edit_priority'));\n-      add_action('wp_ajax_wppm_delete_task_priority',array($this,'wppm_delete_task_priority'));\n-      add_action('wp_ajax_wppm_set_priority_order',array($this,'wppm_set_priority_order'));\n-      add_action('wp_ajax_wppm_get_task_status_settings',array($this,'wppm_get_task_status_settings'));\n-      add_action('wp_ajax_wppm_get_add_task_status',array($this,'wppm_get_add_task_status'));\n-      add_action('wp_ajax_wppm_set_add_task_status',array($this,'wppm_set_add_task_status'));\n-      add_action('wp_ajax_wppm_get_edit_task_status',array($this,'wppm_get_edit_task_status'));\n-      add_action('wp_ajax_wppm_set_edit_task_status',array($this,'wppm_set_edit_task_status'));\n-      add_action('wp_ajax_wppm_delete_task_status',array($this,'wppm_delete_task_status'));\n-      add_action('wp_ajax_wppm_set_task_status_order',array($this,'wppm_set_task_status_order'));\n-      add_action('wp_ajax_wppm_create_task',array($this,'wppm_create_task'));\n-      add_action('wp_ajax_wppm_get_task_list_card_view',array($this,'wppm_get_task_list_card_view'),100,4);\n-      add_action('wp_ajax_wppm_drag_and_drop_card',array($this,'wppm_drag_and_drop_card'));\n-      add_action('wp_ajax_wppm_open_task',array($this,'wppm_open_task'));\n-      add_action( 'wp_ajax_nopriv_wppm_open_task',array($this,'wppm_open_task'));\n-      add_action('wp_ajax_wppm_add_new_checklist',array($this,'wppm_add_new_checklist'));\n-      add_action('wp_ajax_wppm_add_new_checklist_item',array($this,'wppm_add_new_checklist_item'));\n-      add_action('wp_ajax_wppm_delete_checklist',array($this,'wppm_delete_checklist'),100,4);\n-      add_action('wp_ajax_wppm_set_checklist_progress',array($this,'wppm_set_checklist_progress'));\n-      add_action('wp_ajax_wppm_set_project_users',array($this,'wppm_set_project_users'));\n-      add_action('wp_ajax_wppm_get_task_users',array($this,'wppm_get_task_users'));\n-      add_action('wp_ajax_wppm_set_task_users',array($this,'wppm_set_task_users'));\n-      add_action('wp_ajax_wppm_submit_task_comment',array($this,'wppm_submit_task_comment'),100,2);\n-      add_action('wp_ajax_wppm_upload_file',array($this,'wppm_upload_file'));\n-      add_action('wp_ajax_wppm_upload_proj_attach_file',array($this,'wppm_upload_file'));\n-      add_action('wp_ajax_wppm_get_en_general_setting',array($this,'wppm_get_en_general_setting'));\n-      add_action('wp_ajax_wppm_set_en_general_settings',array($this,'wppm_set_en_general_settings'));\n-      add_action('wp_ajax_wppm_get_en_task_notifications',array($this,'wppm_get_en_task_notifications'));\n-      add_action('wp_ajax_wppm_edit_task_status',array($this,'wppm_edit_task_status'));\n-      add_action('wp_ajax_wppm_set_change_task_status',array($this,'wppm_set_change_task_status'));\n-      add_action('wp_ajax_wppm_edit_task_creator',array($this,'wppm_edit_task_creator'));\n-      add_action('wp_ajax_wppm_set_change_raised_by',array($this,'wppm_set_change_raised_by'));\n-      add_action('wp_ajax_wppm_edit_task_details',array($this,'wppm_edit_task_details'));\n-      add_action('wp_ajax_wppm_set_change_task_details',array($this,'wppm_set_change_task_details'));\n-      add_action('wp_ajax_wppm_edit_task_thread',array($this,'wppm_edit_task_thread'));\n-      add_action('wp_ajax_wppm_edit_proj_thread',array($this,'wppm_edit_proj_thread'));\n-      add_action('wp_ajax_wppm_set_edit_task_thread',array($this,'wppm_set_edit_task_thread'));\n-      add_action('wp_ajax_wppm_set_edit_proj_thread',array($this,'wppm_set_edit_proj_thread'));\n-      add_action('wp_ajax_wppm_delete_task_thread',array($this,'wppm_delete_task_thread'));\n-      add_action('wp_ajax_wppm_delete_proj_thread',array($this,'wppm_delete_proj_thread'));\n-      add_action('wp_ajax_wppm_set_delete_thread',array($this,'wppm_set_delete_thread'));\n-      add_action('wp_ajax_wppm_set_delete_proj_thread',array($this,'wppm_set_delete_proj_thread'));\n-      add_action('wp_ajax_wppm_edit_project_details',array($this,'wppm_edit_project_details'));\n-      add_action('wp_ajax_wppm_set_change_project_details',array($this,'wppm_set_change_project_details'));\n-      add_action('wp_ajax_wppm_edit_project_status',array($this,'wppm_edit_project_status'));\n-      add_action('wp_ajax_wppm_set_change_project_status',array($this,'wppm_set_change_project_status'),10,3);\n-      add_action('wp_ajax_wppm_edit_project_creator',array($this,'wppm_edit_project_creator'));\n-      add_action('wp_ajax_wppm_set_change_project_raised_by',array($this,'wppm_set_change_project_raised_by'));\n-      add_action('wp_ajax_wppm_get_delete_project',array($this,'wppm_get_delete_project'));\n-      add_action('wp_ajax_wppm_set_delete_project',array($this,'wppm_set_delete_project'));\n-      add_action('wp_ajax_wppm_get_delete_task',array($this,'wppm_get_delete_task'),100,3);\n-      add_action('wp_ajax_wppm_set_delete_task',array($this,'wppm_set_delete_task'));\n-      add_action('wp_ajax_wppm_get_edit_email_notification',array($this,'wppm_get_edit_email_notification'));\n-      add_action('wp_ajax_wppm_get_templates',array($this,'wppm_get_templates'));\n-      add_action('wp_ajax_wppm_set_edit_email_notification',array($this,'wppm_set_edit_email_notification'));\n-      add_action('wppm_set_change_project_status',array($this,'wppm_en_change_project_status'),100,3);\n-      add_action('wppm_set_project_users',array($this,'wppm_en_set_project_users'),100,1);\n-      add_action('wppm_after_set_change_task_status',array($this,'wppm_after_set_change_task_status'),100,3);\n-      add_action('wppm_set_task_users',array($this,'wppm_en_set_task_users'),100,1);\n-      add_action('wppm_after_task_created',array($this,'wppm_en_task_created'),100,1);\n-      add_action('wppm_after_project_created',array($this,'wppm_set_project_meta'));\n-      add_action('wppm_after_project_created',array($this,'wppm_en_project_created'),100,1);\n-      add_action('wppm_after_submit_task_comment',array($this,'wppm_en_submit_task_comment'),10,2);\n-      add_action('wppm_after_submit_proj_comment',array($this,'wppm_en_submit_proj_comment'),10,2);\n-      add_action('wp_ajax_wppm_set_general_settings',array($this,'wppm_set_general_settings'));\n-      add_action('wp_ajax_wppm_get_project_tasks',array($this,'wppm_get_project_tasks'),100,2);\n-      add_action('wp_ajax_wppm_remove_thread_attachment',array($this,'wppm_remove_thread_attachment'),10,5);\n-      add_action('wp_ajax_wppm_remove_proj_thread_attachment',array($this,'wppm_remove_proj_thread_attachment'),10,4);\n-      add_action('wp_ajax_wppm_remove_checklist_item',array($this,'wppm_remove_checklist_item'),10,4);\n-      add_action('wp_ajax_wppm_clone_task',array($this,'wppm_clone_task'),10,2);\n-      add_action('wp_ajax_wppm_set_clone_task',array($this,'wppm_set_clone_task'),10,4);\n-      add_action('wp_ajax_wppm_get_advanced_settings',array($this,'wppm_get_advanced_settings'));\n-      add_action('wp_ajax_wppm_set_advanced_settings',array($this,'wppm_set_advanced_settings'));\n-      add_action('wp_ajax_wppm_get_appearance_settings',array($this,'wppm_get_appearance_settings'));\n-      add_action('wp_ajax_wppm_get_project_visibility',array($this,'wppm_get_project_visibility'),10,1);\n-      add_action('wp_ajax_wppm_change_project_visibility',array($this,'wppm_change_project_visibility'),10,2);\n-      add_action('wp_ajax_wppm_submit_proj_comment',array($this,'wppm_submit_proj_comment'));\n-      add_action('wp_ajax_wppm_set_change_task_start_date',array($this,'wppm_set_change_task_start_date'));\n-      add_action('wp_ajax_wppm_set_change_task_end_date',array($this,'wppm_set_change_task_end_date'));\n-      add_action('wp_ajax_wppm_set_change_proj_start_date',array($this,'wppm_set_change_proj_start_date'));\n-      add_action('wp_ajax_wppm_set_change_proj_end_date',array($this,'wppm_set_change_proj_end_date'));\n-      add_action('wp_ajax_wppm_get_ap_proj_list',array($this,'wppm_get_ap_proj_list'));\n-      add_action('wp_ajax_wppm_set_ap_proj_list',array($this,'wppm_set_ap_proj_list'));\n-      add_action('wp_ajax_wppm_get_ap_task_list',array($this,'wppm_get_ap_task_list'));\n-      add_action('wp_ajax_wppm_set_ap_task_list',array($this,'wppm_set_ap_task_list'));\n-      add_action('wp_ajax_wppm_reset_ap_proj_list',array($this,'wppm_reset_ap_proj_list'));\n-      add_action('wp_ajax_wppm_reset_ap_task_list',array($this,'wppm_reset_ap_task_list'));\n-      add_action('wp_ajax_wppm_get_ap_individual_proj',array($this,'wppm_get_ap_individual_proj'));\n-      add_action('wp_ajax_wppm_set_ap_individual_proj',array($this,'wppm_set_ap_individual_proj'));\n-      add_action('wp_ajax_wppm_reset_ap_individual_proj',array($this,'wppm_reset_ap_individual_proj'));\n-      add_action('wp_ajax_wppm_get_ap_individual_task',array($this,'wppm_get_ap_individual_task'));\n-      add_action('wp_ajax_wppm_set_ap_individual_task',array($this,'wppm_set_ap_individual_task'));\n-      add_action('wp_ajax_wppm_reset_ap_individual_task',array($this,'wppm_reset_ap_individual_task'));\n-      add_action('wp_ajax_wppm_get_ap_modal_popup',array($this,'wppm_get_ap_modal_popup'));\n-      add_action('wp_ajax_wppm_set_ap_modal_popup',array($this,'wppm_set_ap_modal_popup'));\n-      add_action('wp_ajax_wppm_reset_ap_modal_popup',array($this,'wppm_reset_ap_modal_popup'));\n-      add_action('wp_ajax_wppm_get_ap_grid_view',array($this,'wppm_get_ap_grid_view'));\n-      add_action('wp_ajax_wppm_set_ap_grid_view',array($this,'wppm_set_ap_grid_view'));\n-      add_action('wp_ajax_wppm_reset_ap_grid_view',array($this,'wppm_reset_ap_grid_view'));\n-      add_action('wp_ajax_wppm_get_ap_settings',array($this,'wppm_get_ap_settings'));\n-      add_action('wp_ajax_wppm_set_ap_settings',array($this,'wppm_set_ap_settings'));\n-      add_action('wp_ajax_wppm_reset_ap_settings',array($this,'wppm_reset_ap_settings'));\n-      add_action('wp_ajax_wppm_get_bulk_change_proj_status',array($this,'wppm_get_bulk_change_proj_status'));\n-      add_action('wp_ajax_wppm_set_bulk_change_project_status',array($this,'wppm_set_bulk_change_project_status'));\n-      add_action('wp_ajax_wppm_get_bulk_change_proj_cat',array($this,'wppm_get_bulk_change_proj_cat'));\n-      add_action('wp_ajax_wppm_set_bulk_change_project_category',array($this,'wppm_set_bulk_change_project_category'));\n-      add_action('wp_ajax_wppm_get_bulk_assign_users',array($this,'wppm_get_bulk_assign_users'));\n-      add_action('wp_ajax_wppm_set_bulk_project_users',array($this,'wppm_set_bulk_project_users'));\n-      add_action('wp_ajax_wppm_get_bulk_delete_project',array($this,'wppm_get_bulk_delete_project'));\n-      add_action('wp_ajax_wppm_set_delete_bulk_projects',array($this,'wppm_set_delete_bulk_projects'));\n-      add_action('wp_ajax_wppm_get_bulk_change_task_status',array($this,'wppm_get_bulk_change_task_status'));\n-      add_action('wp_ajax_wppm_set_bulk_change_task_status',array($this,'wppm_set_bulk_change_task_status'));\n-      add_action('wp_ajax_wppm_get_bulk_change_task_priority',array($this,'wppm_get_bulk_change_task_priority'));\n-      add_action('wp_ajax_wppm_set_bulk_change_task_priority',array($this,'wppm_set_bulk_change_task_priority'));\n-      add_action('wp_ajax_wppm_get_bulk_delete_task',array($this,'wppm_get_bulk_delete_task'));\n-      add_action('wp_ajax_wppm_set_delete_bulk_tasks',array($this,'wppm_set_delete_bulk_tasks'));\n-      add_action('wp_ajax_wppm_get_coworker_permission_settings',array($this,'wppm_get_coworker_permission_settings'));\n-      add_action('wp_ajax_wppm_set_coworkers_permission_settings',array($this,'wppm_set_coworkers_permission_settings'));\n-      add_action('wp_ajax_wppm_get_rich_text_editor_settings',array($this,'wppm_get_rich_text_editor_settings'));\n-      add_action('wp_ajax_wppm_set_rich_text_editor_settings',array($this,'wppm_set_rich_text_editor_settings'));\n-      \u002F\u002F Search WP pages.\n-\t\t\tadd_action( 'wp_ajax_wppm_search_wp_pages', array($this, 'wppm_search_wp_pages'));\n-      add_action( 'wp_ajax_wppm_set_page_settings',array($this,'wppm_set_page_settings'));\n-      add_action( 'wp_ajax_wppm_get_task_pdf', array($this, 'wppm_get_task_pdf'));\n-      add_action( 'wp_ajax_wppm_download_pdf', array($this, 'wppm_download_pdf'),100,2);\n-      add_action('wp_ajax_wppm_get_print_task_settings',array($this,'wppm_get_print_task_settings'));\n-      add_action('wp_ajax_wppm_set_print_task_settings',array($this,'wppm_set_print_task_settings'));\n-      add_action('wp_ajax_wppm_update_checklist_order',array($this,'wppm_update_checklist_order'));\n-      add_action('wp_ajax_wppm_edit_checklist_item',array($this,'wppm_edit_checklist_item'),10,5);\n-      add_action('wp_ajax_wppm_set_checklist_item_name',array($this,'wppm_set_checklist_item_name'),10,3);\n-      add_action('wp_ajax_wppm_archive_task',array($this,'wppm_archive_task'));\n-      add_action('wp_ajax_wppm_get_project_tasks_kanban_view',array($this,'wppm_get_project_tasks_kanban_view'));\n-    }\n-    \n-    \u002F\u002F Load admin scripts\n-    public function loadScripts(){\n-      if(isset($_REQUEST['page']) && preg_match('\u002Fwppm-\u002F',sanitize_text_field($_REQUEST['page'])) || (isset($_REQUEST['page']) && $_REQUEST['page'] == 'wppm_dashboard')) :\n-        wp_enqueue_script('jquery');\n-        wp_enqueue_script('jquery-ui-core');\n-        wp_enqueue_script( 'jquery-ui-sortable' );\n-        wp_enqueue_script( 'jquery-ui-datepicker' );\n-        wp_enqueue_script('wp-color-picker');\n-        wp_enqueue_style('wp-color-picker');\n-        wp_enqueue_editor();\n-        \u002F\u002Fbootstrap\n-        wp_enqueue_style('wppm-bootstrap-css', WPPM_PLUGIN_URL.'asset\u002Fcss\u002Fwppm_bootstrap.css?version='.WPPM_VERSION );\n-        \u002F\u002Fadmin scripts\n-        wp_enqueue_script('wppm-admin', WPPM_PLUGIN_URL.'asset\u002Fjs\u002Fadmin.js?version='.WPPM_VERSION, array('jquery'), null, true);\n-        \u002F\u002Fwp_enqueue_script('wppm-public', WPPM_PLUGIN_URL.'asset\u002Fjs\u002Fpublic.js?version='.WPPM_VERSION, array('jquery'), null, true);\n-        wp_enqueue_script('wppm-modal', WPPM_PLUGIN_URL.'asset\u002Fjs\u002Fmodal.js?version='.WPPM_VERSION, array('jquery'), null, true);\n-\n-        \u002F\u002F wp_enqueue_style('wppm-public-css', WPPM_PLUGIN_URL . 'asset\u002Fcss\u002Fpublic.css?version='.WPPM_VERSION );\n-        wp_enqueue_style('wppm-admin-css', WPPM_PLUGIN_URL . 'asset\u002Fcss\u002Fadmin.css?version='.WPPM_VERSION );\n-        wp_enqueue_style('wppm-modal-css', WPPM_PLUGIN_URL . 'asset\u002Fcss\u002Fmodal.css?version='.WPPM_VERSION );\n-        \n-        \u002F\u002F flatpickr\n-        wp_enqueue_script('wppm-flatpickr-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fflatpickr\u002Fflatpickr.js?version='.WPPM_VERSION, ['jquery'], null, true);\n-        wp_enqueue_style('wppm-flatpickr-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fflatpickr\u002Fflatpickr.min.css?version='.WPPM_VERSION );\n-\n-        \u002F\u002Fselect2\n-        wp_enqueue_script('wppm-select2-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fselect2\u002Fselect2.min.js?version='.WPPM_VERSION, ['jquery'], null, true);\n-        wp_enqueue_style('wppm-select2-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fselect2\u002Fselect2.min.css?version='.WPPM_VERSION );\n-\n-        \u002F\u002Fgpopover\n-        wp_enqueue_script('wppm-gpopover-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.js?version='.WPPM_VERSION, ['jquery'], null, true);\n-        wp_enqueue_style('wppm-gpopover-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.css?version='.WPPM_VERSION );\n-        \n-        \u002F\u002Fdragula\n-        wp_enqueue_script('wppm-dragula-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fdragula\u002Fdragula.min.js?version='.WPPM_VERSION, ['jquery'], null, true);\n-        wp_enqueue_style('wppm-dragula-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fdragula\u002Fdragula.min.css?version='.WPPM_VERSION );\n-        \n-        \u002F\u002Fdatatable\n-        wp_enqueue_script('wppm-datatable-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002FDataTables\u002Fdatatables.min.js?version='.WPPM_VERSION, ['jquery'], null, true);\n-        wp_enqueue_style('wppm-datatable-css', WPPM_PLUGIN_URL.'asset\u002Flib\u002FDataTables\u002Fdatatables.min.css?version='.WPPM_VERSION );\n-        \u002F\u002F selectWoo.\n-\t\t\t  wp_enqueue_script( 'selectWoo', WPPM_PLUGIN_URL . 'asset\u002Fjs\u002FselectWoo\u002FselectWoo.full.min.js', array( 'jquery' ), WPPM_VERSION, true );\n-        wp_enqueue_script('chartjs',WPPM_PLUGIN_URL.'asset\u002Flib\u002Fchartjs\u002Fchart.js?version='.WPPM_VERSION, ['jquery'], null, true);\n-        \u002F\u002Flocalize script\n-        $loading_html = '\u003Cdiv class=\"wppm_loading_icon\">\u003Cimg src=\"'.WPPM_PLUGIN_URL.'asset\u002Fimages\u002Fajax-loading.gif\">\u003C\u002Fdiv>';\n-        $wppm_rich_text_editor = get_option('wppm_rich_text_editor');\n-        $wppm_tinymce_visibility_open_task = get_option('wppm_tinymce_visibility_open_task');\n-        $wppm_tinymce_visibility_open_project = get_option('wppm_tinymce_visibility_open_project');\n-        $localize_script_data = apply_filters( 'wppm_admin_localize_script', array(\n-            'ajax_url'             => esc_url(admin_url( 'admin-ajax.php' )),\n-            'loading_html'         => $loading_html,\n-            'add_new_category'     => esc_html__('Add New Category','taskbuilder'), \n-            'edit_category'        => esc_html__('Edit Category','taskbuilder'),\n-            'please_wait'          => esc_html__('Please wait ...','taskbuilder'),\n-            'confirm'              => esc_html__('Are you sure?','taskbuilder'),\n-            'add_new_status'       => esc_html__('Add New Status','taskbuilder'),\n-            'edit_status'          => esc_html__('Edit status','taskbuilder'),\n-            'add_new_priority'     => esc_html__('Add New Priority','taskbuilder'),\n-            'templates'            => esc_html__('Templates','taskbuilder'),\n-            'page'                 => isset($_REQUEST['page']) ? sanitize_text_field($_REQUEST['page']) : '',\n-            'rich_text_editor'     => !empty($wppm_rich_text_editor) ? (int) $wppm_rich_text_editor : 0,\n-            'wppm_tinymce_visibility_open_task' => !empty($wppm_tinymce_visibility_open_task) ? (int) $wppm_tinymce_visibility_open_task : 0,\n-            'wppm_tinymce_visibility_open_project' => !empty($wppm_tinymce_visibility_open_project) ? (int) $wppm_tinymce_visibility_open_project : 0,\n-        ));\n-        wp_localize_script( 'wppm-admin', 'wppm_admin', $localize_script_data );\n-      endif;\n-    }\n-    \n-    \u002F\u002F Dashboard Menus\n-    public function wppm_register_dashboard_menu(){\n-      global $current_user,$wppmfunction;\n-      add_menu_page( \n-        esc_html__( 'Taskbuilder', 'taskbuilder'),\n-        esc_html__( 'Taskbuilder','taskbuilder'),\n-        'read',\n-        'wppm-dashboard',\n-        array($this,'wppm_dashboard'),\n-        WPPM_PLUGIN_URL.'asset\u002Fimages\u002Ftaskbuilder_logo.svg',\n-        25\n-      );\n-      add_submenu_page(\n-          'wppm-dashboard',\n-          esc_html__('Dashboard', 'taskbuilder' ),\n-          esc_html__('Dashboard', 'taskbuilder' ),\n-          'read',\n-          'wppm-dashboard',\n-          array($this,'wppm_dashboard')\n-      );\n-      add_submenu_page(\n-        'wppm-dashboard',\n-        esc_html__('Project List', 'taskbuilder' ),\n-        esc_html__('Projects', 'taskbuilder' ),\n-        'read',\n-        'wppm-projects',\n-        array($this,'wppm_projects')\n-      );\n-      \n-      add_submenu_page(\n-        'wppm-dashboard',\n-        esc_html__('Tasks', 'taskbuilder' ),\n-        esc_html__('Tasks', 'taskbuilder' ),\n-        'read',\n-        'wppm-tasks',\n-        array($this,'wppm_tasks')\n-      );\n-\n-      add_submenu_page(\n-        'wppm-dashboard',\n-        esc_html__('Archived Tasks', 'taskbuilder' ),\n-        esc_html__('Archived Tasks', 'taskbuilder' ),\n-        'read',\n-        'wppm-archived-tasks',\n-        array($this,'wppm_archived_tasks')\n-      );\n-\n-      if(current_user_can('manage_options')){\n-        add_submenu_page(\n-          'wppm-dashboard',\n-          esc_html__('Email Notifications', 'taskbuilder' ),\n-          esc_html__('Email Notifications', 'taskbuilder' ),\n-          'manage_options',\n-          'wppm-email-notifications',\n-          array($this,'wppm_email_notifications')\n-        );\n-        add_submenu_page(\n-          'wppm-dashboard',\n-          esc_html__('Settings', 'taskbuilder' ),\n-          esc_html__('Settings', 'taskbuilder' ),\n-          'manage_options',\n-          'wppm-settings',\n-          array($this,'settings')\n-        );\n-        add_submenu_page(\n-          'wppm-dashboard',\n-          esc_html__('License', 'taskbuilder' ),\n-          esc_html__('License', 'taskbuilder' ),\n-          'manage_options',\n-          'wppm-license',\n-          array($this,'licenses')\n-        );\n-  \n-        add_submenu_page(\n-          'wppm-dashboard',\n-          esc_html__('Pro Features', 'taskbuilder' ),\n-          esc_html__('Pro Features', 'taskbuilder' ),\n-          'manage_options',\n-          'wppm-addons',\n-          array($this,'wppm_addons')\n-        );\n-        \n-      }\n-\n-      if(current_user_can('wppm_admin') && !current_user_can('manage_options')){\n-        add_submenu_page(\n-          'wppm-dashboard',\n-          esc_html__('Email Notifications', 'taskbuilder' ),\n-          esc_html__('Email Notifications', 'taskbuilder' ),\n-          'wppm_admin',\n-          'wppm-email-notifications',\n-          array($this,'wppm_email_notifications')\n-        );\n-        add_submenu_page(\n-          'wppm-dashboard',\n-          esc_html__('Settings', 'taskbuilder' ),\n-          esc_html__('Settings', 'taskbuilder' ),\n-          'wppm_admin',\n-          'wppm-settings',\n-          array($this,'settings')\n-        );\n-        add_submenu_page(\n-          'wppm-dashboard',\n-          esc_html__('License', 'taskbuilder' ),\n-          esc_html__('License', 'taskbuilder' ),\n-          'manage_options',\n-          'wppm-license',\n-          array($this,'licenses')\n-        );\n-  \n-        add_submenu_page(\n-          'wppm-dashboard',\n-          esc_html__('Addons', 'taskbuilder' ),\n-          esc_html__('Addons', 'taskbuilder' ),\n-          'wppm_admin',\n-          'wppm-addons',\n-          array($this,'wppm_addons')\n-        );\n-      }\n-      do_action('wppm_add_submenu_page');\n-    }\n-\n-    public function wppm_projects(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fprojects.php';\n-    }\n-\n-    public function wppm_dashboard(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fdashboard.php';\n-    }\n-\n-    public function wppm_add_new_project(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php';\n-      die();\n-    }\n-\n-    public function wppm_tasks(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php';\n-    }\n-\n-    public function wppm_archived_tasks(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php';\n-    }\n-\n-    public function wppm_email_notifications(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php';\n-    }\n-\n-    public function settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings.php';\n-    }\n-\n-    public function licenses(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Flicenses.php';\n-    }\n-    \n-    public function wppm_open_project(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php';\n-      die();\n-    }\n-\n-    public function wppm_get_users(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fget_users.php';\n-      die();\n-    }\n-\n-    public function wppm_filter_autocomplete(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_filter_autocomplete.php';\n-      die();\n-    }\n-\n-    public function wppm_get_general_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php';\n-      die();\n-    }\n-    \n-    public function wppm_get_category_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_get_add_category(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php';\n-      die();\n-    }\n-\n-    public function wppm_set_add_category(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_category.php';\n-      die();\n-    }\n-\n-    public function wppm_get_edit_category(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php';\n-      die();\n-    }\n-\n-    public function wppm_set_edit_category(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_category.php';\n-      die();\n-    }\n-\n-    public function wppm_delete_category(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_delete_category.php';\n-      die();\n-    }\n-\n-    public function wppm_get_proj_status_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_get_add_proj_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php';\n-      die();\n-    }\n-\n-    public function wppm_set_category_order(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_category_order.php';\n-      die();\n-    }\n-\n-    public function wppm_set_add_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_status.php';\n-      die();\n-    }\n-\n-    public function wppm_get_edit_proj_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php';\n-      die();\n-    }\n-\n-    public function wppm_set_edit_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_status.php';\n-      die();\n-    }\n-\n-    public function wppm_delete_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_delete_status.php';\n-      die();\n-    }\n-\n-    public function wppm_set_status_order(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_status_order.php';\n-      die();\n-    }\n-\n-    public function wppm_create_project(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_create_project.php';\n-      die();\n-    }\n-\n-    public function wppm_en_project_created($project_id){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_project_created.php';\n-    }\n-\n-    public function wppm_get_project_list(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php';\n-      die();\n-    }\n-\n-    public function wppm_view_project_tasks(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php';\n-      die();\n-    }\n-\n-    public function wppm_add_new_task(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php';\n-      die();\n-    }\n-\n-    public function wppm_get_task_list(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php';\n-      die();\n-    }\n-\n-    public function wppm_get_priority_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_add_task_priority(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php';\n-      die();\n-    }\n-\n-    public function wppm_set_add_priority(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_priority.php';\n-      die();\n-    }\n-\n-    public function wppm_get_edit_priority(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php';\n-      die();\n-    }\n-\n-    public function wppm_set_edit_priority(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_priority.php';\n-      die();\n-    }\n-\n-    public function wppm_delete_task_priority(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_delete_task_priority.php';\n-      die();\n-    }\n-\n-    public function wppm_set_priority_order(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_priority_order.php';\n-      die();\n-    }\n-\n-    public function wppm_get_task_status_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_get_add_task_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php';\n-      die();\n-    }\n-\n-    public function wppm_set_add_task_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_task_status.php';\n-      die();\n-    }\n-\n-    public function wppm_get_edit_task_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php';\n-      die();\n-    }\n-\n-    public function wppm_set_edit_task_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_task_status.php';\n-      die();\n-    }\n-\n-    public function wppm_delete_task_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_delete_task_status.php';\n-      die();\n-    }\n-\n-    public function wppm_set_task_status_order(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_task_status_order.php';\n-      die();\n-    }\n-\n-    public function wppm_create_task(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_create_task.php';\n-      die();\n-    }\n-\n-    public function wppm_get_task_list_card_view(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php';\n-      die();\n-    }\n-\n-    public function wppm_drag_and_drop_card(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_drag_and_drop_card.php';\n-      die();\n-    }\n-\n-    public function wppm_open_task(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php';\n-      die();\n-    }\n-\n-    public function wppm_add_new_checklist(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_add_new_checklist.php';\n-      die();\n-    }\n-\n-    public function wppm_add_new_checklist_item(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_add_new_checklist_item.php';\n-      die();\n-    }\n-\n-    public function wppm_delete_checklist(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_delete_checklist.php';\n-      die();\n-    }\n-\n-    public function wppm_set_checklist_progress(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_set_checklist_progress.php';\n-      die();\n-    }\n-\n-    public function wppm_set_project_users(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_project_users.php';\n-      die();\n-    }\n-\n-    public function wppm_get_task_users(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_get_task_users.php';\n-      die();\n-    }\n-\n-    public function wppm_set_task_users(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_task_users.php';\n-      die();\n-    }\n-\n-    public function wppm_submit_task_comment(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_submit_task_comment.php';\n-      die();\n-    }\n-\n-    public function wppm_upload_file(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php';\n-      die();\n-    }\n-\n-    public function wppm_get_en_general_setting(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php';\n-      die();\n-    }\n-\n-    public function wppm_set_en_general_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_en_general_setting.php';\n-      die();\n-    }\n-\n-    public function wppm_get_en_task_notifications(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_task_notifications.php';\n-      die();\n-    }\n-\n-    public function wppm_edit_task_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_status.php';\n-      die();\n-    }\n-\n-    public function wppm_set_change_task_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_status.php';\n-      die();\n-    }\n-\n-    public function wppm_edit_task_creator(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_creator.php';\n-      die();\n-    }\n-\n-    public function wppm_set_change_raised_by(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_raised_by.php';\n-      die();\n-    }\n-\n-    public function wppm_edit_task_details(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php';\n-      die();\n-    }\n-\n-    public function wppm_set_change_task_details(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_details.php';\n-      die();\n-    }\n-\n-    public function wppm_edit_task_thread(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_thread.php';\n-      die();\n-    }\n-\n-    public function wppm_edit_proj_thread(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_thread.php';\n-      die();\n-    }\n-\n-    public function wppm_set_edit_task_thread(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_edit_task_thread.php';\n-      die();\n-    }\n-\n-    public function wppm_set_edit_proj_thread(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_edit_proj_thread.php';\n-      die();\n-    }\n-\n-    public function wppm_delete_task_thread(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_delete_task_thread.php';\n-      die();\n-    }\n-\n-    public function wppm_delete_proj_thread(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_delete_proj_thread.php';\n-      die();\n-    }\n-\n-    public function wppm_set_delete_thread(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_delete_thread.php';\n-      die();\n-    }\n-\n-    public function wppm_set_delete_proj_thread(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_delete_proj_thread.php';\n-      die();\n-    }\n-\n-    public function wppm_edit_project_details(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php';\n-      die();\n-    }\n-\n-    public function wppm_set_project_meta($project_id){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_set_project_meta.php';\n-    }\n-\n-    public function wppm_set_change_project_details(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_details.php';\n-      die();\n-    }\n-\n-    public function wppm_edit_project_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_status.php';\n-      die();\n-    }\n-\n-    public function wppm_set_change_project_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_status.php';\n-      die();\n-    }\n-\n-    public function wppm_edit_project_creator(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_creator.php';\n-      die();\n-    }\n-\n-    public function wppm_set_change_project_raised_by(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_raised_by.php';\n-      die();\n-    }\n-\n-    public function wppm_get_delete_project(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_get_delete_project.php';\n-      die();\n-    }\n-\n-    public function wppm_set_delete_project(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_set_delete_project.php';\n-      die();\n-    }\n-\n-    public function wppm_get_delete_task(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_get_delete_task.php';\n-      die();\n-    }\n-\n-    public function wppm_set_delete_task(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_set_delete_task.php';\n-      die();\n-    }\n-\n-    public function wppm_get_edit_email_notification(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php';\n-      die();\n-    }\n-    \n-    public function wppm_get_templates(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php';\n-      die();\n-    }\n-\n-    public function wppm_set_edit_email_notification(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_edit_email_notification.php';\n-      die();\n-    }\n-\n-    public function wppm_en_change_project_status($project_id, $status_id, $prev_status){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_change_project_status.php';\n-    }\n-\n-    public function wppm_en_set_project_users($project_id){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_project_users.php';\n-    }\n-\n-    public function wppm_after_set_change_task_status($task_id,$status_id,$prev_status ){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_change_task_status.php';\n-    }\n-\n-    public function wppm_en_set_task_users($task_id){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_task_users.php';\n-    }\n-\n-    public function wppm_en_submit_task_comment($task_id,$comment_id){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_submit_task_comment.php';\n-    }\n-\n-    public function wppm_en_submit_proj_comment($proj_id,$comment_id){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_submit_proj_comment.php';\n-    }\n-\n-    public function wppm_en_task_created($task_id){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_task_created.php';\n-    }\n-\n-    public function wppm_set_general_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_general_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_get_project_tasks(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php';\n-      die();\n-    }\n-    \n-    public function wppm_remove_thread_attachment(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_thread_attachment_remove.php';\n-      die();\n-    }\n-\n-    public function wppm_remove_proj_thread_attachment(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_proj_thread_attachment_remove.php';\n-      die();\n-    }\n-\n-    public function wppm_remove_checklist_item(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_remove_checklist_item.php';\n-      die();\n-    }\n-\n-    public function wppm_addons(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Faddons.php';\n-    }\n-\n-    public function wppm_clone_task(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_clone_task.php';\n-      die();\n-    }\n-\n-    public function wppm_set_clone_task($task_id){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_clone_task.php';\n-      die();\n-    }\n-\n-    public function wppm_get_advanced_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_set_advanced_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_advanced_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_get_appearance_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_appearance_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_get_ap_proj_list(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php';\n-      die();\n-    }\n-\n-    public function wppm_get_ap_individual_proj(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php';\n-      die();\n-    }\n-\n-    public function wppm_get_ap_individual_task(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php';\n-      die();\n-    }\n-    \n-    public function wppm_set_ap_proj_list(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_proj_list.php';\n-      die();\n-    }\n-\n-    public function wppm_reset_ap_proj_list(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_proj_list.php';\n-      die();\n-    }\n-\n-    public function wppm_get_project_visibility(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php';\n-      die();\n-    }\n-\n-    public function wppm_change_project_visibility(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_change_project_visibility.php';\n-      die();\n-    }\n-\n-    public function wppm_submit_proj_comment(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_submit_project_comment.php';\n-      die();\n-    }\n-\n-    public function wppm_set_change_task_start_date(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_start_date.php';\n-      die();\n-    }\n-\n-    public function wppm_set_change_task_end_date(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_end_date.php';\n-      die();\n-    }\n-\n-    public function wppm_set_change_proj_start_date(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_proj_start_date.php';\n-      die();\n-    }\n-\n-    public function wppm_set_change_proj_end_date(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_proj_end_date.php';\n-      die();\n-    }\n-\n-    public function wppm_get_ap_task_list(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php';\n-      die();\n-    }\n-\n-    public function wppm_set_ap_task_list(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_task_list.php';\n-      die();\n-    }\n-\n-    public function wppm_reset_ap_task_list(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_task_list.php';\n-      die();\n-    }\n-\n-    public function wppm_set_ap_individual_proj(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_proj.php';\n-      die();\n-    }\n-\n-    public function wppm_set_ap_individual_task(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_task.php';\n-      die();\n-    }\n-\n-    public function wppm_reset_ap_individual_proj(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_individual_proj.php';\n-      die();\n-    }\n-\n-    public function wppm_reset_ap_individual_task(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_individual_task.php';\n-      die();\n-    }\n-\n-    public function wppm_reset_ap_modal_popup(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_modal_popup.php';\n-      die();\n-    }\n-\n-    public function wppm_get_ap_modal_popup(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php';\n-      die();\n-    }\n-\n-    public function wppm_set_ap_modal_popup(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_modal_popup.php';\n-      die();\n-    }\n-\n-    public function wppm_get_ap_grid_view(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php';\n-      die();\n-    }\n-\n-    public function wppm_set_ap_grid_view(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_grid_view.php';\n-      die();\n-    }\n-\n-    public function wppm_reset_ap_grid_view(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_grid_view.php';\n-      die();\n-    }\n-\n-    public function wppm_get_ap_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_set_ap_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_reset_ap_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_get_bulk_change_proj_status($proj_ids){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_status.php';\n-      die();\n-    }\n-\n-    public function wppm_set_bulk_change_project_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_change_proj_status.php';\n-      die();\n-    }\n-\n-    public function wppm_get_bulk_change_proj_cat($proj_ids){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_cat.php';\n-      die();\n-    }\n-\n-    public function wppm_set_bulk_change_project_category(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_change_project_category.php';\n-      die();\n-    }\n-\n-    public function wppm_get_bulk_assign_users($proj_ids){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_assign_users.php';\n-      die();\n-    }\n-\n-    public function wppm_set_bulk_project_users(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_project_users.php';\n-      die();\n-    }\n-\n-    public function wppm_get_bulk_delete_project($proj_ids){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_delete_project.php';\n-      die();\n-    }\n-\n-    public function wppm_set_delete_bulk_projects(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_set_delete_bulk_projects.php';\n-      die();\n-    }\n-\n-    public function wppm_get_bulk_change_task_status($task_ids){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_status.php';\n-      die();\n-    }\n-\n-    public function wppm_set_bulk_change_task_status(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_set_bulk_change_task_status.php';\n-      die();\n-    }\n-\n-    public function wppm_get_bulk_change_task_priority($task_ids){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_priority.php';\n-      die();\n-    }\n-\n-    public function wppm_set_bulk_change_task_priority(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_set_bulk_change_task_priority.php';\n-      die();\n-    }\n-\n-    public function wppm_get_bulk_delete_task($task_ids){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_delete_task.php';\n-      die();\n-    }\n-\n-    public function wppm_set_delete_bulk_tasks(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_set_delete_bulk_tasks.php';\n-      die();\n-    }\n-\n-    public function wppm_get_coworker_permission_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_set_coworkers_permission_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_coworkers_permission_settings.php';\n-      die();\n-    }\n-    \n-    public function wppm_get_rich_text_editor_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_set_rich_text_editor_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_rich_text_editor_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_get_page_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_page_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_search_wp_pages(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_search_wp_pages.php';\n-      die();\n-    }\n-\n-    public function wppm_set_page_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_page_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_get_task_pdf(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fwppm_get_task_pdf.php';\n-      die();\n-    }\n-\n-    public function wppm_download_pdf(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fwppm_download_pdf.php';\n-      die();\n-    }\n-\n-    public function wppm_get_print_task_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_print_task_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_set_print_task_settings(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_print_task_settings.php';\n-      die();\n-    }\n-\n-    public function wppm_update_checklist_order(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_update_checklist_order.php';\n-      die();\n-    }\n-    \n-    public function wppm_edit_checklist_item(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_edit_checklist_item.php';\n-      die();\n-    }\n-\n-    public function wppm_set_checklist_item_name(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_set_checklist_item_name.php';\n-      die();\n-    }\n-    \n-    public function wppm_archive_task(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_update_archive_task.php';\n-      die();\n-    }\n-\n-    public function wppm_update_admin_notice(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fwppm_update_admin_notice.php';\n-    } \n-\n-    public function wppm_get_project_tasks_kanban_view(){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks_kanban_view.php';\n-      die();\n-    }\n-  }\n-endif;\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+if ( ! class_exists( 'WPPM_Admin' ) ) :\r\n+  \r\n+  final class WPPM_Admin {\r\n+    \r\n+    \u002F\u002F constructor\r\n+    public function __construct() {\r\n+      add_action( 'admin_enqueue_scripts', array( $this, 'loadScripts') );\r\n+      add_action( 'admin_menu', array($this,'wppm_register_dashboard_menu') );\r\n+      add_action( 'admin_notices', array($this,'wppm_update_admin_notice'));    \r\n+      add_action( 'wp_ajax_wppm_add_new_project',array($this,'wppm_add_new_project'));\r\n+      add_action( 'wp_ajax_wppm_open_project',array($this,'wppm_open_project'));\r\n+      add_action( 'wp_ajax_nopriv_wppm_open_project',array($this,'wppm_open_project'));\r\n+      add_action( 'wp_ajax_wppm_get_users',array($this,'wppm_get_users'));\r\n+      add_action( 'wp_ajax_wppm_filter_autocomplete',array($this,'wppm_filter_autocomplete'));\r\n+      add_action( 'wp_ajax_wppm_get_general_setings',array($this,'wppm_get_general_settings'));\r\n+      add_action( 'wp_ajax_wppm_get_page_setings',array($this,'wppm_get_page_settings'));\r\n+      add_action( 'wp_ajax_wppm_get_category_settings',array($this,'wppm_get_category_settings'));\r\n+      add_action( 'wp_ajax_wppm_get_add_category',array($this,'wppm_get_add_category'));\r\n+      add_action( 'wp_ajax_wppm_set_add_category',array($this,'wppm_set_add_category'));\r\n+      add_action( 'wp_ajax_wppm_get_edit_category',array($this,'wppm_get_edit_category'));\r\n+      add_action( 'wp_ajax_wppm_set_edit_category',array($this,'wppm_set_edit_category'));\r\n+      add_action( 'wp_ajax_wppm_delete_category',array($this,'wppm_delete_category'));\r\n+      add_action( 'wp_ajax_wppm_get_proj_status_settings',array($this,'wppm_get_proj_status_settings'));\r\n+      add_action( 'wp_ajax_wppm_get_add_proj_status',array($this,'wppm_get_add_proj_status'));\r\n+      add_action( 'wp_ajax_wppm_set_category_order',array($this,'wppm_set_category_order'));\r\n+      add_action( 'wp_ajax_wppm_set_add_status',array($this,'wppm_set_add_status'));\r\n+      add_action( 'wp_ajax_wppm_get_edit_proj_status',array($this,'wppm_get_edit_proj_status'));\r\n+      add_action( 'wp_ajax_wppm_set_edit_status',array($this,'wppm_set_edit_status'));\r\n+      add_action( 'wp_ajax_wppm_delete_status',array($this,'wppm_delete_status'));\r\n+      add_action( 'wp_ajax_wppm_set_status_order',array($this,'wppm_set_status_order'));\r\n+      add_action( 'wp_ajax_wppm_create_project',array($this,'wppm_create_project'));\r\n+      add_action('wp_ajax_wppm_get_project_list',array($this,'wppm_get_project_list'),10,2);\r\n+      add_action('wp_ajax_wppm_view_project_tasks',array($this,'wppm_view_project_tasks'));\r\n+      add_action('wp_ajax_wppm_add_new_task',array($this,'wppm_add_new_task'));\r\n+      add_action('wp_ajax_wppm_get_task_list',array($this,'wppm_get_task_list'),100,3);\r\n+      add_action('wp_ajax_wppm_get_priority_settings',array($this,'wppm_get_priority_settings'));\r\n+      add_action('wp_ajax_wppm_add_task_priority',array($this,'wppm_add_task_priority'));\r\n+      add_action('wp_ajax_wppm_set_add_priority',array($this,'wppm_set_add_priority'));\r\n+      add_action('wp_ajax_wppm_get_edit_priority',array($this,'wppm_get_edit_priority'));\r\n+      add_action('wp_ajax_wppm_set_edit_priority',array($this,'wppm_set_edit_priority'));\r\n+      add_action('wp_ajax_wppm_delete_task_priority',array($this,'wppm_delete_task_priority'));\r\n+      add_action('wp_ajax_wppm_set_priority_order',array($this,'wppm_set_priority_order'));\r\n+      add_action('wp_ajax_wppm_get_task_status_settings',array($this,'wppm_get_task_status_settings'));\r\n+      add_action('wp_ajax_wppm_get_add_task_status',array($this,'wppm_get_add_task_status'));\r\n+      add_action('wp_ajax_wppm_set_add_task_status',array($this,'wppm_set_add_task_status'));\r\n+      add_action('wp_ajax_wppm_get_edit_task_status',array($this,'wppm_get_edit_task_status'));\r\n+      add_action('wp_ajax_wppm_set_edit_task_status',array($this,'wppm_set_edit_task_status'));\r\n+      add_action('wp_ajax_wppm_delete_task_status',array($this,'wppm_delete_task_status'));\r\n+      add_action('wp_ajax_wppm_set_task_status_order',array($this,'wppm_set_task_status_order'));\r\n+      add_action('wp_ajax_wppm_create_task',array($this,'wppm_create_task'));\r\n+      add_action('wp_ajax_wppm_get_task_list_card_view',array($this,'wppm_get_task_list_card_view'),100,4);\r\n+      add_action('wp_ajax_wppm_drag_and_drop_card',array($this,'wppm_drag_and_drop_card'));\r\n+      add_action('wp_ajax_wppm_open_task',array($this,'wppm_open_task'));\r\n+      add_action( 'wp_ajax_nopriv_wppm_open_task',array($this,'wppm_open_task'));\r\n+      add_action('wp_ajax_wppm_add_new_checklist',array($this,'wppm_add_new_checklist'));\r\n+      add_action('wp_ajax_wppm_add_new_checklist_item',array($this,'wppm_add_new_checklist_item'));\r\n+      add_action('wp_ajax_wppm_delete_checklist',array($this,'wppm_delete_checklist'),100,4);\r\n+      add_action('wp_ajax_wppm_set_checklist_progress',array($this,'wppm_set_checklist_progress'));\r\n+      add_action('wp_ajax_wppm_set_project_users',array($this,'wppm_set_project_users'));\r\n+      add_action('wp_ajax_wppm_get_task_users',array($this,'wppm_get_task_users'));\r\n+      add_action('wp_ajax_wppm_set_task_users',array($this,'wppm_set_task_users'));\r\n+      add_action('wp_ajax_wppm_submit_task_comment',array($this,'wppm_submit_task_comment'),100,2);\r\n+      add_action('wp_ajax_wppm_upload_file',array($this,'wppm_upload_file'));\r\n+      add_action('wp_ajax_wppm_upload_proj_attach_file',array($this,'wppm_upload_file'));\r\n+      add_action('wp_ajax_wppm_get_en_general_setting',array($this,'wppm_get_en_general_setting'));\r\n+      add_action('wp_ajax_wppm_set_en_general_settings',array($this,'wppm_set_en_general_settings'));\r\n+      add_action('wp_ajax_wppm_get_en_task_notifications',array($this,'wppm_get_en_task_notifications'));\r\n+      add_action('wp_ajax_wppm_edit_task_status',array($this,'wppm_edit_task_status'));\r\n+      add_action('wp_ajax_wppm_set_change_task_status',array($this,'wppm_set_change_task_status'));\r\n+      add_action('wp_ajax_wppm_edit_task_creator',array($this,'wppm_edit_task_creator'));\r\n+      add_action('wp_ajax_wppm_set_change_raised_by',array($this,'wppm_set_change_raised_by'));\r\n+      add_action('wp_ajax_wppm_edit_task_details',array($this,'wppm_edit_task_details'));\r\n+      add_action('wp_ajax_wppm_set_change_task_details',array($this,'wppm_set_change_task_details'));\r\n+      add_action('wp_ajax_wppm_edit_task_thread',array($this,'wppm_edit_task_thread'));\r\n+      add_action('wp_ajax_wppm_edit_proj_thread',array($this,'wppm_edit_proj_thread'));\r\n+      add_action('wp_ajax_wppm_set_edit_task_thread',array($this,'wppm_set_edit_task_thread'));\r\n+      add_action('wp_ajax_wppm_set_edit_proj_thread',array($this,'wppm_set_edit_proj_thread'));\r\n+      add_action('wp_ajax_wppm_delete_task_thread',array($this,'wppm_delete_task_thread'));\r\n+      add_action('wp_ajax_wppm_delete_proj_thread',array($this,'wppm_delete_proj_thread'));\r\n+      add_action('wp_ajax_wppm_set_delete_thread',array($this,'wppm_set_delete_thread'));\r\n+      add_action('wp_ajax_wppm_set_delete_proj_thread',array($this,'wppm_set_delete_proj_thread'));\r\n+      add_action('wp_ajax_wppm_edit_project_details',array($this,'wppm_edit_project_details'));\r\n+      add_action('wp_ajax_wppm_set_change_project_details',array($this,'wppm_set_change_project_details'));\r\n+      add_action('wp_ajax_wppm_edit_project_status',array($this,'wppm_edit_project_status'));\r\n+      add_action('wp_ajax_wppm_set_change_project_status',array($this,'wppm_set_change_project_status'),10,3);\r\n+      add_action('wp_ajax_wppm_edit_project_creator',array($this,'wppm_edit_project_creator'));\r\n+      add_action('wp_ajax_wppm_set_change_project_raised_by',array($this,'wppm_set_change_project_raised_by'));\r\n+      add_action('wp_ajax_wppm_get_delete_project',array($this,'wppm_get_delete_project'));\r\n+      add_action('wp_ajax_wppm_set_delete_project',array($this,'wppm_set_delete_project'));\r\n+      add_action('wp_ajax_wppm_get_delete_task',array($this,'wppm_get_delete_task'),100,3);\r\n+      add_action('wp_ajax_wppm_set_delete_task',array($this,'wppm_set_delete_task'));\r\n+      add_action('wp_ajax_wppm_get_edit_email_notification',array($this,'wppm_get_edit_email_notification'));\r\n+      add_action('wp_ajax_wppm_get_templates',array($this,'wppm_get_templates'));\r\n+      add_action('wp_ajax_wppm_set_edit_email_notification',array($this,'wppm_set_edit_email_notification'));\r\n+      add_action('wppm_set_change_project_status',array($this,'wppm_en_change_project_status'),100,3);\r\n+      add_action('wppm_set_project_users',array($this,'wppm_en_set_project_users'),100,1);\r\n+      add_action('wppm_after_set_change_task_status',array($this,'wppm_after_set_change_task_status'),100,3);\r\n+      add_action('wppm_set_task_users',array($this,'wppm_en_set_task_users'),100,1);\r\n+      add_action('wppm_after_task_created',array($this,'wppm_en_task_created'),100,1);\r\n+      add_action('wppm_after_project_created',array($this,'wppm_set_project_meta'));\r\n+      add_action('wppm_after_project_created',array($this,'wppm_en_project_created'),100,1);\r\n+      add_action('wppm_after_submit_task_comment',array($this,'wppm_en_submit_task_comment'),10,2);\r\n+      add_action('wppm_after_submit_proj_comment',array($this,'wppm_en_submit_proj_comment'),10,2);\r\n+      add_action('wp_ajax_wppm_set_general_settings',array($this,'wppm_set_general_settings'));\r\n+      add_action('wp_ajax_wppm_get_project_tasks',array($this,'wppm_get_project_tasks'),100,2);\r\n+      add_action('wp_ajax_wppm_remove_thread_attachment',array($this,'wppm_remove_thread_attachment'),10,5);\r\n+      add_action('wp_ajax_wppm_remove_proj_thread_attachment',array($this,'wppm_remove_proj_thread_attachment'),10,4);\r\n+      add_action('wp_ajax_wppm_remove_checklist_item',array($this,'wppm_remove_checklist_item'),10,4);\r\n+      add_action('wp_ajax_wppm_clone_task',array($this,'wppm_clone_task'),10,2);\r\n+      add_action('wp_ajax_wppm_set_clone_task',array($this,'wppm_set_clone_task'),10,4);\r\n+      add_action('wp_ajax_wppm_get_advanced_settings',array($this,'wppm_get_advanced_settings'));\r\n+      add_action('wp_ajax_wppm_set_advanced_settings',array($this,'wppm_set_advanced_settings'));\r\n+      add_action('wp_ajax_wppm_get_appearance_settings',array($this,'wppm_get_appearance_settings'));\r\n+      add_action('wp_ajax_wppm_get_project_visibility',array($this,'wppm_get_project_visibility'),10,1);\r\n+      add_action('wp_ajax_wppm_change_project_visibility',array($this,'wppm_change_project_visibility'),10,2);\r\n+      add_action('wp_ajax_wppm_submit_proj_comment',array($this,'wppm_submit_proj_comment'));\r\n+      add_action('wp_ajax_wppm_set_change_task_start_date',array($this,'wppm_set_change_task_start_date'));\r\n+      add_action('wp_ajax_wppm_set_change_task_end_date',array($this,'wppm_set_change_task_end_date'));\r\n+      add_action('wp_ajax_wppm_set_change_proj_start_date',array($this,'wppm_set_change_proj_start_date'));\r\n+      add_action('wp_ajax_wppm_set_change_proj_end_date',array($this,'wppm_set_change_proj_end_date'));\r\n+      add_action('wp_ajax_wppm_get_ap_proj_list',array($this,'wppm_get_ap_proj_list'));\r\n+      add_action('wp_ajax_wppm_set_ap_proj_list',array($this,'wppm_set_ap_proj_list'));\r\n+      add_action('wp_ajax_wppm_get_ap_task_list',array($this,'wppm_get_ap_task_list'));\r\n+      add_action('wp_ajax_wppm_set_ap_task_list',array($this,'wppm_set_ap_task_list'));\r\n+      add_action('wp_ajax_wppm_reset_ap_proj_list',array($this,'wppm_reset_ap_proj_list'));\r\n+      add_action('wp_ajax_wppm_reset_ap_task_list',array($this,'wppm_reset_ap_task_list'));\r\n+      add_action('wp_ajax_wppm_get_ap_individual_proj',array($this,'wppm_get_ap_individual_proj'));\r\n+      add_action('wp_ajax_wppm_set_ap_individual_proj',array($this,'wppm_set_ap_individual_proj'));\r\n+      add_action('wp_ajax_wppm_reset_ap_individual_proj',array($this,'wppm_reset_ap_individual_proj'));\r\n+      add_action('wp_ajax_wppm_get_ap_individual_task',array($this,'wppm_get_ap_individual_task'));\r\n+      add_action('wp_ajax_wppm_set_ap_individual_task',array($this,'wppm_set_ap_individual_task'));\r\n+      add_action('wp_ajax_wppm_reset_ap_individual_task',array($this,'wppm_reset_ap_individual_task'));\r\n+      add_action('wp_ajax_wppm_get_ap_modal_popup',array($this,'wppm_get_ap_modal_popup'));\r\n+      add_action('wp_ajax_wppm_set_ap_modal_popup',array($this,'wppm_set_ap_modal_popup'));\r\n+      add_action('wp_ajax_wppm_reset_ap_modal_popup',array($this,'wppm_reset_ap_modal_popup'));\r\n+      add_action('wp_ajax_wppm_get_ap_grid_view',array($this,'wppm_get_ap_grid_view'));\r\n+      add_action('wp_ajax_wppm_set_ap_grid_view',array($this,'wppm_set_ap_grid_view'));\r\n+      add_action('wp_ajax_wppm_reset_ap_grid_view',array($this,'wppm_reset_ap_grid_view'));\r\n+      add_action('wp_ajax_wppm_get_ap_settings',array($this,'wppm_get_ap_settings'));\r\n+      add_action('wp_ajax_wppm_set_ap_settings',array($this,'wppm_set_ap_settings'));\r\n+      add_action('wp_ajax_wppm_reset_ap_settings',array($this,'wppm_reset_ap_settings'));\r\n+      add_action('wp_ajax_wppm_get_bulk_change_proj_status',array($this,'wppm_get_bulk_change_proj_status'));\r\n+      add_action('wp_ajax_wppm_set_bulk_change_project_status',array($this,'wppm_set_bulk_change_project_status'));\r\n+      add_action('wp_ajax_wppm_get_bulk_change_proj_cat',array($this,'wppm_get_bulk_change_proj_cat'));\r\n+      add_action('wp_ajax_wppm_set_bulk_change_project_category',array($this,'wppm_set_bulk_change_project_category'));\r\n+      add_action('wp_ajax_wppm_get_bulk_assign_users',array($this,'wppm_get_bulk_assign_users'));\r\n+      add_action('wp_ajax_wppm_set_bulk_project_users',array($this,'wppm_set_bulk_project_users'));\r\n+      add_action('wp_ajax_wppm_get_bulk_delete_project',array($this,'wppm_get_bulk_delete_project'));\r\n+      add_action('wp_ajax_wppm_set_delete_bulk_projects',array($this,'wppm_set_delete_bulk_projects'));\r\n+      add_action('wp_ajax_wppm_get_bulk_change_task_status',array($this,'wppm_get_bulk_change_task_status'));\r\n+      add_action('wp_ajax_wppm_set_bulk_change_task_status',array($this,'wppm_set_bulk_change_task_status'));\r\n+      add_action('wp_ajax_wppm_get_bulk_change_task_priority',array($this,'wppm_get_bulk_change_task_priority'));\r\n+      add_action('wp_ajax_wppm_set_bulk_change_task_priority',array($this,'wppm_set_bulk_change_task_priority'));\r\n+      add_action('wp_ajax_wppm_get_bulk_delete_task',array($this,'wppm_get_bulk_delete_task'));\r\n+      add_action('wp_ajax_wppm_set_delete_bulk_tasks',array($this,'wppm_set_delete_bulk_tasks'));\r\n+      add_action('wp_ajax_wppm_get_coworker_permission_settings',array($this,'wppm_get_coworker_permission_settings'));\r\n+      add_action('wp_ajax_wppm_set_coworkers_permission_settings',array($this,'wppm_set_coworkers_permission_settings'));\r\n+      add_action('wp_ajax_wppm_get_rich_text_editor_settings',array($this,'wppm_get_rich_text_editor_settings'));\r\n+      add_action('wp_ajax_wppm_set_rich_text_editor_settings',array($this,'wppm_set_rich_text_editor_settings'));\r\n+      \u002F\u002F Search WP pages.\r\n+\t\t\tadd_action( 'wp_ajax_wppm_search_wp_pages', array($this, 'wppm_search_wp_pages'));\r\n+      add_action( 'wp_ajax_wppm_set_page_settings',array($this,'wppm_set_page_settings'));\r\n+      add_action( 'wp_ajax_wppm_get_task_pdf', array($this, 'wppm_get_task_pdf'));\r\n+      add_action( 'wp_ajax_wppm_download_pdf', array($this, 'wppm_download_pdf'),100,2);\r\n+      add_action('wp_ajax_wppm_get_print_task_settings',array($this,'wppm_get_print_task_settings'));\r\n+      add_action('wp_ajax_wppm_set_print_task_settings',array($this,'wppm_set_print_task_settings'));\r\n+      add_action('wp_ajax_wppm_update_checklist_order',array($this,'wppm_update_checklist_order'));\r\n+      add_action('wp_ajax_wppm_edit_checklist_item',array($this,'wppm_edit_checklist_item'),10,5);\r\n+      add_action('wp_ajax_wppm_set_checklist_item_name',array($this,'wppm_set_checklist_item_name'),10,3);\r\n+      add_action('wp_ajax_wppm_archive_task',array($this,'wppm_archive_task'));\r\n+      add_action('wp_ajax_wppm_get_project_tasks_kanban_view',array($this,'wppm_get_project_tasks_kanban_view'));\r\n+    }\r\n+    \r\n+    \u002F\u002F Load admin scripts\r\n+    public function loadScripts(){\r\n+      if(isset($_REQUEST['page']) && preg_match('\u002Fwppm-\u002F',sanitize_text_field($_REQUEST['page'])) || (isset($_REQUEST['page']) && $_REQUEST['page'] == 'wppm_dashboard')) :\r\n+        wp_enqueue_script('jquery');\r\n+        wp_enqueue_script('jquery-ui-core');\r\n+        wp_enqueue_script( 'jquery-ui-sortable' );\r\n+        wp_enqueue_script( 'jquery-ui-datepicker' );\r\n+        wp_enqueue_script('wp-color-picker');\r\n+        wp_enqueue_style('wp-color-picker');\r\n+        wp_enqueue_editor();\r\n+        \u002F\u002Fbootstrap\r\n+        wp_enqueue_style('wppm-bootstrap-css', WPPM_PLUGIN_URL.'asset\u002Fcss\u002Fwppm_bootstrap.css?version='.WPPM_VERSION );\r\n+        \u002F\u002Fadmin scripts\r\n+        wp_enqueue_script('wppm-admin', WPPM_PLUGIN_URL.'asset\u002Fjs\u002Fadmin.js?version='.WPPM_VERSION, array('jquery'), null, true);\r\n+        \u002F\u002Fwp_enqueue_script('wppm-public', WPPM_PLUGIN_URL.'asset\u002Fjs\u002Fpublic.js?version='.WPPM_VERSION, array('jquery'), null, true);\r\n+        wp_enqueue_script('wppm-modal', WPPM_PLUGIN_URL.'asset\u002Fjs\u002Fmodal.js?version='.WPPM_VERSION, array('jquery'), null, true);\r\n+\r\n+        \u002F\u002F wp_enqueue_style('wppm-public-css', WPPM_PLUGIN_URL . 'asset\u002Fcss\u002Fpublic.css?version='.WPPM_VERSION );\r\n+        wp_enqueue_style('wppm-admin-css', WPPM_PLUGIN_URL . 'asset\u002Fcss\u002Fadmin.css?version='.WPPM_VERSION );\r\n+        wp_enqueue_style('wppm-modal-css', WPPM_PLUGIN_URL . 'asset\u002Fcss\u002Fmodal.css?version='.WPPM_VERSION );\r\n+        \r\n+        \u002F\u002F flatpickr\r\n+        wp_enqueue_script('wppm-flatpickr-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fflatpickr\u002Fflatpickr.js?version='.WPPM_VERSION, ['jquery'], null, true);\r\n+        wp_enqueue_style('wppm-flatpickr-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fflatpickr\u002Fflatpickr.min.css?version='.WPPM_VERSION );\r\n+\r\n+        \u002F\u002Fselect2\r\n+        wp_enqueue_script('wppm-select2-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fselect2\u002Fselect2.min.js?version='.WPPM_VERSION, ['jquery'], null, true);\r\n+        wp_enqueue_style('wppm-select2-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fselect2\u002Fselect2.min.css?version='.WPPM_VERSION );\r\n+\r\n+        \u002F\u002Fgpopover\r\n+        wp_enqueue_script('wppm-gpopover-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.js?version='.WPPM_VERSION, ['jquery'], null, true);\r\n+        wp_enqueue_style('wppm-gpopover-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.css?version='.WPPM_VERSION );\r\n+        \r\n+        \u002F\u002Fdragula\r\n+        wp_enqueue_script('wppm-dragula-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fdragula\u002Fdragula.min.js?version='.WPPM_VERSION, ['jquery'], null, true);\r\n+        wp_enqueue_style('wppm-dragula-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fdragula\u002Fdragula.min.css?version='.WPPM_VERSION );\r\n+        \r\n+        \u002F\u002Fdatatable\r\n+        wp_enqueue_script('wppm-datatable-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002FDataTables\u002Fdatatables.min.js?version='.WPPM_VERSION, ['jquery'], null, true);\r\n+        wp_enqueue_style('wppm-datatable-css', WPPM_PLUGIN_URL.'asset\u002Flib\u002FDataTables\u002Fdatatables.min.css?version='.WPPM_VERSION );\r\n+        \u002F\u002F selectWoo.\r\n+\t\t\t  wp_enqueue_script( 'selectWoo', WPPM_PLUGIN_URL . 'asset\u002Fjs\u002FselectWoo\u002FselectWoo.full.min.js', array( 'jquery' ), WPPM_VERSION, true );\r\n+        wp_enqueue_script('chartjs',WPPM_PLUGIN_URL.'asset\u002Flib\u002Fchartjs\u002Fchart.js?version='.WPPM_VERSION, ['jquery'], null, true);\r\n+        \u002F\u002Flocalize script\r\n+        $loading_html = '\u003Cdiv class=\"wppm_loading_icon\">\u003Cimg src=\"'.WPPM_PLUGIN_URL.'asset\u002Fimages\u002Fajax-loading.gif\">\u003C\u002Fdiv>';\r\n+        $wppm_rich_text_editor = get_option('wppm_rich_text_editor');\r\n+        $wppm_tinymce_visibility_open_task = get_option('wppm_tinymce_visibility_open_task');\r\n+        $wppm_tinymce_visibility_open_project = get_option('wppm_tinymce_visibility_open_project');\r\n+        $localize_script_data = apply_filters( 'wppm_admin_localize_script', array(\r\n+            'ajax_url'             => esc_url(admin_url( 'admin-ajax.php' )),\r\n+            'loading_html'         => $loading_html,\r\n+            'add_new_category'     => esc_html__('Add New Category','taskbuilder'), \r\n+            'edit_category'        => esc_html__('Edit Category','taskbuilder'),\r\n+            'please_wait'          => esc_html__('Please wait ...','taskbuilder'),\r\n+            'confirm'              => esc_html__('Are you sure?','taskbuilder'),\r\n+            'add_new_status'       => esc_html__('Add New Status','taskbuilder'),\r\n+            'edit_status'          => esc_html__('Edit status','taskbuilder'),\r\n+            'add_new_priority'     => esc_html__('Add New Priority','taskbuilder'),\r\n+            'templates'            => esc_html__('Templates','taskbuilder'),\r\n+            'page'                 => isset($_REQUEST['page']) ? sanitize_text_field($_REQUEST['page']) : '',\r\n+            'rich_text_editor'     => !empty($wppm_rich_text_editor) ? (int) $wppm_rich_text_editor : 0,\r\n+            'wppm_tinymce_visibility_open_task' => !empty($wppm_tinymce_visibility_open_task) ? (int) $wppm_tinymce_visibility_open_task : 0,\r\n+            'wppm_tinymce_visibility_open_project' => !empty($wppm_tinymce_visibility_open_project) ? (int) $wppm_tinymce_visibility_open_project : 0,\r\n+        ));\r\n+        wp_localize_script( 'wppm-admin', 'wppm_admin', $localize_script_data );\r\n+      endif;\r\n+    }\r\n+    \r\n+    \u002F\u002F Dashboard Menus\r\n+    public function wppm_register_dashboard_menu(){\r\n+      global $current_user,$wppmfunction;\r\n+      add_menu_page( \r\n+        esc_html__( 'Taskbuilder', 'taskbuilder'),\r\n+        esc_html__( 'Taskbuilder','taskbuilder'),\r\n+        'read',\r\n+        'wppm-dashboard',\r\n+        array($this,'wppm_dashboard'),\r\n+        WPPM_PLUGIN_URL.'asset\u002Fimages\u002Ftaskbuilder_logo.svg',\r\n+        25\r\n+      );\r\n+      add_submenu_page(\r\n+          'wppm-dashboard',\r\n+          esc_html__('Dashboard', 'taskbuilder' ),\r\n+          esc_html__('Dashboard', 'taskbuilder' ),\r\n+          'read',\r\n+          'wppm-dashboard',\r\n+          array($this,'wppm_dashboard')\r\n+      );\r\n+      add_submenu_page(\r\n+        'wppm-dashboard',\r\n+        esc_html__('Project List', 'taskbuilder' ),\r\n+        esc_html__('Projects', 'taskbuilder' ),\r\n+        'read',\r\n+        'wppm-projects',\r\n+        array($this,'wppm_projects')\r\n+      );\r\n+      \r\n+      add_submenu_page(\r\n+        'wppm-dashboard',\r\n+        esc_html__('Tasks', 'taskbuilder' ),\r\n+        esc_html__('Tasks', 'taskbuilder' ),\r\n+        'read',\r\n+        'wppm-tasks',\r\n+        array($this,'wppm_tasks')\r\n+      );\r\n+\r\n+      add_submenu_page(\r\n+        'wppm-dashboard',\r\n+        esc_html__('Archived Tasks', 'taskbuilder' ),\r\n+        esc_html__('Archived Tasks', 'taskbuilder' ),\r\n+        'read',\r\n+        'wppm-archived-tasks',\r\n+        array($this,'wppm_archived_tasks')\r\n+      );\r\n+\r\n+      if(current_user_can('manage_options')){\r\n+        add_submenu_page(\r\n+          'wppm-dashboard',\r\n+          esc_html__('Email Notifications', 'taskbuilder' ),\r\n+          esc_html__('Email Notifications', 'taskbuilder' ),\r\n+          'manage_options',\r\n+          'wppm-email-notifications',\r\n+          array($this,'wppm_email_notifications')\r\n+        );\r\n+        add_submenu_page(\r\n+          'wppm-dashboard',\r\n+          esc_html__('Settings', 'taskbuilder' ),\r\n+          esc_html__('Settings', 'taskbuilder' ),\r\n+          'manage_options',\r\n+          'wppm-settings',\r\n+          array($this,'settings')\r\n+        );\r\n+        add_submenu_page(\r\n+          'wppm-dashboard',\r\n+          esc_html__('License', 'taskbuilder' ),\r\n+          esc_html__('License', 'taskbuilder' ),\r\n+          'manage_options',\r\n+          'wppm-license',\r\n+          array($this,'licenses')\r\n+        );\r\n+  \r\n+        add_submenu_page(\r\n+          'wppm-dashboard',\r\n+          esc_html__('Pro Features', 'taskbuilder' ),\r\n+          esc_html__('Pro Features', 'taskbuilder' ),\r\n+          'manage_options',\r\n+          'wppm-addons',\r\n+          array($this,'wppm_addons')\r\n+        );\r\n+        \r\n+      }\r\n+\r\n+      if(current_user_can('wppm_admin') && !current_user_can('manage_options')){\r\n+        add_submenu_page(\r\n+          'wppm-dashboard',\r\n+          esc_html__('Email Notifications', 'taskbuilder' ),\r\n+          esc_html__('Email Notifications', 'taskbuilder' ),\r\n+          'wppm_admin',\r\n+          'wppm-email-notifications',\r\n+          array($this,'wppm_email_notifications')\r\n+        );\r\n+        add_submenu_page(\r\n+          'wppm-dashboard',\r\n+          esc_html__('Settings', 'taskbuilder' ),\r\n+          esc_html__('Settings', 'taskbuilder' ),\r\n+          'wppm_admin',\r\n+          'wppm-settings',\r\n+          array($this,'settings')\r\n+        );\r\n+        add_submenu_page(\r\n+          'wppm-dashboard',\r\n+          esc_html__('License', 'taskbuilder' ),\r\n+          esc_html__('License', 'taskbuilder' ),\r\n+          'manage_options',\r\n+          'wppm-license',\r\n+          array($this,'licenses')\r\n+        );\r\n+  \r\n+        add_submenu_page(\r\n+          'wppm-dashboard',\r\n+          esc_html__('Addons', 'taskbuilder' ),\r\n+          esc_html__('Addons', 'taskbuilder' ),\r\n+          'wppm_admin',\r\n+          'wppm-addons',\r\n+          array($this,'wppm_addons')\r\n+        );\r\n+      }\r\n+      do_action('wppm_add_submenu_page');\r\n+    }\r\n+\r\n+    public function wppm_projects(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fprojects.php';\r\n+    }\r\n+\r\n+    public function wppm_dashboard(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fdashboard.php';\r\n+    }\r\n+\r\n+    public function wppm_add_new_project(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_tasks(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php';\r\n+    }\r\n+\r\n+    public function wppm_archived_tasks(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php';\r\n+    }\r\n+\r\n+    public function wppm_email_notifications(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php';\r\n+    }\r\n+\r\n+    public function settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings.php';\r\n+    }\r\n+\r\n+    public function licenses(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Flicenses.php';\r\n+    }\r\n+    \r\n+    public function wppm_open_project(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_users(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fget_users.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_filter_autocomplete(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_filter_autocomplete.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_general_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php';\r\n+      die();\r\n+    }\r\n+    \r\n+    public function wppm_get_category_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_add_category(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_add_category(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_category.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_edit_category(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_edit_category(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_category.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_delete_category(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_delete_category.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_proj_status_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_add_proj_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_category_order(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_category_order.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_add_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_edit_proj_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_edit_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_delete_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_delete_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_status_order(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_status_order.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_create_project(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_create_project.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_en_project_created($project_id){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_project_created.php';\r\n+    }\r\n+\r\n+    public function wppm_get_project_list(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_view_project_tasks(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_add_new_task(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_task_list(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_priority_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_add_task_priority(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_add_priority(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_priority.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_edit_priority(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_edit_priority(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_priority.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_delete_task_priority(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_delete_task_priority.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_priority_order(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_priority_order.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_task_status_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_add_task_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_add_task_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_task_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_edit_task_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_edit_task_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_task_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_delete_task_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_delete_task_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_task_status_order(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_task_status_order.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_create_task(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_create_task.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_task_list_card_view(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_drag_and_drop_card(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_drag_and_drop_card.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_open_task(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_add_new_checklist(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_add_new_checklist.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_add_new_checklist_item(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_add_new_checklist_item.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_delete_checklist(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_delete_checklist.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_checklist_progress(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_set_checklist_progress.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_project_users(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_project_users.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_task_users(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_get_task_users.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_task_users(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_task_users.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_submit_task_comment(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_submit_task_comment.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_upload_file(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_en_general_setting(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_en_general_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_en_general_setting.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_en_task_notifications(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_task_notifications.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_edit_task_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_change_task_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_edit_task_creator(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_creator.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_change_raised_by(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_raised_by.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_edit_task_details(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_change_task_details(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_details.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_edit_task_thread(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_thread.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_edit_proj_thread(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_thread.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_edit_task_thread(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_edit_task_thread.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_edit_proj_thread(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_edit_proj_thread.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_delete_task_thread(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_delete_task_thread.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_delete_proj_thread(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_delete_proj_thread.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_delete_thread(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_delete_thread.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_delete_proj_thread(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_delete_proj_thread.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_edit_project_details(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_project_meta($project_id){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_set_project_meta.php';\r\n+    }\r\n+\r\n+    public function wppm_set_change_project_details(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_details.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_edit_project_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_change_project_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_edit_project_creator(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_creator.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_change_project_raised_by(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_project_raised_by.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_delete_project(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_get_delete_project.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_delete_project(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_set_delete_project.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_delete_task(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_get_delete_task.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_delete_task(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_set_delete_task.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_edit_email_notification(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php';\r\n+      die();\r\n+    }\r\n+    \r\n+    public function wppm_get_templates(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_edit_email_notification(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_edit_email_notification.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_en_change_project_status($project_id, $status_id, $prev_status){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_change_project_status.php';\r\n+    }\r\n+\r\n+    public function wppm_en_set_project_users($project_id){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_project_users.php';\r\n+    }\r\n+\r\n+    public function wppm_after_set_change_task_status($task_id,$status_id,$prev_status ){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_change_task_status.php';\r\n+    }\r\n+\r\n+    public function wppm_en_set_task_users($task_id){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_set_task_users.php';\r\n+    }\r\n+\r\n+    public function wppm_en_submit_task_comment($task_id,$comment_id){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_submit_task_comment.php';\r\n+    }\r\n+\r\n+    public function wppm_en_submit_proj_comment($proj_id,$comment_id){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_submit_proj_comment.php';\r\n+    }\r\n+\r\n+    public function wppm_en_task_created($task_id){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Femail_notifications\u002Fwppm_en_task_created.php';\r\n+    }\r\n+\r\n+    public function wppm_set_general_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_general_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_project_tasks(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php';\r\n+      die();\r\n+    }\r\n+    \r\n+    public function wppm_remove_thread_attachment(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_thread_attachment_remove.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_remove_proj_thread_attachment(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_proj_thread_attachment_remove.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_remove_checklist_item(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_remove_checklist_item.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_addons(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Faddons.php';\r\n+    }\r\n+\r\n+    public function wppm_clone_task(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_clone_task.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_clone_task($task_id){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_clone_task.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_advanced_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_advanced_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_advanced_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_appearance_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_appearance_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_ap_proj_list(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_ap_individual_proj(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_ap_individual_task(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php';\r\n+      die();\r\n+    }\r\n+    \r\n+    public function wppm_set_ap_proj_list(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_proj_list.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_reset_ap_proj_list(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_proj_list.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_project_visibility(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_change_project_visibility(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_change_project_visibility.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_submit_proj_comment(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_submit_project_comment.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_change_task_start_date(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_start_date.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_change_task_end_date(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_change_task_end_date.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_change_proj_start_date(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_proj_start_date.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_change_proj_end_date(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_set_change_proj_end_date.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_ap_task_list(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_ap_task_list(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_task_list.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_reset_ap_task_list(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_task_list.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_ap_individual_proj(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_proj.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_ap_individual_task(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_task.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_reset_ap_individual_proj(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_individual_proj.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_reset_ap_individual_task(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_individual_task.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_reset_ap_modal_popup(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_modal_popup.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_ap_modal_popup(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_ap_modal_popup(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_modal_popup.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_ap_grid_view(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_ap_grid_view(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_grid_view.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_reset_ap_grid_view(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_grid_view.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_ap_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_ap_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_reset_ap_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_reset_ap_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_bulk_change_proj_status($proj_ids){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_bulk_change_project_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_change_proj_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_bulk_change_proj_cat($proj_ids){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_cat.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_bulk_change_project_category(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_change_project_category.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_bulk_assign_users($proj_ids){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_assign_users.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_bulk_project_users(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_set_bulk_project_users.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_bulk_delete_project($proj_ids){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_delete_project.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_delete_bulk_projects(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fwppm_set_delete_bulk_projects.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_bulk_change_task_status($task_ids){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_bulk_change_task_status(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_set_bulk_change_task_status.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_bulk_change_task_priority($task_ids){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_priority.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_bulk_change_task_priority(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_set_bulk_change_task_priority.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_bulk_delete_task($task_ids){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_delete_task.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_delete_bulk_tasks(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fwppm_set_delete_bulk_tasks.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_coworker_permission_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_coworkers_permission_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_coworkers_permission_settings.php';\r\n+      die();\r\n+    }\r\n+    \r\n+    public function wppm_get_rich_text_editor_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_rich_text_editor_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_rich_text_editor_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_page_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_page_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_search_wp_pages(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_search_wp_pages.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_page_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_page_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_task_pdf(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fwppm_get_task_pdf.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_download_pdf(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fwppm_download_pdf.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_get_print_task_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_get_print_task_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_print_task_settings(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fsettings\u002Fwppm_set_print_task_settings.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_update_checklist_order(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_update_checklist_order.php';\r\n+      die();\r\n+    }\r\n+    \r\n+    public function wppm_edit_checklist_item(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_edit_checklist_item.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_set_checklist_item_name(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fchecklist\u002Fwppm_set_checklist_item_name.php';\r\n+      die();\r\n+    }\r\n+    \r\n+    public function wppm_archive_task(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_update_archive_task.php';\r\n+      die();\r\n+    }\r\n+\r\n+    public function wppm_update_admin_notice(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fwppm_update_admin_notice.php';\r\n+    } \r\n+\r\n+    public function wppm_get_project_tasks_kanban_view(){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks_kanban_view.php';\r\n+      die();\r\n+    }\r\n+  }\r\n+endif;\r\n+\r\n new WPPM_Admin();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fclass-wppm-frontend.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fclass-wppm-frontend.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fclass-wppm-frontend.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fclass-wppm-frontend.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,91 +1,91 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-if ( ! class_exists( 'WPPM_Frontend' ) ) :\n-  \n-    final class WPPM_Frontend {\n-    \n-        \u002F\u002F constructor\n-        public function __construct() {\n-            add_action( 'wp_enqueue_scripts', array( $this, 'loadScripts') );\n-            add_shortcode( 'wppm_projects', array( $this, 'wppm_projects' ) );\n-            add_shortcode( 'wppm_tasks', array( $this, 'wppm_tasks' ) );\n-            add_shortcode( 'wppm_public_projects_tasks', array( $this, 'wppm_public_projects_tasks' ) );\n-            add_action('wp_ajax_nopriv_wppm_sign_in',array($this,'wppm_sign_in'));\n-            add_action('wp_ajax_nopriv_wppm_set_user_login',array($this,'wppm_set_user_login'));    \n-        }\n-\n-        \u002F\u002F Load scripts\n-        public function loadScripts(){\n-            \u002F\u002Fbootstrap\n-            wp_register_style('wppm-bootstrap-css', WPPM_PLUGIN_URL.'asset\u002Fcss\u002Fwppm_bootstrap.css?version='.WPPM_VERSION );\n-            \u002F\u002Fadmin scripts\n-            wp_register_script('wppm-admin', WPPM_PLUGIN_URL.'asset\u002Fjs\u002Fadmin.js?version='.WPPM_VERSION, array('jquery'));\n-            wp_register_script('wppm-public', WPPM_PLUGIN_URL.'asset\u002Fjs\u002Fpublic.js?version='.WPPM_VERSION, array('jquery'));\n-            wp_register_script('wppm-modal', WPPM_PLUGIN_URL.'asset\u002Fjs\u002Fmodal.js?version='.WPPM_VERSION, array('jquery'));\n-            wp_register_script('wppm-flatpickr-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fflatpickr\u002Fflatpickr.js?version='.WPPM_VERSION, array('jquery'));\n-            wp_register_script('wppm-select2-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fselect2\u002Fselect2.min.js?version='.WPPM_VERSION, array('jquery'));\n-            wp_register_script('wppm-gpopover-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.js?version='.WPPM_VERSION, array('jquery'));\n-            wp_register_script('wppm-dragula-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fdragula\u002Fdragula.min.js?version='.WPPM_VERSION, array('jquery'));\n-            wp_register_script('wppm-datatable-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002FDataTables\u002Fdatatables.min.js?version='.WPPM_VERSION, array('jquery'));\n-            wp_register_style('wppm-public-css', WPPM_PLUGIN_URL . 'asset\u002Fcss\u002Fpublic.css?version='.WPPM_VERSION );\n-            wp_register_style('wppm-admin-css', WPPM_PLUGIN_URL . 'asset\u002Fcss\u002Fadmin.css?version='.WPPM_VERSION );\n-            wp_register_style('wppm-modal-css', WPPM_PLUGIN_URL . 'asset\u002Fcss\u002Fmodal.css?version='.WPPM_VERSION );\n-            wp_register_style('wppm-flatpickr-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fflatpickr\u002Fflatpickr.min.css?version='.WPPM_VERSION );\n-            wp_register_style('wppm-select2-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fselect2\u002Fselect2.min.css?version='.WPPM_VERSION );\n-            wp_register_style('wppm-gpopover-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.css?version='.WPPM_VERSION );\n-            wp_register_style('wppm-dragula-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fdragula\u002Fdragula.min.css?version='.WPPM_VERSION );\n-            wp_register_script('wppm-datatable-js',WPPM_PLUGIN_URL.'asset\u002Flib\u002FDataTables\u002Fdatatables.min.js?version='.WPPM_VERSION, array('jquery'));\n-            wp_register_style('wppm-datatable-css',WPPM_PLUGIN_URL.'asset\u002Flib\u002FDataTables\u002Fdatatables.min.css?version='.WPPM_VERSION );\n-            \u002F\u002Flocalize script\n-            $loading_html = '\u003Cdiv class=\"wppm_loading_icon\">\u003Cimg src=\"'.WPPM_PLUGIN_URL.'asset\u002Fimages\u002Fajax-loading.gif\">\u003C\u002Fdiv>';\n-            $wppm_rich_text_editor = get_option('wppm_rich_text_editor');\n-            $localize_script_data = apply_filters( 'wppm_public_localize_script', array(\n-                'ajax_url'             => admin_url( 'admin-ajax.php' ),\n-                'loading_html'         => $loading_html,\n-                'please_wait'          =>esc_html__('Please wait ...','taskbuilder'),\n-                'confirm'              =>esc_html__('Are you sure?','taskbuilder'),\n-                'auth_code'            => isset($_REQUEST['auth-code'])? sanitize_text_field(wp_unslash($_REQUEST['auth-code'])) :\"\",\n-                'rich_text_editor'     => !empty($wppm_rich_text_editor) ? (int) $wppm_rich_text_editor : 0\n-\n-            ));\n-            wp_localize_script( 'wppm-public', 'wppm_admin', $localize_script_data );\n-            do_action('wppm_after_enqueue_script',$localize_script_data);\n-        }\n-          \u002F**\n-         * Main shortcode\n-         *\u002F\n-\n-        function wppm_projects(){\n-            ob_start();\n-            include WPPM_ABSPATH.'includes\u002Ffrontend\u002Fshortcode.php';\n-            return ob_get_clean();\n-        }\n-\n-        function wppm_tasks($attr){\n-            ob_start();\n-            include WPPM_ABSPATH.'includes\u002Ffrontend\u002Fwppm_tasks_shortcode.php';\n-            return ob_get_clean();\n-        }\n-\n-        function wppm_sign_in(){\n-            include WPPM_ABSPATH.'includes\u002Ffrontend\u002Fwppm_sign_in.php';\n-            die();\n-        }\n-\n-        function wppm_set_user_login(){\n-            include WPPM_ABSPATH.'includes\u002Ffrontend\u002Fwppm_set_user_login.php';\n-        }\n-\n-        function wppm_public_projects_tasks(){\n-            ob_start();\n-            include WPPM_ABSPATH.'includes\u002Ffrontend\u002Fwppm_public_projects_tasks.php';\n-            return ob_get_clean(); \n-        }\n-\n-    }\n-endif;\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+if ( ! class_exists( 'WPPM_Frontend' ) ) :\r\n+  \r\n+    final class WPPM_Frontend {\r\n+    \r\n+        \u002F\u002F constructor\r\n+        public function __construct() {\r\n+            add_action( 'wp_enqueue_scripts', array( $this, 'loadScripts') );\r\n+            add_shortcode( 'wppm_projects', array( $this, 'wppm_projects' ) );\r\n+            add_shortcode( 'wppm_tasks', array( $this, 'wppm_tasks' ) );\r\n+            add_shortcode( 'wppm_public_projects_tasks', array( $this, 'wppm_public_projects_tasks' ) );\r\n+            add_action('wp_ajax_nopriv_wppm_sign_in',array($this,'wppm_sign_in'));\r\n+            add_action('wp_ajax_nopriv_wppm_set_user_login',array($this,'wppm_set_user_login'));    \r\n+        }\r\n+\r\n+        \u002F\u002F Load scripts\r\n+        public function loadScripts(){\r\n+            \u002F\u002Fbootstrap\r\n+            wp_register_style('wppm-bootstrap-css', WPPM_PLUGIN_URL.'asset\u002Fcss\u002Fwppm_bootstrap.css?version='.WPPM_VERSION );\r\n+            \u002F\u002Fadmin scripts\r\n+            wp_register_script('wppm-admin', WPPM_PLUGIN_URL.'asset\u002Fjs\u002Fadmin.js?version='.WPPM_VERSION, array('jquery'));\r\n+            wp_register_script('wppm-public', WPPM_PLUGIN_URL.'asset\u002Fjs\u002Fpublic.js?version='.WPPM_VERSION, array('jquery'));\r\n+            wp_register_script('wppm-modal', WPPM_PLUGIN_URL.'asset\u002Fjs\u002Fmodal.js?version='.WPPM_VERSION, array('jquery'));\r\n+            wp_register_script('wppm-flatpickr-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fflatpickr\u002Fflatpickr.js?version='.WPPM_VERSION, array('jquery'));\r\n+            wp_register_script('wppm-select2-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fselect2\u002Fselect2.min.js?version='.WPPM_VERSION, array('jquery'));\r\n+            wp_register_script('wppm-gpopover-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.js?version='.WPPM_VERSION, array('jquery'));\r\n+            wp_register_script('wppm-dragula-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002Fdragula\u002Fdragula.min.js?version='.WPPM_VERSION, array('jquery'));\r\n+            wp_register_script('wppm-datatable-js', WPPM_PLUGIN_URL.'asset\u002Flib\u002FDataTables\u002Fdatatables.min.js?version='.WPPM_VERSION, array('jquery'));\r\n+            wp_register_style('wppm-public-css', WPPM_PLUGIN_URL . 'asset\u002Fcss\u002Fpublic.css?version='.WPPM_VERSION );\r\n+            wp_register_style('wppm-admin-css', WPPM_PLUGIN_URL . 'asset\u002Fcss\u002Fadmin.css?version='.WPPM_VERSION );\r\n+            wp_register_style('wppm-modal-css', WPPM_PLUGIN_URL . 'asset\u002Fcss\u002Fmodal.css?version='.WPPM_VERSION );\r\n+            wp_register_style('wppm-flatpickr-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fflatpickr\u002Fflatpickr.min.css?version='.WPPM_VERSION );\r\n+            wp_register_style('wppm-select2-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fselect2\u002Fselect2.min.css?version='.WPPM_VERSION );\r\n+            wp_register_style('wppm-gpopover-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fgpopover\u002Fjquery.gpopover.css?version='.WPPM_VERSION );\r\n+            wp_register_style('wppm-dragula-css', WPPM_PLUGIN_URL . 'asset\u002Flib\u002Fdragula\u002Fdragula.min.css?version='.WPPM_VERSION );\r\n+            wp_register_script('wppm-datatable-js',WPPM_PLUGIN_URL.'asset\u002Flib\u002FDataTables\u002Fdatatables.min.js?version='.WPPM_VERSION, array('jquery'));\r\n+            wp_register_style('wppm-datatable-css',WPPM_PLUGIN_URL.'asset\u002Flib\u002FDataTables\u002Fdatatables.min.css?version='.WPPM_VERSION );\r\n+            \u002F\u002Flocalize script\r\n+            $loading_html = '\u003Cdiv class=\"wppm_loading_icon\">\u003Cimg src=\"'.WPPM_PLUGIN_URL.'asset\u002Fimages\u002Fajax-loading.gif\">\u003C\u002Fdiv>';\r\n+            $wppm_rich_text_editor = get_option('wppm_rich_text_editor');\r\n+            $localize_script_data = apply_filters( 'wppm_public_localize_script', array(\r\n+                'ajax_url'             => admin_url( 'admin-ajax.php' ),\r\n+                'loading_html'         => $loading_html,\r\n+                'please_wait'          =>esc_html__('Please wait ...','taskbuilder'),\r\n+                'confirm'              =>esc_html__('Are you sure?','taskbuilder'),\r\n+                'auth_code'            => isset($_REQUEST['auth-code'])? sanitize_text_field(wp_unslash($_REQUEST['auth-code'])) :\"\",\r\n+                'rich_text_editor'     => !empty($wppm_rich_text_editor) ? (int) $wppm_rich_text_editor : 0\r\n+\r\n+            ));\r\n+            wp_localize_script( 'wppm-public', 'wppm_admin', $localize_script_data );\r\n+            do_action('wppm_after_enqueue_script',$localize_script_data);\r\n+        }\r\n+          \u002F**\r\n+         * Main shortcode\r\n+         *\u002F\r\n+\r\n+        function wppm_projects(){\r\n+            ob_start();\r\n+            include WPPM_ABSPATH.'includes\u002Ffrontend\u002Fshortcode.php';\r\n+            return ob_get_clean();\r\n+        }\r\n+\r\n+        function wppm_tasks($attr){\r\n+            ob_start();\r\n+            include WPPM_ABSPATH.'includes\u002Ffrontend\u002Fwppm_tasks_shortcode.php';\r\n+            return ob_get_clean();\r\n+        }\r\n+\r\n+        function wppm_sign_in(){\r\n+            include WPPM_ABSPATH.'includes\u002Ffrontend\u002Fwppm_sign_in.php';\r\n+            die();\r\n+        }\r\n+\r\n+        function wppm_set_user_login(){\r\n+            include WPPM_ABSPATH.'includes\u002Ffrontend\u002Fwppm_set_user_login.php';\r\n+        }\r\n+\r\n+        function wppm_public_projects_tasks(){\r\n+            ob_start();\r\n+            include WPPM_ABSPATH.'includes\u002Ffrontend\u002Fwppm_public_projects_tasks.php';\r\n+            return ob_get_clean(); \r\n+        }\r\n+\r\n+    }\r\n+endif;\r\n+\r\n new WPPM_Frontend();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fclass-wppm-functions.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fclass-wppm-functions.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fclass-wppm-functions.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fclass-wppm-functions.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,1217 +1,1217 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-if ( ! class_exists( 'WPPM_Functions' ) ) :\n-    final class WPPM_Functions {\n-        \u002F\u002F Array sanitization\n-        public static function sanitize_array($array) {\n-            if(!empty($array)){\n-                foreach ( $array as $key => $value ) {\n-                    if ( is_array( $value ) ) {\n-                        $value = $this->sanitize_array($value);\n-                    }\n-                    else {\n-                        $value = sanitize_text_field( wp_unslash( $value ) );\n-                    }\n-                }\n-            }\n-            return $array;\n-        }\n-\n-        public static function create_project($args){\n-            global $wpdb,$current_user;\n-            $default_proj_status = get_option('wppm_default_project_status');\n-            $values = array(\n-                'created_by'=>$current_user->ID,\n-                'project_name'=>$args['name'],\n-                'description'=>isset($args['wppm_proj_description']) ? $args['wppm_proj_description']:\"\",\n-                'start_date'=>isset($args['wppm_start_date']) ?$args['wppm_start_date']:\"\",\n-                'end_date'=>isset($args['wppm_end_date'])? $args['wppm_end_date']:\"\",\n-                'status'=>isset($args['status'])? $args['status']:$default_proj_status,\n-                'cat_id'=>isset($args['wppm_create_project_category']) ? $args['wppm_create_project_category']:\"\",\n-                'users'=>isset($args['user_names']) ? implode(\",\",$args['user_names']):\"\",\n-                'date_created'=>isset($args['date_created'])? $args['date_created']:wp_date(\"Y-m-d h:i:sa\"),\n-            );\n-            $wpdb->insert($wpdb->prefix .'wppm_project', $values);\n-            $project_id = $wpdb->insert_id;\n-            return $project_id;\n-        }\n-\n-        public static function create_task($args){\n-            global $wpdb,$current_user,$wppmfunction;\n-            $default_task_status = get_option('wppm_default_task_status');\n-            $values = array(\n-                'created_by'=>(isset($args['created_by'])) ? $args['created_by']: $current_user->ID,\n-                'task_name'=>$args['name'],\n-                'description'=>(isset($args['wppm_task_description']))?$args['wppm_task_description']:\"\",\n-                'project'=>(isset($args['wppm_task_project']))?$args['wppm_task_project']:\"\",\n-                'start_date'=>(isset($args['wppm_task_start_date']))?$args['wppm_task_start_date']:\"\",\n-                'end_date'=>(isset($args['wppm_task_end_date']))?$args['wppm_task_end_date']:\"\",\n-                'status'=>(isset($args['status']))?$args['status']:$default_task_status,\n-                'priority'=>(isset($args['wppm_create_task_priority']))?$args['wppm_create_task_priority']:\"\",\n-                'users'=>(!empty($args['user_names']))?implode(\",\",$args['user_names']):\"\",\n-                'date_created'=>isset($args['date_created'])? $args['date_created']:wp_date(\"Y-m-d h:i:sa\"),\n-                'task_auth_code'=> $wppmfunction->getRandomString(10),\n-                'active'=>1\n-            );\n-            $wpdb->insert($wpdb->prefix .'wppm_task', $values);\n-            $task_id = $wpdb->insert_id;\n-            return $task_id;\n-        }\n-\n-        public static function create_checklist($args){\n-            global $wpdb,$current_user,$wppmfunction;\n-            $values = array(\n-                'task_id'=>$args['task_id'],\n-                'checklist_name' => $args['checklist_name'],\n-                'created_by'=> $args['created_by']\n-            );\n-            $wpdb->insert($wpdb->prefix .'wppm_checklist', $values);\n-            $checklist_id = $wpdb->insert_id;\n-            return $checklist_id;\n-        }\n-\n-        public static function create_checklist_item($args){\n-            global $wpdb,$current_user,$wppmfunction;\n-            $chk_items_values = array(\n-                'checklist_id' => $args['checklist_id'],\n-                'item_name' => $args['item_name'],\n-                'checked'=>$args['checked'],\n-                'members'=>$args['members'],\n-                'due_date'=> $args['due_date']\n-            );\n-            $wpdb->insert($wpdb->prefix .'wppm_checklist_items', $chk_items_values);\n-            $checklist_item_id = $wpdb->insert_id;\n-            return $checklist_item_id;\n-        }\n-\n-        public static function wppm_submit_task_comment($args){\n-            global $wpdb;\n-            $wpdb->insert($wpdb->prefix.'wppm_task_comment',$args);\n-            $comment_id = $wpdb->insert_id;\n-            return $comment_id;\n-        }\n-\n-        public static function wppm_submit_task_comment_meta($args){\n-            global $wpdb;\n-            $wpdb->insert($wpdb->prefix.'wppm_task_comment_meta',$args);\n-            $comment_meta_id = $wpdb->insert_id;\n-            return $comment_meta_id;\n-        }\n-\n-        public static function wppm_submit_proj_comment($args){\n-            global $wpdb;\n-            $wpdb->insert($wpdb->prefix.'wppm_project_comment',$args);\n-            $comment_id = $wpdb->insert_id;\n-            return $comment_id;\n-        }\n-\n-        public static function wppm_submit_proj_comment_meta($args){\n-            global $wpdb;\n-            $wpdb->insert($wpdb->prefix.'wppm_project_comment_meta',$args);\n-            $comment_meta_id = $wpdb->insert_id;\n-            return $comment_meta_id;\n-        }\n-\n-        \u002F\u002F Random string\n-        public static function getRandomString($length = 8) {\n-            $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n-            $string = '';\n-            for ($i = 0; $i \u003C $length; $i++) {\n-            $string .= $characters[wp_rand(0, strlen($characters) - 1)];\n-            }\n-            return $string;\n-        }\n-\n-        public static function wppm_get_auth_code($id){\n-            global $wpdb;\n-            $id = absint($id);\n-            $auth_code = $wpdb->get_var(\n-                $wpdb->prepare(\n-                    \"SELECT task_auth_code \n-                    FROM {$wpdb->prefix}wppm_task \n-                    WHERE id = %d\",\n-                    ($id)\n-                )\n-            );\n-            $auth_code = isset($auth_code) ? $auth_code : \"\";\n-            return $auth_code;\n-        }\n-\n-        public static function get_task_fields($task_id,$select_field){\n-            global $wpdb;\n-            $task_id = absint($task_id);\n-            $task_field_value = '';\n-            $allowed_fields = array(\n-                'id',\n-                'created_by',\n-                'task_name',\n-                'description',\n-                'project',\n-                'start_date',\n-\t\t\t    'end_date',\n-\t\t\t    'status',\n-\t\t\t    'priority',\n-\t\t\t    'users',\n-                'date_created',\n-                'task_auth_code'\n-            );\n-\n-            \u002F\u002F Validate column name\n-            if ( ! in_array( $select_field, $allowed_fields, true ) ) {\n-                return '';\n-            }\n-            if (apply_filters('wppm_get_select_field',true,$task_id,$select_field)) {\n-              $get_task_field_value = $wpdb->get_var($wpdb->prepare(\"SELECT $select_field FROM {$wpdb->prefix}wppm_task WHERE id = %d\", $task_id));\n-              $task_field_value = $get_task_field_value ? $get_task_field_value : '';\n-            }\n-            return stripslashes($task_field_value);\n-        }\n-\n-        public static function get_project_fields($proj_id,$select_field){\n-            global $wpdb;\n-            $proj_id = absint($proj_id);\n-            $project_field_value = '';\n-            $allowed_fields = array(\n-                'id',\n-                'created_by',\n-                'project_name',\n-                'description',\n-                'start_date',\n-\t\t\t    'end_date',\n-\t\t\t    'status',\n-\t\t\t    'cat_id',\n-\t\t\t    'users',\n-                'date_created'\n-            );\n-\n-            \u002F\u002F Validate column name\n-            if ( ! in_array( $select_field, $allowed_fields, true ) ) {\n-                return '';\n-            }\n-            if (apply_filters('wppm_get_select_proj_field',true,$proj_id,$select_field)) {\n-              $get_project_field_value = $wpdb->get_var($wpdb->prepare(\"SELECT $select_field FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $proj_id));\n-              $project_field_value = $get_project_field_value ? $get_project_field_value : '';\n-            }\n-            return stripslashes($project_field_value);\n-        }\n-\n-        public function get_task($task_id){\n-            global $wpdb;\n-            $task_data = array();\n-            $task_id = absint($task_id);\n-            $task = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task WHERE id = %d\", $task_id));\n-            if( $task ){\n-                $task_data = json_decode(wp_json_encode($task), true);\n-            }\n-            return $task_data;\n-        }\n-\n-        public function get_checklist($task_id){\n-            global $wpdb;\n-            $task_id = absint($task_id);\n-            $checklist_data = array();\n-            $checklist = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist WHERE task_id = %d\", $task_id));\n-            if( $checklist ){\n-                $checklist_data = json_decode(wp_json_encode($checklist), true);\n-            }\n-            return $checklist_data;\n-        }\n-\n-        public function get_checklist_items($checklist_id){\n-            global $wpdb;\n-            $checklist_items_data = array();\n-            $checklist_id = absint($checklist_id);\n-            $checklist_items = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist_items WHERE checklist_id = %d\", $checklist_id));\n-            if( $checklist_items ){\n-                $checklist_items_data = json_decode(wp_json_encode($checklist_items), true);\n-            }\n-            return $checklist_items_data;\n-        }\n-\n-        public function get_project($project_id){\n-            global $wpdb;\n-            $project_data = array();\n-            $project_id = absint($project_id);\n-            $project = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $project_id));\n-            if( $project ){\n-                $project_data = json_decode(wp_json_encode($project), true);\n-            }\n-            return $project_data;\n-        }\n-\n-        public function get_attachment($attachment_id){\n-            global $wpdb;\n-            $attachment_data = array();\n-            $attachment_id = absint($attachment_id);\n-            $attachment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\", $attachment_id));\n-            if( $attachment ){\n-                $attachment_data = json_decode(wp_json_encode($attachment), true);\n-            }\n-            return $attachment_data;\n-        }\n-\n-        public function has_permission($permission, $task_id){\n-            global $current_user,$wppmfunction,$wpdb;\n-            $task_id = absint($task_id);\n-            $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-            $wppm_edit_tasks_permission = get_option('wppm_default_edit_tasks_permission');\n-            $wppm_allow_coworkers_add_checklist = get_option('wppm_allow_coworkers_add_checklist');\n-            $wppm_allow_coworkers_create_task = get_option('wppm_allow_coworkers_create_task');\n-            $wppm_allow_coworkers_change_status = get_option('wppm_allow_coworkers_change_status');\n-            $wppm_allow_coworkers_assign_users = get_option('wppm_allow_coworkers_assign_users');\n-            if(empty($comment_id)){\n-                $comment_id = 0;\n-            }\n-            $comment_id = absint($comment_id);\n-            $task_data = $wppmfunction->get_task($task_id);\n-            $task_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d AND id = %d\", $task_id, $comment_id));\n-            \n-            if(!empty($task_data['project'])){\n-                $project_id = $task_data['project'];\n-                $project_id = absint($project_id);\n-                $project_data = $wppmfunction->get_project($project_id);\n-                $cu_user_id = absint($current_user->ID);\n-                $project_user_role = $wpdb->get_var($wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $project_id, $cu_user_id));\n-                $project_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $project_id));\n-                $project_users_arr = explode(',',(string)$project_users);\n-            }\n-            $response = false;\n-            $flag = false;\n-            if(!empty($task_data)){\n-                $co_worker = $task_data['users'];\n-                $co_worker_array = explode(\",\",(string)$co_worker);\n-            }\n-            if((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)){\n-                $flag= true;\n-            }\n-            if($wppm_current_user_capability=='wppm_admin'){\n-                $flag = true;\n-            }\n-            if(!empty($project_data) && $project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager'){\n-                $flag = true;\n-            }\n-            if($current_user->has_cap('manage_options')){\n-                $flag = true;\n-            }\n-            if(!empty($project_id)){\n-                $project_id = absint($project_id);\n-                $public_proj_meta = $wpdb->get_var($wpdb->prepare(\"SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta where project_id= %d AND meta_key='public_project'\", $project_id));\n-            }else{\n-                $public_proj_meta =\"\";\n-            }\n-            switch ($permission) {\n-                case 'change_status':\n-                case 'view_task':\n-                case 'add_task_comment':\n-                    ((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array )) )|| ($current_user->ID == $task_data['created_by']) ||  $public_proj_meta==1 || ($flag==true) || $current_user->has_cap('manage_options') ? $response = true: $response = false;\n-                    break;\n-                case 'change_task_details':\n-                    (($flag==true) || ($current_user->ID == $task_data['created_by']) || $wppm_edit_tasks_permission == 1) ? $response = true: $response = false;\n-                    break;\n-                case 'add_new_task':\n-                    (($flag==true) || $wppm_allow_coworkers_create_task == 1) ? $response = true: $response = false;\n-                    break;\n-                case 'add_checklist':\n-                    (($flag==true) || $wppm_allow_coworkers_add_checklist == 1) ? $response = true: $response = false;\n-                    break;\n-                case 'change_task_status':\n-                    (($flag==true) || $wppm_allow_coworkers_change_status == 1) ? $response = true: $response = false;\n-                    break;\n-                case 'delete_task':\n-                case 'clone_task':\n-                    (($flag==true) || ($current_user->ID == $task_data['created_by'])) ? $response = true: $response = false;\n-                    break;\n-                case 'assign_task_users':\n-                    (($flag==true) || $wppm_allow_coworkers_assign_users == 1) ? $response = true: $response = false;\n-                    break;\n-                case 'change_raised_by':\n-                case 'edit_checklist':\n-                case 'delete_checklist':\n-                    (($flag==true) ? $response = true: $response = false);\n-                    break;   \n-            }\n-            return apply_filters( 'wppm_has_permission', $response, $task_id, $permission );\n-        }\n-\n-        public function has_comment_permission($permission, $task_id,$comment_id){\n-            global $current_user,$wppmfunction,$wpdb;\n-            $task_id = absint($task_id);\n-            $comment_id = absint($comment_id);\n-            $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-            if(empty($comment_id)){\n-                $comment_id = 0;\n-            }\n-            $task_data = $wppmfunction->get_task($task_id);\n-            $project_user = array();\n-            $task_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d AND id = %d\", $task_id, $comment_id));\n-            \n-            if(isset($task_data['project'])){\n-                $project_id = $task_data['project'];\n-                $project_id = absint($project_id);\n-                $cu_id = absint($current_user->ID);\n-                $project_data = $wppmfunction->get_project($project_id);\n-                $project_user = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $project_id, $cu_id));\n-                $project_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $project_id));\n-                $project_users_arr = explode(',',(string)$project_users);\n-            }\n-            $response = false;\n-            $flag = false;\n-            if(!empty($task_data)){\n-                $co_worker = $task_data['users'];\n-                $co_worker_array = explode(\",\",(string)$co_worker);\n-            }\n-            if((!empty($project_user)) && ($project_user->role_id == 1) && in_array($current_user->ID,$project_users_arr)){\n-                $flag= true;\n-            }\n-            if($wppm_current_user_capability=='wppm_admin'){\n-                $flag = true;\n-            }\n-\n-            if(!empty($project_data) && $project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager'){\n-                $flag = true;\n-            }\n-\n-            switch ($permission) {\n-                case 'delete_task_thread':\n-                case 'edit_task_comment':\n-                (($flag==true) || ($current_user->ID == $task_comment->created_by)) ? $response = true: $response = false;\n-                break;\n-            }\n-            return apply_filters( 'wppm_has_comment_permission', $response, $task_id, $comment_id, $permission );\n-        }\n-\n-        public function has_proj_comment_permission($permission, $proj_id,$comment_id){\n-            global $current_user,$wppmfunction,$wpdb;\n-            $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-            $proj_id = absint($proj_id);\n-            $comment_id = absint($comment_id);\n-            $cu_id = absint($current_user->ID);\n-            if(empty($comment_id)){\n-                $comment_id = 0;\n-            }\n-            $project_user = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $proj_id, $cu_id));\n-            $project_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $proj_id));\n-            $project_users_arr = explode(',',(string)$project_users);\n-            $proj_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_comment WHERE proj_id = %d AND id = %d\", $proj_id, $comment_id));\n-            $response = false;\n-            $flag = false;\n-            $project_data = $wppmfunction->get_project($proj_id);\n-            if((!empty($project_user)) && ($project_user->role_id == 1) && in_array($current_user->ID,$project_users_arr)){\n-                $flag= true;\n-            }\n-            if($wppm_current_user_capability=='wppm_admin'){\n-                $flag = true;\n-            }\n-            if(!empty($project_data) && $project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager'){\n-                $flag = true;\n-            }\n-            switch ($permission) {\n-                case 'delete_proj_thread':\n-                case 'edit_proj_comment':\n-                (($flag==true) || ($current_user->ID == $proj_comment->created_by)) ? $response = true: $response = false;\n-                break;\n-            }\n-            return apply_filters( 'wppm_has_proj_comment_permission', $response, $proj_id, $comment_id, $permission );\n-        }\n-\n-        public function has_project_permission($permission,$project_id){\n-            global $current_user,$wppmfunction,$wpdb ;\n-            $project_data = $wppmfunction->get_project($project_id);\n-            $project_id = absint($project_id);\n-            $cu_id = absint($current_user->ID);\n-            $project_user = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $project_id, $cu_id));\n-            $project_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $project_id));\n-            $project_users_arr = explode(',',(string)$project_users);\n-            $user = wp_get_current_user();\n-            $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\n-            if(!empty($project_data)){\n-                $co_worker = $project_data['users'];\n-                $co_worker_array = explode(\",\",(string)$co_worker);\n-            }\n-            if(!empty($project_id)){\n-                $public_proj_meta = $wpdb->get_var( $wpdb->prepare(\"SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta where project_id= %d AND meta_key='public_project'\", $project_id));\n-            }else{\n-                $public_proj_meta =\"\";\n-            }\n-\n-            switch ($permission) {\n-                case 'view_project':\n-                ((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array )) )? $response = true: $response = false;\n-                  break;\n-                case 'add_proj_comment':\n-                    ( ((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array )) ) || ( $public_proj_meta == '1') || $current_user->has_cap('manage_options')|| $wppm_current_user_capability == 'wppm_admin' || $wppm_current_user_capability == 'wppm_manager')? $response = true: $response = false;\n-                  break;\n-                case 'change_project_status':\n-                case 'assign_project_users':\n-                case 'change_project_raised_by':\n-                case 'change_project_details':\n-                case 'delete_project':\n-                    $flag = false;\n-                    if( (!empty($project_user)) && ($project_user->role_id == 1) && in_array($current_user->ID,$project_users_arr)){\n-                        $flag = true;\n-                    }\n-                    \n-                    (((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array) && $flag==true) || $wppm_current_user_capability == 'wppm_admin')) ? $response = true: $response = false;\n-                    break;\n-            }\n-            return apply_filters( 'wppm_has_project_permission', $response, $project_id, $permission );\n-        }\n-\n-        public function change_status($task_id, $status_id){\n-            global $wpdb,$wppmfunction;\n-            $task_data = $wppmfunction->get_task($task_id);\n-            $prev_status = $task_data['status'];\n-            $values=array(\n-                'status'=>esc_sql($status_id)\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>esc_sql($task_id)));\n-            $old_task_status_meta = $wppmfunction->get_task_meta($task_id,'old_task_status',true);\n-            if(!empty($old_task_status_meta)){\n-                $wppmfunction->delete_task_meta($task_id,'old_task_status');\n-            }\n-            $wppmfunction->add_task_meta($task_id,'old_task_status',$prev_status);\n-            \n-            do_action('wppm_set_change_task_status', $task_id, $status_id, $prev_status);\n-        }\n-\n-        public function change_raised_by($task_id, $user_id){\n-            global $wpdb;\n-            $values=array(\n-                'created_by'=>absint($user_id)\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\n-        }\n-\n-        public function change_task_label($task_id, $task_label){\n-            global $wpdb;\n-            $values=array(\n-                'task_name'=>stripslashes($task_label)\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\n-        }\n-\n-        public function change_task_project_label($task_id, $project_label){\n-            global $wpdb;\n-            $values=array(\n-                'project'=>absint($project_label)\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\n-        }\n-\n-        public function change_start_date($task_id, $task_start_date){\n-            global $wpdb;\n-            $values=array(\n-                'start_date'=>$task_start_date\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\n-        }\n-\n-        public function change_end_date($task_id, $task_end_date){\n-            global $wpdb;\n-            $values=array(\n-                'end_date'=>$task_end_date\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\n-        }\n-\n-        public function change_priority($task_id, $task_priority){\n-            global $wpdb;\n-            $values=array(\n-                'priority'=>absint($task_priority)\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\n-        }\n-\n-        public function change_description($task_id, $task_description){\n-            global $wpdb;\n-            $task_description = !empty($task_description) ? wp_kses_post($task_description) : '';\n-            $values=array(\n-                'description'=>$task_description\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\n-        }\n-\n-        public function change_project($task_id,$proj_id){\n-            global $wpdb,$wppmfunction;\n-            $task_data = $wppmfunction->get_task($task_id);\n-            $old_proj = $task_data['project'];\n-            $old_proj = absint( $old_proj);\n-            $proj_id = absint( $proj_id);\n-            $project_data = $wppmfunction->get_project($proj_id);\n-            $task_assign_users = $task_data['users'];\n-            $tusers_array = array();\n-            if(!empty($task_data['users'])){\n-                $task_users_array = explode(\",\",(string)$task_assign_users);\n-            }\n-            if(!empty($project_data['users'])){\n-                $project_users = explode(\",\",(string)$project_data['users']);\n-            }\n-            if(!empty($project_users)){\n-                if(!empty($task_users_array)){\n-                    foreach($task_users_array as $tuser){\n-                        if(!in_array($tuser,$project_users)){\n-                            $wpdb->delete( $wpdb->prefix.'wppm_project_users', array( 'proj_id' => \"$proj_id\",'user_id'=>\"$tuser\") );\n-                        }\n-                        elseif(in_array($tuser,$project_users)){\n-                            $tusers_array[] = $tuser; \n-                            $tuser = absint($tuser);\n-                            $sql = $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $old_proj, $tuser);\n-                            $old_proj_user_role =  $wpdb->get_var( $sql );\n-                            $sql = $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $proj_id, $tuser);\n-                            $proj_users_role =  $wpdb->get_var( $sql );\n-                            if(!empty( $old_proj_user_role) && $old_proj_user_role!=$proj_users_role){\n-                                $value=array(\n-                                    'role_id'=>absint($proj_users_role)\n-                                );\n-                                $wpdb->update($wpdb->prefix.'wppm_project_users', $value, array('proj_id'=>\"$proj_id\", 'user_id'=>\"$tuser\"));\n-                            }\n-                        }\n-                    }\n-                }  \n-            }\n-            $tusers = implode(\",\",$tusers_array);\n-            $values=array(\n-                'project'=>absint($proj_id),\n-                'users'=>absint($tusers)\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\n-        }\n-\n-        public function get_task_comment($comment_id){\n-            global $wpdb;\n-            $task_comment_data = array();\n-            $comment_id = absint($comment_id);\n-            $task_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE id=%d\", $comment_id));\n-            if( $task_comment ){\n-                $task_comment_data = json_decode(wp_json_encode($task_comment), true);\n-            }\n-            return $task_comment_data;\n-        }\n-\n-        public function get_proj_comment($comment_id){\n-            global $wpdb;\n-            $project_comment_data = array();\n-            $comment_id = absint($comment_id);\n-            $project_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_comment WHERE id=%d\", $comment_id));\n-            if( $project_comment ){\n-                $project_comment_data = json_decode(wp_json_encode($project_comment), true);\n-            }\n-            return $project_comment_data;\n-        }\n-\n-        public function change_task_comment($comment_id,$comment_body){\n-            global $wpdb;\n-            $comment_id = absint($comment_id);\n-            $comment_body = !empty($comment_body) ? wp_kses_post($comment_body) : '';\n-            $values=array(\n-                'body'=>$comment_body\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_task_comment', $values, array('id'=>\"$comment_id\"));\n-        }\n-\n-        public function change_proj_comment($comment_id,$comment_body){\n-            global $wpdb;\n-            $comment_id = absint($comment_id);\n-            $comment_body = !empty($comment_body) ? wp_kses_post($comment_body) : '';\n-            $values=array(\n-                'body'=>$comment_body\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_project_comment', $values, array('id'=>\"$comment_id\"));\n-        }\n-\n-        public function change_project_label($project_id,$project_label){\n-            global $wpdb;\n-            $project_id = absint($project_id);\n-            $values=array(\n-                'project_name'=>esc_sql($project_label)\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>\"$project_id\"));\n-        }\n-\n-        public function change_project_start_date($project_id, $project_start_date){\n-            global $wpdb;\n-            $project_id = absint($project_id);\n-            $project_start_date = esc_sql($project_start_date);\n-            $values=array(\n-                'start_date'=>$project_start_date\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>\"$project_id\"));\n-        }\n-\n-        public function change_project_end_date($project_id, $project_end_date){\n-            global $wpdb;\n-            $project_id = absint($project_id);\n-            $project_end_date = esc_sql($project_end_date);\n-            $values=array(\n-                'end_date'=>$project_end_date\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));\n-        }\n-\n-        public function change_category($project_id, $project_category){\n-            global $wpdb;\n-            $project_id = absint($project_id);\n-            $project_category = absint($project_category);\n-            $values=array(\n-                'cat_id'=>$project_category\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>\"$project_id\"));\n-        }\n-\n-        public function change_project_description($project_id, $project_description){\n-            global $wpdb;\n-            $project_id = absint($project_id);\n-            $project_description = (string) ( $project_description ?? '' );\n-            $values = array(\n-                'description' => wp_kses_post( $project_description )\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>\"$project_id\"));\n-        }\n-\n-        public function change_project_status($project_id,$status_id){\n-            global $wpdb,$wppmfunction,$current_user;\n-            $change_status_value= array();\n-            $proj_data = $wppmfunction->get_project($project_id);\n-            $prev_status = $proj_data['status'];\n-            $cu_id = absint($current_user->ID);\n-            $values=array(\n-                'status'=>absint($status_id)\n-            );\n-            $project_id = absint($project_id);\n-            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));\n-            $old_project_status_meta = $wppmfunction->get_project_meta($project_id,'old_project_status',true);\n-            if(!empty($old_project_status_meta)){\n-                $wppmfunction->delete_project_meta($project_id,'old_project_status');\n-            }\n-            $change_status_value = array('prev_status'=>\"$prev_status\",'new_status'=>\"$status_id\");\n-            $change_status_obj = serialize($change_status_value);\n-            $log_values = array('proj_id'=>\"$project_id\",'body'=>$change_status_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>\"$cu_id\" );\n-            $wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);\n-            $log_id = absint($wpdb->insert_id);\n-            $proj_log_values = array('proj_id'=>\"$project_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_proj_status');\n-            $wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\n-            $wppmfunction->add_project_meta($project_id,'old_project_status',$prev_status);\n-            do_action('wppm_set_change_project_status', $project_id, $status_id, $prev_status);\n-        }\n-\n-        public function change_project_raised_by($project_id, $user_id){\n-            global $wpdb;\n-            $values=array(\n-                'created_by'=>absint($user_id)\n-            );\n-            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>\"$project_id\"));\n-        }\n-\n-        \u002F\u002F Email Notification types\n-        public function get_email_notification_types(){\n-            $notification_types = array(\n-            'new_project'=>esc_html__('New Project','taskbuilder'),\n-            'new_task'=>esc_html__('New Task','taskbuilder'),\n-            'change_project_status'       => esc_html__('Change Project Status','taskbuilder'),\n-            'change_task_status'    => esc_html__('Change Task Status','taskbuilder'),\n-            'change_project_assign_users' => esc_html__('Change Project Assign Users','taskbuilder'),\n-            'change_task_assign_users'    => esc_html__('Change Task Assign Users','taskbuilder'),\n-            'new_discussion'     => esc_html__('New Comment','taskbuilder'),\n-            'new_proj_discussion'  =>esc_html__('New Project Comment','taskbuilder')\n-            );\n-            return apply_filters('wppm_en_types',$notification_types);\n-        }\n-\n-        public function check_rtl(){\n-            $rtl_locale = array('ar','ary','ckb','haz','he_IL','fa_IR','ps','ur','ug_CN');\n-            if(in_array(get_locale(),$rtl_locale)){\n-              return 'rtl';\n-            }else{\n-              return 'ltr';\n-            } \n-        }\n-\n-        public function add_project_meta($proj_id,$meta_key,$meta_value){\n-            global $wpdb;\n-            $wpdb->insert( \n-              $wpdb->prefix . 'wppm_project_meta', \n-              array(\n-                'project_id' =>$proj_id,\n-                'meta_key' => $meta_key,\n-                'meta_value' =>$meta_value\n-            ));\n-        }\n-\n-        public function add_task_meta($task_id,$meta_key,$meta_value){\n-            global $wpdb;\n-            $wpdb->insert( \n-              $wpdb->prefix . 'wppm_task_meta', \n-              array(\n-                'task_id' => $task_id,\n-                'meta_key' => $meta_key,\n-                'meta_value' =>$meta_value\n-            ));\n-        }\n-\n-        public function get_project_meta($project_id,$meta_key,$flag = false){\n-            global $wpdb,$wppmfunction;\n-            $project_id = absint($project_id);\n-            $meta_key = esc_sql($meta_key);\n-            if($flag){\n-                $get_meta = $wpdb->get_var($wpdb->prepare(\"SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = %d AND meta_key = %s\",$project_id,$meta_key));\n-                $project_meta = isset($get_meta) ? stripslashes($get_meta) : '';\n-                \n-            } else {\n-                $project_meta = array();\n-                $results = $wpdb->get_results($wpdb->prepare(\"SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = %d AND meta_key = %s\",$project_id,$meta_key));\n-                if( (!empty($results)) ){\n-                    foreach ($results as $result) {\n-                        if(!empty($result)){\n-                            $project_meta[]= stripslashes($result->meta_value);\n-                        }\n-                    }\n-                }\n-            }\n-            return $project_meta;\n-        }\n-\n-        public function get_task_meta($task_id,$meta_key,$flag = false){\n-            global $wpdb,$wppmfunction;\n-            $task_id = absint($task_id);\n-            $meta_key = esc_sql($meta_key);\n-            if($flag){\n-                $get_meta = $wpdb->get_var($wpdb->prepare(\"SELECT meta_value FROM {$wpdb->prefix}wppm_task_meta WHERE task_id = %d AND meta_key = %s\",$task_id,$meta_key));\n-                $task_meta = isset($get_meta) ? stripslashes($get_meta) : '';\n-                \n-            } else {\n-                $task_meta = array();\n-                $results = $wpdb->get_results($wpdb->prepare(\"SELECT meta_value FROM {$wpdb->prefix}wppm_task_meta WHERE task_id = %d AND meta_key = %s\",$task_id,$meta_key));\n-                if( (!empty($results)) ){\n-                    foreach ($results as $result) {\n-                        if(!empty($result)){\n-                            $task_meta[]= stripslashes($result->meta_value);\n-                        }\n-                    }\n-                }\n-            }\n-            return $task_meta;\n-        }\n-\n-        public function get_previously_assigned_users($project_id){\n-            global $wpdb,$wppmfunction;\n-            $prev_assigned_users = $wppmfunction->get_project_meta($project_id,'prev_assigned_users');\n-            $user_emails = array();\n-            if(!empty($prev_assigned_users)){\n-                foreach ($prev_assigned_users as $user) {\n-                    $userdata = get_userdata($user);\n-                    $user_emails[] = $userdata->user_email;\n-                    \n-                }\n-            }\n-            return apply_filters( 'wppm_get_prev_assigned_users_emails', $user_emails ,$project_id);\n-        }\n-\n-        public function get_project_creator_email($project_id){\n-            global $wpdb,$wppmfunction;\n-            $project_data = $wppmfunction->get_project($project_id,'created_by');\n-            $userdata = get_userdata($project_data['created_by']);\n-            if(!empty( $userdata)){\n-                $proj_creator_email[] = $userdata->user_email;\n-            }\n-            return apply_filters( 'wppm_get_project_creator_email', $proj_creator_email ,$project_id);\n-        }\n-\n-        public function get_task_creator_email($task_id){\n-            global $wpdb,$wppmfunction;\n-            $task_data = $wppmfunction->get_task($task_id,'created_by');\n-            $userdata = get_userdata($task_data['created_by']);\n-            if(!empty( $userdata)){\n-                $task_creator_email[] = $userdata->user_email;\n-            }\n-            return apply_filters( 'wppm_get_task_creator_email', $task_creator_email ,$task_id);\n-        }\n-\n-        public function get_previously_assigned_task_users($task_id){\n-            global $wpdb,$wppmfunction;\n-            $prev_assigned_task_users = $wppmfunction->get_task_meta($task_id,'prev_assigned_task_users');\n-            $user_emails = array();\n-            if(!empty($prev_assigned_task_users)){\n-                foreach ($prev_assigned_task_users as $user) {\n-                    if(!empty($user)){\n-                        $userdata = get_userdata($user);\n-                        $user_emails[] = $userdata->user_email;\n-                    }\n-                }\n-            }\n-            return apply_filters( 'wppm_get_prev_assigned_task_users_emails', $user_emails ,$task_id);\n-        }\n-        \u002F**\n-         * Update project meta for project\n-         *\u002F\n-        function update_project_meta($project_id ,$meta_key ,$meta_value){\n-            global $wpdb;\n-            $project_id = absint($project_id);\n-            $meta_key = esc_sql($meta_key);\n-            $results = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = %d AND meta_key = %s\",$project_id,$meta_key));\n-            $wpdb->update($wpdb->prefix.'wppm_project_meta', $meta_value, array('project_id'=>$project_id,'meta_key' => \"$meta_key\"));\n-        }\n-        \n-        \u002F**\n-        * Update task meta for task\n-        *\u002F\n-        function update_task_meta($task_id ,$meta_key ,$meta_value){\n-            global $wpdb;\n-            $task_id = absint($task_id);\n-            $meta_key = esc_sql($meta_key);\n-            $results = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_meta WHERE task_id = %d AND meta_key = %s\",$task_id,$meta_key));\n-            $wpdb->update($wpdb->prefix.'wppm_task_meta', $meta_value, array('task_id'=>$task_id,'meta_key' => \"$meta_key\"));\n-        }\n-\n-        function delete_project_meta($project_id  ,$meta_key){\n-            global $wpdb;\n-            $project_id = absint($project_id);\n-            $meta_key = ($meta_key);\n-            $wpdb->delete( $wpdb->prefix.'wppm_project_meta', array( 'project_id' => \"$project_id\",'meta_key'=>\"$meta_key\") );\n-        }\n-\n-        function delete_task_meta($task_id ,$meta_key){\n-            global $wpdb;\n-            $task_id = absint($task_id);\n-            $meta_key = ($meta_key);\n-            $wpdb->delete( $wpdb->prefix.'wppm_task_meta', array( 'task_id' => \"$task_id\",'meta_key'=>\"$meta_key\") );\n-        }\n-\n-        public function replace_macro($str,$project_id){\n-            include WPPM_ABSPATH . 'includes\u002Freplace_macro.php';\n-            return $str;\n-        }\n-\n-        public function replace_task_macro($str,$task_id){\n-            include WPPM_ABSPATH . 'includes\u002Freplace_task_macro.php';\n-            return $str;\n-        }\n-\n-        public function get_old_project_status_name($id){\n-            global $wppmfunction, $wpdb;\n-            $old_project_status = $wppmfunction->get_project_meta($id,'old_project_status',true);\n-            $old_project_status = absint($old_project_status);\n-            $status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_project_statuses WHERE id = %d\",$old_project_status));\n-            return $status_name;\n-        }\n-\n-        public function get_new_project_status_name($status_id){\n-            global $wpdb;\n-            $status_id = absint($status_id);\n-            $status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_project_statuses WHERE id = %d\",$status_id));\n-            return $status_name;\n-        }\n-\n-        public function get_old_task_status_name($task_id){\n-            global $wppmfunction, $wpdb;\n-            $old_task_status = $wppmfunction->get_task_meta($task_id,'old_task_status',true);\n-            $old_task_status = absint($old_task_status);\n-            $status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\",$old_task_status));\n-            return $status_name;\n-        }\n-\n-        public function get_new_task_status_name($status_id){\n-            global $wpdb;\n-            $status_id = absint($status_id);\n-            $status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\",$status_id));\n-            return $status_name;\n-        }\n-\n-        public function get_project_category_name($cat_id){\n-            global $wpdb;\n-            $cat_id = absint($cat_id);\n-            if(!empty($cat_id)){\n-                $cat_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_project_categories WHERE id = %d\",$cat_id));\n-            }else{\n-                $cat_name = \"\"; \n-            }\n-            return $cat_name;\n-        }\n-\n-        public function get_project_assigned_users_names($project_id){\n-            global $wppmfunction;\n-            $wppm_project_data = $wppmfunction->get_project($project_id);\n-            if(!empty($wppm_project_data['users'])){\n-                $wppm_project_assign_users_array = explode(\",\", $wppm_project_data['users']);\n-            }else{\n-                $wppm_project_assign_users_array = array();\n-            }\n-            $users_names = array();\n-            if(!empty($wppm_project_assign_users_array)){\n-                foreach ($wppm_project_assign_users_array as $user_id) {\n-                    if(!empty($user_id)){\n-                        $userdata = get_userdata( $user_id );\n-                        if(!empty($userdata)){\n-                            $users_names[] = $userdata->display_name;\n-                        }\n-                    }\n-                }\n-            }\n-            return implode(', ', $users_names);\n-        }\n-\n-        public function get_task_assigned_users_names($task_id){\n-            global $wppmfunction;\n-            $wppm_task_data = $wppmfunction->get_task($task_id);\n-            $wppm_task_assign_users_array = explode(\",\", (string)$wppm_task_data['users']);\n-            $users_names = array();\n-            if(!empty($wppm_task_assign_users_array)){\n-                foreach ($wppm_task_assign_users_array as $user_id) {\n-                    if(!empty($user_id)){\n-                        $userdata = get_userdata( $user_id );\n-                        if(!empty($userdata)){\n-                            $users_names[] = $userdata->display_name;\n-                        }\n-                    }\n-                }\n-            }\n-            return implode(', ', $users_names);\n-        }\n-\n-        public function get_project_previously_assigned_users_names($project_id){\n-            global $wppmfunction;\n-            $wppm_project_assign_users = $wppmfunction->get_project_meta($project_id,'prev_assigned_users');            \n-            $users_names = array();\n-            if(!empty($wppm_project_assign_users)){\n-                foreach ($wppm_project_assign_users as $user) {\n-                    if(!empty($user)){\n-                        $userdata = get_userdata( $user );\n-                        $users_names[] = $userdata->display_name; \n-                    }  \n-                }\n-            }\n-            return implode(', ', $users_names);\n-        }\n-\n-        public function get_task_previously_assigned_users_names($task_id){\n-            global $wppmfunction;\n-            $wppm_task_assign_users = $wppmfunction->get_task_meta($task_id,'prev_assigned_task_users');            \n-            $users_names = array();\n-            if(!empty($wppm_task_assign_users)){\n-                foreach ($wppm_task_assign_users as $user) {\n-                    if(!empty($user)){\n-                        $userdata = get_userdata( $user );\n-                        $users_names[] = $userdata->display_name;\n-                    } \n-                }\n-            }\n-            return implode(', ', $users_names);\n-        }\n-\n-        public function get_task_priority_name($priority){\n-            global $wpdb;\n-            $priority = absint($priority);\n-            $priority_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_priorities WHERE id = %d\",$priority));\n-            return $priority_name;\n-        }\n-\n-        public function get_last_comment_user_name($task_id){\n-            global $wpdb;\n-            $task_id = absint($task_id);\n-            $task_comment_creator = $wpdb->get_var($wpdb->prepare(\"SELECT created_by FROM {$wpdb->prefix}wppm_task_comment WHERE (id=(select MAX(id) from {$wpdb->prefix}wppm_task_comment) AND task_id = %d)\",$task_id));\n-            if(!empty($task_comment_creator)){\n-                $user = get_userdata( $task_comment_creator );\n-                return $user->display_name;\n-            }\n-        }\n-\n-        public function get_last_comment_body($task_id){\n-            global $wpdb;\n-            $task_id = absint($task_id);\n-            $task_comment = $wpdb->get_var($wpdb->prepare(\"SELECT body FROM {$wpdb->prefix}wppm_task_comment WHERE (id=(select MAX(id) from {$wpdb->prefix}wppm_task_comment) AND task_id = %d)\",$task_id));\n-            return $task_comment;\n-        }\n-        \n-        public function create_duplicate_task($ptask_id, $project_id,$ajax_nonce){\n-            include WPPM_ABSPATH . 'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_clone_task.php';\n-        }\n-\n-        public function get_last_comment_proj_user_name($project_id){\n-            global $wpdb;\n-            $project_id = absint($project_id);\n-            $proj_comment_creator = $wpdb->get_var($wpdb->prepare(\"SELECT created_by FROM {$wpdb->prefix}wppm_project_comment WHERE (id=(select MAX(id) from {$wpdb->prefix}wppm_project_comment) AND proj_id = %d)\",$project_id));\n-            if(!empty($proj_comment_creator)){\n-                $user = get_userdata( $proj_comment_creator );\n-                return $user->display_name;\n-            }\n-        }\n-\n-        public function get_proj_comment_body($project_id){\n-            global $wpdb;\n-            $project_id = absint($project_id);\n-            $proj_comment = $wpdb->get_var($wpdb->prepare(\"SELECT body FROM {$wpdb->prefix}wppm_project_comment WHERE (id=(select MAX(id) from {$wpdb->prefix}wppm_project_comment) AND proj_id = %d)\",$project_id));\n-            return $proj_comment;\n-        }\n-\n-        public function get_project_url($project_id, $view){\n-            global $wpdb,$wppmfunction;\n-            $project_id = absint($project_id);\n-\t\t\t$page_settings = get_option( 'wppm-page-settings' );\n-\t\t\tif ( $view == '0' ) {\n-\t\t\t\t$url = admin_url( 'admin.php?page=wppm-projects&section=project-list&id=' . $project_id );\n-\t\t\t} else {\n-                $url = get_permalink( $page_settings['project-url-page'] );\n-                $auth_id  = $wppmfunction->get_project_meta($project_id,'project_auth_code',true);\n-\n-\t\t\t\t$url = add_query_arg(\n-\t\t\t\t\tarray(\n-\t\t\t\t\t\t'project-id' => $project_id,\n-\t\t\t\t\t\t'auth-code' => $auth_id,\n-\n-\t\t\t\t\t),\n-\t\t\t\t\t$url\n-\t\t\t\t);\n-\t\t\t}\n-\n-\t\t\treturn $url;\n-        }\n-\n-        public function get_task_url($task_id, $view){\n-            global $wpdb,$wppmfunction;\n-            $task_id = absint($task_id);\n-\t\t\t$page_settings = get_option( 'wppm-page-settings' );\n-\t\t\tif ( $view == '0' ) {\n-\t\t\t\t$url = admin_url( 'admin.php?page=wppm-tasks&section=task-list&id=' . $task_id );\n-\t\t\t} else{\n-\t\t\t\t$url = get_permalink( $page_settings['task-url-page'] );\n-\t\t\t    $auth_id  = $this->wppm_get_auth_code($task_id);\n-\t\t\t\t$url = add_query_arg(\n-\t\t\t\t\tarray(\n-\t\t\t\t\t\t'task-id' => $task_id,\n-\t\t\t\t\t\t'auth-code' => $auth_id,\n-\t\t\t\t\t),\n-\t\t\t\t\t$url\n-\t\t\t\t);\n-\n-\t\t\t}\n-\n-\t\t\treturn $url;\n-        }\n-\n-        public function wppm_user_role(){\n-            $user_role = array(\n-                'wppm_admin' => array(\n-                    'label' => esc_html__('WPPM Administrator','taskbuilder'),\n-                ),\n-                'wppm_manager' => array(\n-                    'label' => esc_html__('WPPM Manager','taskbuilder'),\n-                )\n-\t\t\t);\n-            return $user_role;\n-        }\n-\n-        public static function wppm_toolbar_options_setting() {\n-\t\t\t$toolbar = array(\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Bold', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'bold',\n-\t\t\t\t),\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Italic', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'italic',\n-\t\t\t\t),\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Underline', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'underline',\n-\t\t\t\t),\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Blockquote', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'blockquote',\n-\t\t\t\t),\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Align', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'align',\n-\t\t\t\t),\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Bulleted list', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'bullist',\n-\t\t\t\t),\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Numbered list', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'numlist',\n-\t\t\t\t),\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Right to left', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'rtl',\n-\t\t\t\t),\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Link', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'link',\n-\t\t\t\t),\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Image', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'wppm_insert_editor_img',\n-\t\t\t\t),\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Text Color', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'forecolor',\n-\t\t\t\t),\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Text Background Color', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'backcolor',\n-\t\t\t\t),\n-\t\t\t\tarray(\n-\t\t\t\t\t'name'  => esc_attr__( 'Strikethrough', 'taskbuilder' ),\n-\t\t\t\t\t'value' => 'strikethrough',\n-\t\t\t\t),\n-\t\t\t);\n-\t\t\treturn $toolbar;\n-\t\t}\n-\n-        public static function wppm_load_setting_header_html() {\n-\t\t\t?>\n-\t\t\t\u003Cdiv class=\"wppm-header\" style=\"padding-left:20px;margin:10px 0 10px 0;display: flex; justify-content: space-between; align-items: center; position: sticky;top: 0;background: #fff !important;z-index: 9999;width:99%; left: 0; \">\n-\t\t\t\t\u003Cdiv class=\"wppm-header-title\" style=\"display: flex; align-items: center; gap: 3px;\">\n-\t\t\t\t\t\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftaskbuilder_logo.png'); ?>\" class=\"wppm-header-icon\" alt=\"taskbuilder Icon\" style=\"width: 33px; height: 33px;margin-right:10px !important;\"\u002F>\n-                    \u003Ch2 style=\"font-size: 30px; font-weight: 600; color: #333; margin: 0; font: 22px OpenSans-Light, Helvetica, Arial, sans-serif;\">\u003C?php esc_html_e( 'Taskbuilder', 'taskbuilder' )?>\u003C\u002Fh2>\n-\t\t\t\t\u003C\u002Fdiv>\n-                \u003Cdiv class=\"wppm-header-button\" style=\"display: flex; justify-content: flex-end; gap: 3px;\">\n-                    \u003Cdiv class=\"wppm-btn\n-                    \" style=\"background-color: #0052CC; color: #fff; padding: 8px 10px;margin: 35px 0px 14px 0px;text-decoration: none;border-radius: 5px;transition: background 0.3s ease;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\">\n-                        \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fhelp.svg'); ?>\" class=\"wppm-header-icon\" alt=\"taskbuilder Icon\" style=\"width: 20px; height: 19px;margin-bottom: -5px;\"\u002F>\n-                        \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fhelp\u002F\" target=\"__blank\" style=\"color:#fff\">\u003C?php esc_html_e( 'Help', 'taskbuilder' )?>\u003C\u002Fa>\n-                    \u003C\u002Fdiv>\n-                    \u003Cdiv class=\"wppm-btn\" style=\"background-color: #0052CC; color: #fff; padding: 8px 10px;margin: 35px 0px 14px 0px;text-decoration: none;border-radius: 5px;transition: background 0.3s ease;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\">\n-                        \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsupport.svg'); ?>\" class=\"wppm-header-icon\" alt=\"taskbuilder Icon\" style=\"width: 15px; height: 19px;margin-bottom: -5px;\"\u002F>\n-                        \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fsupport\u002F?wpsc-section=ticket-list\" target=\"__blank\" style=\"color:#fff\">\u003C?php esc_html_e( 'Support', 'taskbuilder' )?>\u003C\u002Fa>\n-                    \u003C\u002Fdiv>\n-                    \u003Cdiv class=\"wppm-btn\" style=\"background-color: #0052CC; color: #fff; padding: 8px 10px;margin: 35px 10px 14px 0px;text-decoration: none;border-radius: 5px;transition: background 0.3s ease;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\">\n-                        \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fpro_features.svg'); ?>\" class=\"wppm-header-icon\" alt=\"taskbuilder Icon\" style=\"width: 15px; height: 19px;margin-bottom: -5px;\"\u002F>\n-                        \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" style=\"color:#fff\">\u003C?php esc_html_e( 'Get pro', 'taskbuilder' )?>\u003C\u002Fa>\n-                    \u003C\u002Fdiv>\n-                \u003C\u002Fdiv>\n-\t\t\t\u003C\u002Fdiv>\n-\t\t\t\u003C?php\n-\t\t}\n-\n-        public function wppm_get_duration($start_date, $end_date){\n-            if ( empty($start_date) || empty($end_date) || $start_date=='0000-00-00 00:00:00' || $end_date =='0000-00-00 00:00:00') {\n-                return '';\n-            }\n-\n-            $start_ts = strtotime($start_date);\n-            $end_ts   = strtotime($end_date);\n-\n-            if ( $end_ts \u003C= $start_ts ) {\n-                return '0 min';\n-            }\n-\n-            $diff = $end_ts - $start_ts;\n-\n-            $days    = floor($diff \u002F 86400);\n-            $hours   = floor(($diff % 86400) \u002F 3600);\n-            $minutes = floor(($diff % 3600) \u002F 60);\n-\n-            $duration = [];\n-\n-            if ($days > 0)    $duration[] = $days . 'd';\n-            if ($hours > 0)  $duration[] = $hours . 'h';\n-            if ($minutes > 0 || empty($duration)) $duration[] = $minutes . 'm';\n-\n-            return implode(' ', $duration);\n-\n-        }\n-    }\n-endif;\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+if ( ! class_exists( 'WPPM_Functions' ) ) :\r\n+    final class WPPM_Functions {\r\n+        \u002F\u002F Array sanitization\r\n+        public static function sanitize_array($array) {\r\n+            if(!empty($array)){\r\n+                foreach ( $array as $key => $value ) {\r\n+                    if ( is_array( $value ) ) {\r\n+                        $value = $this->sanitize_array($value);\r\n+                    }\r\n+                    else {\r\n+                        $value = sanitize_text_field( wp_unslash( $value ) );\r\n+                    }\r\n+                }\r\n+            }\r\n+            return $array;\r\n+        }\r\n+\r\n+        public static function create_project($args){\r\n+            global $wpdb,$current_user;\r\n+            $default_proj_status = get_option('wppm_default_project_status');\r\n+            $values = array(\r\n+                'created_by'=>$current_user->ID,\r\n+                'project_name'=>$args['name'],\r\n+                'description'=>isset($args['wppm_proj_description']) ? $args['wppm_proj_description']:\"\",\r\n+                'start_date'=>isset($args['wppm_start_date']) ?$args['wppm_start_date']:\"\",\r\n+                'end_date'=>isset($args['wppm_end_date'])? $args['wppm_end_date']:\"\",\r\n+                'status'=>isset($args['status'])? $args['status']:$default_proj_status,\r\n+                'cat_id'=>isset($args['wppm_create_project_category']) ? $args['wppm_create_project_category']:\"\",\r\n+                'users'=>isset($args['user_names']) ? implode(\",\",$args['user_names']):\"\",\r\n+                'date_created'=>isset($args['date_created'])? $args['date_created']:wp_date(\"Y-m-d h:i:sa\"),\r\n+            );\r\n+            $wpdb->insert($wpdb->prefix .'wppm_project', $values);\r\n+            $project_id = $wpdb->insert_id;\r\n+            return $project_id;\r\n+        }\r\n+\r\n+        public static function create_task($args){\r\n+            global $wpdb,$current_user,$wppmfunction;\r\n+            $default_task_status = get_option('wppm_default_task_status');\r\n+            $values = array(\r\n+                'created_by'=>(isset($args['created_by'])) ? $args['created_by']: $current_user->ID,\r\n+                'task_name'=>$args['name'],\r\n+                'description'=>(isset($args['wppm_task_description']))?$args['wppm_task_description']:\"\",\r\n+                'project'=>(isset($args['wppm_task_project']))?$args['wppm_task_project']:\"\",\r\n+                'start_date'=>(isset($args['wppm_task_start_date']))?$args['wppm_task_start_date']:\"\",\r\n+                'end_date'=>(isset($args['wppm_task_end_date']))?$args['wppm_task_end_date']:\"\",\r\n+                'status'=>(isset($args['status']))?$args['status']:$default_task_status,\r\n+                'priority'=>(isset($args['wppm_create_task_priority']))?$args['wppm_create_task_priority']:\"\",\r\n+                'users'=>(!empty($args['user_names']))?implode(\",\",$args['user_names']):\"\",\r\n+                'date_created'=>isset($args['date_created'])? $args['date_created']:wp_date(\"Y-m-d h:i:sa\"),\r\n+                'task_auth_code'=> $wppmfunction->getRandomString(10),\r\n+                'active'=>1\r\n+            );\r\n+            $wpdb->insert($wpdb->prefix .'wppm_task', $values);\r\n+            $task_id = $wpdb->insert_id;\r\n+            return $task_id;\r\n+        }\r\n+\r\n+        public static function create_checklist($args){\r\n+            global $wpdb,$current_user,$wppmfunction;\r\n+            $values = array(\r\n+                'task_id'=>$args['task_id'],\r\n+                'checklist_name' => $args['checklist_name'],\r\n+                'created_by'=> $args['created_by']\r\n+            );\r\n+            $wpdb->insert($wpdb->prefix .'wppm_checklist', $values);\r\n+            $checklist_id = $wpdb->insert_id;\r\n+            return $checklist_id;\r\n+        }\r\n+\r\n+        public static function create_checklist_item($args){\r\n+            global $wpdb,$current_user,$wppmfunction;\r\n+            $chk_items_values = array(\r\n+                'checklist_id' => $args['checklist_id'],\r\n+                'item_name' => $args['item_name'],\r\n+                'checked'=>$args['checked'],\r\n+                'members'=>$args['members'],\r\n+                'due_date'=> $args['due_date']\r\n+            );\r\n+            $wpdb->insert($wpdb->prefix .'wppm_checklist_items', $chk_items_values);\r\n+            $checklist_item_id = $wpdb->insert_id;\r\n+            return $checklist_item_id;\r\n+        }\r\n+\r\n+        public static function wppm_submit_task_comment($args){\r\n+            global $wpdb;\r\n+            $wpdb->insert($wpdb->prefix.'wppm_task_comment',$args);\r\n+            $comment_id = $wpdb->insert_id;\r\n+            return $comment_id;\r\n+        }\r\n+\r\n+        public static function wppm_submit_task_comment_meta($args){\r\n+            global $wpdb;\r\n+            $wpdb->insert($wpdb->prefix.'wppm_task_comment_meta',$args);\r\n+            $comment_meta_id = $wpdb->insert_id;\r\n+            return $comment_meta_id;\r\n+        }\r\n+\r\n+        public static function wppm_submit_proj_comment($args){\r\n+            global $wpdb;\r\n+            $wpdb->insert($wpdb->prefix.'wppm_project_comment',$args);\r\n+            $comment_id = $wpdb->insert_id;\r\n+            return $comment_id;\r\n+        }\r\n+\r\n+        public static function wppm_submit_proj_comment_meta($args){\r\n+            global $wpdb;\r\n+            $wpdb->insert($wpdb->prefix.'wppm_project_comment_meta',$args);\r\n+            $comment_meta_id = $wpdb->insert_id;\r\n+            return $comment_meta_id;\r\n+        }\r\n+\r\n+        \u002F\u002F Random string\r\n+        public static function getRandomString($length = 8) {\r\n+            $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n+            $string = '';\r\n+            for ($i = 0; $i \u003C $length; $i++) {\r\n+            $string .= $characters[wp_rand(0, strlen($characters) - 1)];\r\n+            }\r\n+            return $string;\r\n+        }\r\n+\r\n+        public static function wppm_get_auth_code($id){\r\n+            global $wpdb;\r\n+            $id = absint($id);\r\n+            $auth_code = $wpdb->get_var(\r\n+                $wpdb->prepare(\r\n+                    \"SELECT task_auth_code \r\n+                    FROM {$wpdb->prefix}wppm_task \r\n+                    WHERE id = %d\",\r\n+                    ($id)\r\n+                )\r\n+            );\r\n+            $auth_code = isset($auth_code) ? $auth_code : \"\";\r\n+            return $auth_code;\r\n+        }\r\n+\r\n+        public static function get_task_fields($task_id,$select_field){\r\n+            global $wpdb;\r\n+            $task_id = absint($task_id);\r\n+            $task_field_value = '';\r\n+            $allowed_fields = array(\r\n+                'id',\r\n+                'created_by',\r\n+                'task_name',\r\n+                'description',\r\n+                'project',\r\n+                'start_date',\r\n+\t\t\t    'end_date',\r\n+\t\t\t    'status',\r\n+\t\t\t    'priority',\r\n+\t\t\t    'users',\r\n+                'date_created',\r\n+                'task_auth_code'\r\n+            );\r\n+\r\n+            \u002F\u002F Validate column name\r\n+            if ( ! in_array( $select_field, $allowed_fields, true ) ) {\r\n+                return '';\r\n+            }\r\n+            if (apply_filters('wppm_get_select_field',true,$task_id,$select_field)) {\r\n+              $get_task_field_value = $wpdb->get_var($wpdb->prepare(\"SELECT $select_field FROM {$wpdb->prefix}wppm_task WHERE id = %d\", $task_id));\r\n+              $task_field_value = $get_task_field_value ? $get_task_field_value : '';\r\n+            }\r\n+            return stripslashes($task_field_value);\r\n+        }\r\n+\r\n+        public static function get_project_fields($proj_id,$select_field){\r\n+            global $wpdb;\r\n+            $proj_id = absint($proj_id);\r\n+            $project_field_value = '';\r\n+            $allowed_fields = array(\r\n+                'id',\r\n+                'created_by',\r\n+                'project_name',\r\n+                'description',\r\n+                'start_date',\r\n+\t\t\t    'end_date',\r\n+\t\t\t    'status',\r\n+\t\t\t    'cat_id',\r\n+\t\t\t    'users',\r\n+                'date_created'\r\n+            );\r\n+\r\n+            \u002F\u002F Validate column name\r\n+            if ( ! in_array( $select_field, $allowed_fields, true ) ) {\r\n+                return '';\r\n+            }\r\n+            if (apply_filters('wppm_get_select_proj_field',true,$proj_id,$select_field)) {\r\n+              $get_project_field_value = $wpdb->get_var($wpdb->prepare(\"SELECT $select_field FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $proj_id));\r\n+              $project_field_value = $get_project_field_value ? $get_project_field_value : '';\r\n+            }\r\n+            return stripslashes($project_field_value);\r\n+        }\r\n+\r\n+        public function get_task($task_id){\r\n+            global $wpdb;\r\n+            $task_data = array();\r\n+            $task_id = absint($task_id);\r\n+            $task = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task WHERE id = %d\", $task_id));\r\n+            if( $task ){\r\n+                $task_data = json_decode(wp_json_encode($task), true);\r\n+            }\r\n+            return $task_data;\r\n+        }\r\n+\r\n+        public function get_checklist($task_id){\r\n+            global $wpdb;\r\n+            $task_id = absint($task_id);\r\n+            $checklist_data = array();\r\n+            $checklist = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist WHERE task_id = %d\", $task_id));\r\n+            if( $checklist ){\r\n+                $checklist_data = json_decode(wp_json_encode($checklist), true);\r\n+            }\r\n+            return $checklist_data;\r\n+        }\r\n+\r\n+        public function get_checklist_items($checklist_id){\r\n+            global $wpdb;\r\n+            $checklist_items_data = array();\r\n+            $checklist_id = absint($checklist_id);\r\n+            $checklist_items = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_checklist_items WHERE checklist_id = %d\", $checklist_id));\r\n+            if( $checklist_items ){\r\n+                $checklist_items_data = json_decode(wp_json_encode($checklist_items), true);\r\n+            }\r\n+            return $checklist_items_data;\r\n+        }\r\n+\r\n+        public function get_project($project_id){\r\n+            global $wpdb;\r\n+            $project_data = array();\r\n+            $project_id = absint($project_id);\r\n+            $project = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $project_id));\r\n+            if( $project ){\r\n+                $project_data = json_decode(wp_json_encode($project), true);\r\n+            }\r\n+            return $project_data;\r\n+        }\r\n+\r\n+        public function get_attachment($attachment_id){\r\n+            global $wpdb;\r\n+            $attachment_data = array();\r\n+            $attachment_id = absint($attachment_id);\r\n+            $attachment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id = %d\", $attachment_id));\r\n+            if( $attachment ){\r\n+                $attachment_data = json_decode(wp_json_encode($attachment), true);\r\n+            }\r\n+            return $attachment_data;\r\n+        }\r\n+\r\n+        public function has_permission($permission, $task_id){\r\n+            global $current_user,$wppmfunction,$wpdb;\r\n+            $task_id = absint($task_id);\r\n+            $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+            $wppm_edit_tasks_permission = get_option('wppm_default_edit_tasks_permission');\r\n+            $wppm_allow_coworkers_add_checklist = get_option('wppm_allow_coworkers_add_checklist');\r\n+            $wppm_allow_coworkers_create_task = get_option('wppm_allow_coworkers_create_task');\r\n+            $wppm_allow_coworkers_change_status = get_option('wppm_allow_coworkers_change_status');\r\n+            $wppm_allow_coworkers_assign_users = get_option('wppm_allow_coworkers_assign_users');\r\n+            if(empty($comment_id)){\r\n+                $comment_id = 0;\r\n+            }\r\n+            $comment_id = absint($comment_id);\r\n+            $task_data = $wppmfunction->get_task($task_id);\r\n+            $task_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d AND id = %d\", $task_id, $comment_id));\r\n+            \r\n+            if(!empty($task_data['project'])){\r\n+                $project_id = $task_data['project'];\r\n+                $project_id = absint($project_id);\r\n+                $project_data = $wppmfunction->get_project($project_id);\r\n+                $cu_user_id = absint($current_user->ID);\r\n+                $project_user_role = $wpdb->get_var($wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $project_id, $cu_user_id));\r\n+                $project_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $project_id));\r\n+                $project_users_arr = explode(',',(string)$project_users);\r\n+            }\r\n+            $response = false;\r\n+            $flag = false;\r\n+            if(!empty($task_data)){\r\n+                $co_worker = $task_data['users'];\r\n+                $co_worker_array = explode(\",\",(string)$co_worker);\r\n+            }\r\n+            if((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)){\r\n+                $flag= true;\r\n+            }\r\n+            if($wppm_current_user_capability=='wppm_admin'){\r\n+                $flag = true;\r\n+            }\r\n+            if(!empty($project_data) && $project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager'){\r\n+                $flag = true;\r\n+            }\r\n+            if($current_user->has_cap('manage_options')){\r\n+                $flag = true;\r\n+            }\r\n+            if(!empty($project_id)){\r\n+                $project_id = absint($project_id);\r\n+                $public_proj_meta = $wpdb->get_var($wpdb->prepare(\"SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta where project_id= %d AND meta_key='public_project'\", $project_id));\r\n+            }else{\r\n+                $public_proj_meta =\"\";\r\n+            }\r\n+            switch ($permission) {\r\n+                case 'change_status':\r\n+                case 'view_task':\r\n+                case 'add_task_comment':\r\n+                    ((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array )) )|| ($current_user->ID == $task_data['created_by']) ||  $public_proj_meta==1 || ($flag==true) || $current_user->has_cap('manage_options') ? $response = true: $response = false;\r\n+                    break;\r\n+                case 'change_task_details':\r\n+                    (($flag==true) || ($current_user->ID == $task_data['created_by']) || $wppm_edit_tasks_permission == 1) ? $response = true: $response = false;\r\n+                    break;\r\n+                case 'add_new_task':\r\n+                    (($flag==true) || $wppm_allow_coworkers_create_task == 1) ? $response = true: $response = false;\r\n+                    break;\r\n+                case 'add_checklist':\r\n+                    (($flag==true) || $wppm_allow_coworkers_add_checklist == 1) ? $response = true: $response = false;\r\n+                    break;\r\n+                case 'change_task_status':\r\n+                    (($flag==true) || $wppm_allow_coworkers_change_status == 1) ? $response = true: $response = false;\r\n+                    break;\r\n+                case 'delete_task':\r\n+                case 'clone_task':\r\n+                    (($flag==true) || ($current_user->ID == $task_data['created_by'])) ? $response = true: $response = false;\r\n+                    break;\r\n+                case 'assign_task_users':\r\n+                    (($flag==true) || $wppm_allow_coworkers_assign_users == 1) ? $response = true: $response = false;\r\n+                    break;\r\n+                case 'change_raised_by':\r\n+                case 'edit_checklist':\r\n+                case 'delete_checklist':\r\n+                    (($flag==true) ? $response = true: $response = false);\r\n+                    break;   \r\n+            }\r\n+            return apply_filters( 'wppm_has_permission', $response, $task_id, $permission );\r\n+        }\r\n+\r\n+        public function has_comment_permission($permission, $task_id,$comment_id){\r\n+            global $current_user,$wppmfunction,$wpdb;\r\n+            $task_id = absint($task_id);\r\n+            $comment_id = absint($comment_id);\r\n+            $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+            if(empty($comment_id)){\r\n+                $comment_id = 0;\r\n+            }\r\n+            $task_data = $wppmfunction->get_task($task_id);\r\n+            $project_user = array();\r\n+            $task_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = %d AND id = %d\", $task_id, $comment_id));\r\n+            \r\n+            if(isset($task_data['project'])){\r\n+                $project_id = $task_data['project'];\r\n+                $project_id = absint($project_id);\r\n+                $cu_id = absint($current_user->ID);\r\n+                $project_data = $wppmfunction->get_project($project_id);\r\n+                $project_user = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $project_id, $cu_id));\r\n+                $project_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $project_id));\r\n+                $project_users_arr = explode(',',(string)$project_users);\r\n+            }\r\n+            $response = false;\r\n+            $flag = false;\r\n+            if(!empty($task_data)){\r\n+                $co_worker = $task_data['users'];\r\n+                $co_worker_array = explode(\",\",(string)$co_worker);\r\n+            }\r\n+            if((!empty($project_user)) && ($project_user->role_id == 1) && in_array($current_user->ID,$project_users_arr)){\r\n+                $flag= true;\r\n+            }\r\n+            if($wppm_current_user_capability=='wppm_admin'){\r\n+                $flag = true;\r\n+            }\r\n+\r\n+            if(!empty($project_data) && $project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager'){\r\n+                $flag = true;\r\n+            }\r\n+\r\n+            switch ($permission) {\r\n+                case 'delete_task_thread':\r\n+                case 'edit_task_comment':\r\n+                (($flag==true) || ($current_user->ID == $task_comment->created_by)) ? $response = true: $response = false;\r\n+                break;\r\n+            }\r\n+            return apply_filters( 'wppm_has_comment_permission', $response, $task_id, $comment_id, $permission );\r\n+        }\r\n+\r\n+        public function has_proj_comment_permission($permission, $proj_id,$comment_id){\r\n+            global $current_user,$wppmfunction,$wpdb;\r\n+            $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+            $proj_id = absint($proj_id);\r\n+            $comment_id = absint($comment_id);\r\n+            $cu_id = absint($current_user->ID);\r\n+            if(empty($comment_id)){\r\n+                $comment_id = 0;\r\n+            }\r\n+            $project_user = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $proj_id, $cu_id));\r\n+            $project_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $proj_id));\r\n+            $project_users_arr = explode(',',(string)$project_users);\r\n+            $proj_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_comment WHERE proj_id = %d AND id = %d\", $proj_id, $comment_id));\r\n+            $response = false;\r\n+            $flag = false;\r\n+            $project_data = $wppmfunction->get_project($proj_id);\r\n+            if((!empty($project_user)) && ($project_user->role_id == 1) && in_array($current_user->ID,$project_users_arr)){\r\n+                $flag= true;\r\n+            }\r\n+            if($wppm_current_user_capability=='wppm_admin'){\r\n+                $flag = true;\r\n+            }\r\n+            if(!empty($project_data) && $project_data['created_by']==$current_user->ID && $wppm_current_user_capability=='wppm_manager'){\r\n+                $flag = true;\r\n+            }\r\n+            switch ($permission) {\r\n+                case 'delete_proj_thread':\r\n+                case 'edit_proj_comment':\r\n+                (($flag==true) || ($current_user->ID == $proj_comment->created_by)) ? $response = true: $response = false;\r\n+                break;\r\n+            }\r\n+            return apply_filters( 'wppm_has_proj_comment_permission', $response, $proj_id, $comment_id, $permission );\r\n+        }\r\n+\r\n+        public function has_project_permission($permission,$project_id){\r\n+            global $current_user,$wppmfunction,$wpdb ;\r\n+            $project_data = $wppmfunction->get_project($project_id);\r\n+            $project_id = absint($project_id);\r\n+            $cu_id = absint($current_user->ID);\r\n+            $project_user = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $project_id, $cu_id));\r\n+            $project_users = $wpdb->get_var($wpdb->prepare(\"SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d\", $project_id));\r\n+            $project_users_arr = explode(',',(string)$project_users);\r\n+            $user = wp_get_current_user();\r\n+            $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );\r\n+            if(!empty($project_data)){\r\n+                $co_worker = $project_data['users'];\r\n+                $co_worker_array = explode(\",\",(string)$co_worker);\r\n+            }\r\n+            if(!empty($project_id)){\r\n+                $public_proj_meta = $wpdb->get_var( $wpdb->prepare(\"SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta where project_id= %d AND meta_key='public_project'\", $project_id));\r\n+            }else{\r\n+                $public_proj_meta =\"\";\r\n+            }\r\n+\r\n+            switch ($permission) {\r\n+                case 'view_project':\r\n+                ((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array )) )? $response = true: $response = false;\r\n+                  break;\r\n+                case 'add_proj_comment':\r\n+                    ( ((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array )) ) || ( $public_proj_meta == '1') || $current_user->has_cap('manage_options')|| $wppm_current_user_capability == 'wppm_admin' || $wppm_current_user_capability == 'wppm_manager')? $response = true: $response = false;\r\n+                  break;\r\n+                case 'change_project_status':\r\n+                case 'assign_project_users':\r\n+                case 'change_project_raised_by':\r\n+                case 'change_project_details':\r\n+                case 'delete_project':\r\n+                    $flag = false;\r\n+                    if( (!empty($project_user)) && ($project_user->role_id == 1) && in_array($current_user->ID,$project_users_arr)){\r\n+                        $flag = true;\r\n+                    }\r\n+                    \r\n+                    (((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array) && $flag==true) || $wppm_current_user_capability == 'wppm_admin')) ? $response = true: $response = false;\r\n+                    break;\r\n+            }\r\n+            return apply_filters( 'wppm_has_project_permission', $response, $project_id, $permission );\r\n+        }\r\n+\r\n+        public function change_status($task_id, $status_id){\r\n+            global $wpdb,$wppmfunction;\r\n+            $task_data = $wppmfunction->get_task($task_id);\r\n+            $prev_status = $task_data['status'];\r\n+            $values=array(\r\n+                'status'=>esc_sql($status_id)\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>esc_sql($task_id)));\r\n+            $old_task_status_meta = $wppmfunction->get_task_meta($task_id,'old_task_status',true);\r\n+            if(!empty($old_task_status_meta)){\r\n+                $wppmfunction->delete_task_meta($task_id,'old_task_status');\r\n+            }\r\n+            $wppmfunction->add_task_meta($task_id,'old_task_status',$prev_status);\r\n+            \r\n+            do_action('wppm_set_change_task_status', $task_id, $status_id, $prev_status);\r\n+        }\r\n+\r\n+        public function change_raised_by($task_id, $user_id){\r\n+            global $wpdb;\r\n+            $values=array(\r\n+                'created_by'=>absint($user_id)\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\r\n+        }\r\n+\r\n+        public function change_task_label($task_id, $task_label){\r\n+            global $wpdb;\r\n+            $values=array(\r\n+                'task_name'=>stripslashes($task_label)\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\r\n+        }\r\n+\r\n+        public function change_task_project_label($task_id, $project_label){\r\n+            global $wpdb;\r\n+            $values=array(\r\n+                'project'=>absint($project_label)\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\r\n+        }\r\n+\r\n+        public function change_start_date($task_id, $task_start_date){\r\n+            global $wpdb;\r\n+            $values=array(\r\n+                'start_date'=>$task_start_date\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\r\n+        }\r\n+\r\n+        public function change_end_date($task_id, $task_end_date){\r\n+            global $wpdb;\r\n+            $values=array(\r\n+                'end_date'=>$task_end_date\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\r\n+        }\r\n+\r\n+        public function change_priority($task_id, $task_priority){\r\n+            global $wpdb;\r\n+            $values=array(\r\n+                'priority'=>absint($task_priority)\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\r\n+        }\r\n+\r\n+        public function change_description($task_id, $task_description){\r\n+            global $wpdb;\r\n+            $task_description = !empty($task_description) ? wp_kses_post($task_description) : '';\r\n+            $values=array(\r\n+                'description'=>$task_description\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\r\n+        }\r\n+\r\n+        public function change_project($task_id,$proj_id){\r\n+            global $wpdb,$wppmfunction;\r\n+            $task_data = $wppmfunction->get_task($task_id);\r\n+            $old_proj = $task_data['project'];\r\n+            $old_proj = absint( $old_proj);\r\n+            $proj_id = absint( $proj_id);\r\n+            $project_data = $wppmfunction->get_project($proj_id);\r\n+            $task_assign_users = $task_data['users'];\r\n+            $tusers_array = array();\r\n+            if(!empty($task_data['users'])){\r\n+                $task_users_array = explode(\",\",(string)$task_assign_users);\r\n+            }\r\n+            if(!empty($project_data['users'])){\r\n+                $project_users = explode(\",\",(string)$project_data['users']);\r\n+            }\r\n+            if(!empty($project_users)){\r\n+                if(!empty($task_users_array)){\r\n+                    foreach($task_users_array as $tuser){\r\n+                        if(!in_array($tuser,$project_users)){\r\n+                            $wpdb->delete( $wpdb->prefix.'wppm_project_users', array( 'proj_id' => \"$proj_id\",'user_id'=>\"$tuser\") );\r\n+                        }\r\n+                        elseif(in_array($tuser,$project_users)){\r\n+                            $tusers_array[] = $tuser; \r\n+                            $tuser = absint($tuser);\r\n+                            $sql = $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $old_proj, $tuser);\r\n+                            $old_proj_user_role =  $wpdb->get_var( $sql );\r\n+                            $sql = $wpdb->prepare(\"SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d\", $proj_id, $tuser);\r\n+                            $proj_users_role =  $wpdb->get_var( $sql );\r\n+                            if(!empty( $old_proj_user_role) && $old_proj_user_role!=$proj_users_role){\r\n+                                $value=array(\r\n+                                    'role_id'=>absint($proj_users_role)\r\n+                                );\r\n+                                $wpdb->update($wpdb->prefix.'wppm_project_users', $value, array('proj_id'=>\"$proj_id\", 'user_id'=>\"$tuser\"));\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                }  \r\n+            }\r\n+            $tusers = implode(\",\",$tusers_array);\r\n+            $values=array(\r\n+                'project'=>absint($proj_id),\r\n+                'users'=>absint($tusers)\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>absint($task_id)));\r\n+        }\r\n+\r\n+        public function get_task_comment($comment_id){\r\n+            global $wpdb;\r\n+            $task_comment_data = array();\r\n+            $comment_id = absint($comment_id);\r\n+            $task_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE id=%d\", $comment_id));\r\n+            if( $task_comment ){\r\n+                $task_comment_data = json_decode(wp_json_encode($task_comment), true);\r\n+            }\r\n+            return $task_comment_data;\r\n+        }\r\n+\r\n+        public function get_proj_comment($comment_id){\r\n+            global $wpdb;\r\n+            $project_comment_data = array();\r\n+            $comment_id = absint($comment_id);\r\n+            $project_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_comment WHERE id=%d\", $comment_id));\r\n+            if( $project_comment ){\r\n+                $project_comment_data = json_decode(wp_json_encode($project_comment), true);\r\n+            }\r\n+            return $project_comment_data;\r\n+        }\r\n+\r\n+        public function change_task_comment($comment_id,$comment_body){\r\n+            global $wpdb;\r\n+            $comment_id = absint($comment_id);\r\n+            $comment_body = !empty($comment_body) ? wp_kses_post($comment_body) : '';\r\n+            $values=array(\r\n+                'body'=>$comment_body\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_task_comment', $values, array('id'=>\"$comment_id\"));\r\n+        }\r\n+\r\n+        public function change_proj_comment($comment_id,$comment_body){\r\n+            global $wpdb;\r\n+            $comment_id = absint($comment_id);\r\n+            $comment_body = !empty($comment_body) ? wp_kses_post($comment_body) : '';\r\n+            $values=array(\r\n+                'body'=>$comment_body\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_project_comment', $values, array('id'=>\"$comment_id\"));\r\n+        }\r\n+\r\n+        public function change_project_label($project_id,$project_label){\r\n+            global $wpdb;\r\n+            $project_id = absint($project_id);\r\n+            $values=array(\r\n+                'project_name'=>esc_sql($project_label)\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>\"$project_id\"));\r\n+        }\r\n+\r\n+        public function change_project_start_date($project_id, $project_start_date){\r\n+            global $wpdb;\r\n+            $project_id = absint($project_id);\r\n+            $project_start_date = esc_sql($project_start_date);\r\n+            $values=array(\r\n+                'start_date'=>$project_start_date\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>\"$project_id\"));\r\n+        }\r\n+\r\n+        public function change_project_end_date($project_id, $project_end_date){\r\n+            global $wpdb;\r\n+            $project_id = absint($project_id);\r\n+            $project_end_date = esc_sql($project_end_date);\r\n+            $values=array(\r\n+                'end_date'=>$project_end_date\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));\r\n+        }\r\n+\r\n+        public function change_category($project_id, $project_category){\r\n+            global $wpdb;\r\n+            $project_id = absint($project_id);\r\n+            $project_category = absint($project_category);\r\n+            $values=array(\r\n+                'cat_id'=>$project_category\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>\"$project_id\"));\r\n+        }\r\n+\r\n+        public function change_project_description($project_id, $project_description){\r\n+            global $wpdb;\r\n+            $project_id = absint($project_id);\r\n+            $project_description = (string) ( $project_description ?? '' );\r\n+            $values = array(\r\n+                'description' => wp_kses_post( $project_description )\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>\"$project_id\"));\r\n+        }\r\n+\r\n+        public function change_project_status($project_id,$status_id){\r\n+            global $wpdb,$wppmfunction,$current_user;\r\n+            $change_status_value= array();\r\n+            $proj_data = $wppmfunction->get_project($project_id);\r\n+            $prev_status = $proj_data['status'];\r\n+            $cu_id = absint($current_user->ID);\r\n+            $values=array(\r\n+                'status'=>absint($status_id)\r\n+            );\r\n+            $project_id = absint($project_id);\r\n+            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));\r\n+            $old_project_status_meta = $wppmfunction->get_project_meta($project_id,'old_project_status',true);\r\n+            if(!empty($old_project_status_meta)){\r\n+                $wppmfunction->delete_project_meta($project_id,'old_project_status');\r\n+            }\r\n+            $change_status_value = array('prev_status'=>\"$prev_status\",'new_status'=>\"$status_id\");\r\n+            $change_status_obj = serialize($change_status_value);\r\n+            $log_values = array('proj_id'=>\"$project_id\",'body'=>$change_status_obj,'attachment_ids'=>\"\",'create_time'=>wp_date(\"Y-m-d h:i:sa\"),'created_by'=>\"$cu_id\" );\r\n+            $wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);\r\n+            $log_id = absint($wpdb->insert_id);\r\n+            $proj_log_values = array('proj_id'=>\"$project_id\",'comment_id'=>\"$log_id\",'comment_type'=>'change_proj_status');\r\n+            $wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);\r\n+            $wppmfunction->add_project_meta($project_id,'old_project_status',$prev_status);\r\n+            do_action('wppm_set_change_project_status', $project_id, $status_id, $prev_status);\r\n+        }\r\n+\r\n+        public function change_project_raised_by($project_id, $user_id){\r\n+            global $wpdb;\r\n+            $values=array(\r\n+                'created_by'=>absint($user_id)\r\n+            );\r\n+            $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>\"$project_id\"));\r\n+        }\r\n+\r\n+        \u002F\u002F Email Notification types\r\n+        public function get_email_notification_types(){\r\n+            $notification_types = array(\r\n+            'new_project'=>esc_html__('New Project','taskbuilder'),\r\n+            'new_task'=>esc_html__('New Task','taskbuilder'),\r\n+            'change_project_status'       => esc_html__('Change Project Status','taskbuilder'),\r\n+            'change_task_status'    => esc_html__('Change Task Status','taskbuilder'),\r\n+            'change_project_assign_users' => esc_html__('Change Project Assign Users','taskbuilder'),\r\n+            'change_task_assign_users'    => esc_html__('Change Task Assign Users','taskbuilder'),\r\n+            'new_discussion'     => esc_html__('New Comment','taskbuilder'),\r\n+            'new_proj_discussion'  =>esc_html__('New Project Comment','taskbuilder')\r\n+            );\r\n+            return apply_filters('wppm_en_types',$notification_types);\r\n+        }\r\n+\r\n+        public function check_rtl(){\r\n+            $rtl_locale = array('ar','ary','ckb','haz','he_IL','fa_IR','ps','ur','ug_CN');\r\n+            if(in_array(get_locale(),$rtl_locale)){\r\n+              return 'rtl';\r\n+            }else{\r\n+              return 'ltr';\r\n+            } \r\n+        }\r\n+\r\n+        public function add_project_meta($proj_id,$meta_key,$meta_value){\r\n+            global $wpdb;\r\n+            $wpdb->insert( \r\n+              $wpdb->prefix . 'wppm_project_meta', \r\n+              array(\r\n+                'project_id' =>$proj_id,\r\n+                'meta_key' => $meta_key,\r\n+                'meta_value' =>$meta_value\r\n+            ));\r\n+        }\r\n+\r\n+        public function add_task_meta($task_id,$meta_key,$meta_value){\r\n+            global $wpdb;\r\n+            $wpdb->insert( \r\n+              $wpdb->prefix . 'wppm_task_meta', \r\n+              array(\r\n+                'task_id' => $task_id,\r\n+                'meta_key' => $meta_key,\r\n+                'meta_value' =>$meta_value\r\n+            ));\r\n+        }\r\n+\r\n+        public function get_project_meta($project_id,$meta_key,$flag = false){\r\n+            global $wpdb,$wppmfunction;\r\n+            $project_id = absint($project_id);\r\n+            $meta_key = esc_sql($meta_key);\r\n+            if($flag){\r\n+                $get_meta = $wpdb->get_var($wpdb->prepare(\"SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = %d AND meta_key = %s\",$project_id,$meta_key));\r\n+                $project_meta = isset($get_meta) ? stripslashes($get_meta) : '';\r\n+                \r\n+            } else {\r\n+                $project_meta = array();\r\n+                $results = $wpdb->get_results($wpdb->prepare(\"SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = %d AND meta_key = %s\",$project_id,$meta_key));\r\n+                if( (!empty($results)) ){\r\n+                    foreach ($results as $result) {\r\n+                        if(!empty($result)){\r\n+                            $project_meta[]= stripslashes($result->meta_value);\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+            return $project_meta;\r\n+        }\r\n+\r\n+        public function get_task_meta($task_id,$meta_key,$flag = false){\r\n+            global $wpdb,$wppmfunction;\r\n+            $task_id = absint($task_id);\r\n+            $meta_key = esc_sql($meta_key);\r\n+            if($flag){\r\n+                $get_meta = $wpdb->get_var($wpdb->prepare(\"SELECT meta_value FROM {$wpdb->prefix}wppm_task_meta WHERE task_id = %d AND meta_key = %s\",$task_id,$meta_key));\r\n+                $task_meta = isset($get_meta) ? stripslashes($get_meta) : '';\r\n+                \r\n+            } else {\r\n+                $task_meta = array();\r\n+                $results = $wpdb->get_results($wpdb->prepare(\"SELECT meta_value FROM {$wpdb->prefix}wppm_task_meta WHERE task_id = %d AND meta_key = %s\",$task_id,$meta_key));\r\n+                if( (!empty($results)) ){\r\n+                    foreach ($results as $result) {\r\n+                        if(!empty($result)){\r\n+                            $task_meta[]= stripslashes($result->meta_value);\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+            return $task_meta;\r\n+        }\r\n+\r\n+        public function get_previously_assigned_users($project_id){\r\n+            global $wpdb,$wppmfunction;\r\n+            $prev_assigned_users = $wppmfunction->get_project_meta($project_id,'prev_assigned_users');\r\n+            $user_emails = array();\r\n+            if(!empty($prev_assigned_users)){\r\n+                foreach ($prev_assigned_users as $user) {\r\n+                    $userdata = get_userdata($user);\r\n+                    $user_emails[] = $userdata->user_email;\r\n+                    \r\n+                }\r\n+            }\r\n+            return apply_filters( 'wppm_get_prev_assigned_users_emails', $user_emails ,$project_id);\r\n+        }\r\n+\r\n+        public function get_project_creator_email($project_id){\r\n+            global $wpdb,$wppmfunction;\r\n+            $project_data = $wppmfunction->get_project($project_id,'created_by');\r\n+            $userdata = get_userdata($project_data['created_by']);\r\n+            if(!empty( $userdata)){\r\n+                $proj_creator_email[] = $userdata->user_email;\r\n+            }\r\n+            return apply_filters( 'wppm_get_project_creator_email', $proj_creator_email ,$project_id);\r\n+        }\r\n+\r\n+        public function get_task_creator_email($task_id){\r\n+            global $wpdb,$wppmfunction;\r\n+            $task_data = $wppmfunction->get_task($task_id,'created_by');\r\n+            $userdata = get_userdata($task_data['created_by']);\r\n+            if(!empty( $userdata)){\r\n+                $task_creator_email[] = $userdata->user_email;\r\n+            }\r\n+            return apply_filters( 'wppm_get_task_creator_email', $task_creator_email ,$task_id);\r\n+        }\r\n+\r\n+        public function get_previously_assigned_task_users($task_id){\r\n+            global $wpdb,$wppmfunction;\r\n+            $prev_assigned_task_users = $wppmfunction->get_task_meta($task_id,'prev_assigned_task_users');\r\n+            $user_emails = array();\r\n+            if(!empty($prev_assigned_task_users)){\r\n+                foreach ($prev_assigned_task_users as $user) {\r\n+                    if(!empty($user)){\r\n+                        $userdata = get_userdata($user);\r\n+                        $user_emails[] = $userdata->user_email;\r\n+                    }\r\n+                }\r\n+            }\r\n+            return apply_filters( 'wppm_get_prev_assigned_task_users_emails', $user_emails ,$task_id);\r\n+        }\r\n+        \u002F**\r\n+         * Update project meta for project\r\n+         *\u002F\r\n+        function update_project_meta($project_id ,$meta_key ,$meta_value){\r\n+            global $wpdb;\r\n+            $project_id = absint($project_id);\r\n+            $meta_key = esc_sql($meta_key);\r\n+            $results = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = %d AND meta_key = %s\",$project_id,$meta_key));\r\n+            $wpdb->update($wpdb->prefix.'wppm_project_meta', $meta_value, array('project_id'=>$project_id,'meta_key' => \"$meta_key\"));\r\n+        }\r\n+        \r\n+        \u002F**\r\n+        * Update task meta for task\r\n+        *\u002F\r\n+        function update_task_meta($task_id ,$meta_key ,$meta_value){\r\n+            global $wpdb;\r\n+            $task_id = absint($task_id);\r\n+            $meta_key = esc_sql($meta_key);\r\n+            $results = $wpdb->get_results($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_meta WHERE task_id = %d AND meta_key = %s\",$task_id,$meta_key));\r\n+            $wpdb->update($wpdb->prefix.'wppm_task_meta', $meta_value, array('task_id'=>$task_id,'meta_key' => \"$meta_key\"));\r\n+        }\r\n+\r\n+        function delete_project_meta($project_id  ,$meta_key){\r\n+            global $wpdb;\r\n+            $project_id = absint($project_id);\r\n+            $meta_key = ($meta_key);\r\n+            $wpdb->delete( $wpdb->prefix.'wppm_project_meta', array( 'project_id' => \"$project_id\",'meta_key'=>\"$meta_key\") );\r\n+        }\r\n+\r\n+        function delete_task_meta($task_id ,$meta_key){\r\n+            global $wpdb;\r\n+            $task_id = absint($task_id);\r\n+            $meta_key = ($meta_key);\r\n+            $wpdb->delete( $wpdb->prefix.'wppm_task_meta', array( 'task_id' => \"$task_id\",'meta_key'=>\"$meta_key\") );\r\n+        }\r\n+\r\n+        public function replace_macro($str,$project_id){\r\n+            include WPPM_ABSPATH . 'includes\u002Freplace_macro.php';\r\n+            return $str;\r\n+        }\r\n+\r\n+        public function replace_task_macro($str,$task_id){\r\n+            include WPPM_ABSPATH . 'includes\u002Freplace_task_macro.php';\r\n+            return $str;\r\n+        }\r\n+\r\n+        public function get_old_project_status_name($id){\r\n+            global $wppmfunction, $wpdb;\r\n+            $old_project_status = $wppmfunction->get_project_meta($id,'old_project_status',true);\r\n+            $old_project_status = absint($old_project_status);\r\n+            $status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_project_statuses WHERE id = %d\",$old_project_status));\r\n+            return $status_name;\r\n+        }\r\n+\r\n+        public function get_new_project_status_name($status_id){\r\n+            global $wpdb;\r\n+            $status_id = absint($status_id);\r\n+            $status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_project_statuses WHERE id = %d\",$status_id));\r\n+            return $status_name;\r\n+        }\r\n+\r\n+        public function get_old_task_status_name($task_id){\r\n+            global $wppmfunction, $wpdb;\r\n+            $old_task_status = $wppmfunction->get_task_meta($task_id,'old_task_status',true);\r\n+            $old_task_status = absint($old_task_status);\r\n+            $status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\",$old_task_status));\r\n+            return $status_name;\r\n+        }\r\n+\r\n+        public function get_new_task_status_name($status_id){\r\n+            global $wpdb;\r\n+            $status_id = absint($status_id);\r\n+            $status_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d\",$status_id));\r\n+            return $status_name;\r\n+        }\r\n+\r\n+        public function get_project_category_name($cat_id){\r\n+            global $wpdb;\r\n+            $cat_id = absint($cat_id);\r\n+            if(!empty($cat_id)){\r\n+                $cat_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_project_categories WHERE id = %d\",$cat_id));\r\n+            }else{\r\n+                $cat_name = \"\"; \r\n+            }\r\n+            return $cat_name;\r\n+        }\r\n+\r\n+        public function get_project_assigned_users_names($project_id){\r\n+            global $wppmfunction;\r\n+            $wppm_project_data = $wppmfunction->get_project($project_id);\r\n+            if(!empty($wppm_project_data['users'])){\r\n+                $wppm_project_assign_users_array = explode(\",\", $wppm_project_data['users']);\r\n+            }else{\r\n+                $wppm_project_assign_users_array = array();\r\n+            }\r\n+            $users_names = array();\r\n+            if(!empty($wppm_project_assign_users_array)){\r\n+                foreach ($wppm_project_assign_users_array as $user_id) {\r\n+                    if(!empty($user_id)){\r\n+                        $userdata = get_userdata( $user_id );\r\n+                        if(!empty($userdata)){\r\n+                            $users_names[] = $userdata->display_name;\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+            return implode(', ', $users_names);\r\n+        }\r\n+\r\n+        public function get_task_assigned_users_names($task_id){\r\n+            global $wppmfunction;\r\n+            $wppm_task_data = $wppmfunction->get_task($task_id);\r\n+            $wppm_task_assign_users_array = explode(\",\", (string)$wppm_task_data['users']);\r\n+            $users_names = array();\r\n+            if(!empty($wppm_task_assign_users_array)){\r\n+                foreach ($wppm_task_assign_users_array as $user_id) {\r\n+                    if(!empty($user_id)){\r\n+                        $userdata = get_userdata( $user_id );\r\n+                        if(!empty($userdata)){\r\n+                            $users_names[] = $userdata->display_name;\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+            return implode(', ', $users_names);\r\n+        }\r\n+\r\n+        public function get_project_previously_assigned_users_names($project_id){\r\n+            global $wppmfunction;\r\n+            $wppm_project_assign_users = $wppmfunction->get_project_meta($project_id,'prev_assigned_users');            \r\n+            $users_names = array();\r\n+            if(!empty($wppm_project_assign_users)){\r\n+                foreach ($wppm_project_assign_users as $user) {\r\n+                    if(!empty($user)){\r\n+                        $userdata = get_userdata( $user );\r\n+                        $users_names[] = $userdata->display_name; \r\n+                    }  \r\n+                }\r\n+            }\r\n+            return implode(', ', $users_names);\r\n+        }\r\n+\r\n+        public function get_task_previously_assigned_users_names($task_id){\r\n+            global $wppmfunction;\r\n+            $wppm_task_assign_users = $wppmfunction->get_task_meta($task_id,'prev_assigned_task_users');            \r\n+            $users_names = array();\r\n+            if(!empty($wppm_task_assign_users)){\r\n+                foreach ($wppm_task_assign_users as $user) {\r\n+                    if(!empty($user)){\r\n+                        $userdata = get_userdata( $user );\r\n+                        $users_names[] = $userdata->display_name;\r\n+                    } \r\n+                }\r\n+            }\r\n+            return implode(', ', $users_names);\r\n+        }\r\n+\r\n+        public function get_task_priority_name($priority){\r\n+            global $wpdb;\r\n+            $priority = absint($priority);\r\n+            $priority_name = $wpdb->get_var($wpdb->prepare(\"SELECT name FROM {$wpdb->prefix}wppm_task_priorities WHERE id = %d\",$priority));\r\n+            return $priority_name;\r\n+        }\r\n+\r\n+        public function get_last_comment_user_name($task_id){\r\n+            global $wpdb;\r\n+            $task_id = absint($task_id);\r\n+            $task_comment_creator = $wpdb->get_var($wpdb->prepare(\"SELECT created_by FROM {$wpdb->prefix}wppm_task_comment WHERE (id=(select MAX(id) from {$wpdb->prefix}wppm_task_comment) AND task_id = %d)\",$task_id));\r\n+            if(!empty($task_comment_creator)){\r\n+                $user = get_userdata( $task_comment_creator );\r\n+                return $user->display_name;\r\n+            }\r\n+        }\r\n+\r\n+        public function get_last_comment_body($task_id){\r\n+            global $wpdb;\r\n+            $task_id = absint($task_id);\r\n+            $task_comment = $wpdb->get_var($wpdb->prepare(\"SELECT body FROM {$wpdb->prefix}wppm_task_comment WHERE (id=(select MAX(id) from {$wpdb->prefix}wppm_task_comment) AND task_id = %d)\",$task_id));\r\n+            return $task_comment;\r\n+        }\r\n+        \r\n+        public function create_duplicate_task($ptask_id, $project_id,$ajax_nonce){\r\n+            include WPPM_ABSPATH . 'includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_set_clone_task.php';\r\n+        }\r\n+\r\n+        public function get_last_comment_proj_user_name($project_id){\r\n+            global $wpdb;\r\n+            $project_id = absint($project_id);\r\n+            $proj_comment_creator = $wpdb->get_var($wpdb->prepare(\"SELECT created_by FROM {$wpdb->prefix}wppm_project_comment WHERE (id=(select MAX(id) from {$wpdb->prefix}wppm_project_comment) AND proj_id = %d)\",$project_id));\r\n+            if(!empty($proj_comment_creator)){\r\n+                $user = get_userdata( $proj_comment_creator );\r\n+                return $user->display_name;\r\n+            }\r\n+        }\r\n+\r\n+        public function get_proj_comment_body($project_id){\r\n+            global $wpdb;\r\n+            $project_id = absint($project_id);\r\n+            $proj_comment = $wpdb->get_var($wpdb->prepare(\"SELECT body FROM {$wpdb->prefix}wppm_project_comment WHERE (id=(select MAX(id) from {$wpdb->prefix}wppm_project_comment) AND proj_id = %d)\",$project_id));\r\n+            return $proj_comment;\r\n+        }\r\n+\r\n+        public function get_project_url($project_id, $view){\r\n+            global $wpdb,$wppmfunction;\r\n+            $project_id = absint($project_id);\r\n+\t\t\t$page_settings = get_option( 'wppm-page-settings' );\r\n+\t\t\tif ( $view == '0' ) {\r\n+\t\t\t\t$url = admin_url( 'admin.php?page=wppm-projects&section=project-list&id=' . $project_id );\r\n+\t\t\t} else {\r\n+                $url = get_permalink( $page_settings['project-url-page'] );\r\n+                $auth_id  = $wppmfunction->get_project_meta($project_id,'project_auth_code',true);\r\n+\r\n+\t\t\t\t$url = add_query_arg(\r\n+\t\t\t\t\tarray(\r\n+\t\t\t\t\t\t'project-id' => $project_id,\r\n+\t\t\t\t\t\t'auth-code' => $auth_id,\r\n+\r\n+\t\t\t\t\t),\r\n+\t\t\t\t\t$url\r\n+\t\t\t\t);\r\n+\t\t\t}\r\n+\r\n+\t\t\treturn $url;\r\n+        }\r\n+\r\n+        public function get_task_url($task_id, $view){\r\n+            global $wpdb,$wppmfunction;\r\n+            $task_id = absint($task_id);\r\n+\t\t\t$page_settings = get_option( 'wppm-page-settings' );\r\n+\t\t\tif ( $view == '0' ) {\r\n+\t\t\t\t$url = admin_url( 'admin.php?page=wppm-tasks&section=task-list&id=' . $task_id );\r\n+\t\t\t} else{\r\n+\t\t\t\t$url = get_permalink( $page_settings['task-url-page'] );\r\n+\t\t\t    $auth_id  = $this->wppm_get_auth_code($task_id);\r\n+\t\t\t\t$url = add_query_arg(\r\n+\t\t\t\t\tarray(\r\n+\t\t\t\t\t\t'task-id' => $task_id,\r\n+\t\t\t\t\t\t'auth-code' => $auth_id,\r\n+\t\t\t\t\t),\r\n+\t\t\t\t\t$url\r\n+\t\t\t\t);\r\n+\r\n+\t\t\t}\r\n+\r\n+\t\t\treturn $url;\r\n+        }\r\n+\r\n+        public function wppm_user_role(){\r\n+            $user_role = array(\r\n+                'wppm_admin' => array(\r\n+                    'label' => esc_html__('WPPM Administrator','taskbuilder'),\r\n+                ),\r\n+                'wppm_manager' => array(\r\n+                    'label' => esc_html__('WPPM Manager','taskbuilder'),\r\n+                )\r\n+\t\t\t);\r\n+            return $user_role;\r\n+        }\r\n+\r\n+        public static function wppm_toolbar_options_setting() {\r\n+\t\t\t$toolbar = array(\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Bold', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'bold',\r\n+\t\t\t\t),\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Italic', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'italic',\r\n+\t\t\t\t),\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Underline', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'underline',\r\n+\t\t\t\t),\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Blockquote', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'blockquote',\r\n+\t\t\t\t),\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Align', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'align',\r\n+\t\t\t\t),\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Bulleted list', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'bullist',\r\n+\t\t\t\t),\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Numbered list', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'numlist',\r\n+\t\t\t\t),\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Right to left', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'rtl',\r\n+\t\t\t\t),\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Link', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'link',\r\n+\t\t\t\t),\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Image', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'wppm_insert_editor_img',\r\n+\t\t\t\t),\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Text Color', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'forecolor',\r\n+\t\t\t\t),\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Text Background Color', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'backcolor',\r\n+\t\t\t\t),\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'name'  => esc_attr__( 'Strikethrough', 'taskbuilder' ),\r\n+\t\t\t\t\t'value' => 'strikethrough',\r\n+\t\t\t\t),\r\n+\t\t\t);\r\n+\t\t\treturn $toolbar;\r\n+\t\t}\r\n+\r\n+        public static function wppm_load_setting_header_html() {\r\n+\t\t\t?>\r\n+\t\t\t\u003Cdiv class=\"wppm-header\" style=\"padding-left:20px;margin:10px 0 10px 0;display: flex; justify-content: space-between; align-items: center; position: sticky;top: 0;background: #fff !important;z-index: 9999;width:99%; left: 0; \">\r\n+\t\t\t\t\u003Cdiv class=\"wppm-header-title\" style=\"display: flex; align-items: center; gap: 3px;\">\r\n+\t\t\t\t\t\u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Ftaskbuilder_logo.png'); ?>\" class=\"wppm-header-icon\" alt=\"taskbuilder Icon\" style=\"width: 33px; height: 33px;margin-right:10px !important;\"\u002F>\r\n+                    \u003Ch2 style=\"font-size: 30px; font-weight: 600; color: #333; margin: 0; font: 22px OpenSans-Light, Helvetica, Arial, sans-serif;\">\u003C?php esc_html_e( 'Taskbuilder', 'taskbuilder' )?>\u003C\u002Fh2>\r\n+\t\t\t\t\u003C\u002Fdiv>\r\n+                \u003Cdiv class=\"wppm-header-button\" style=\"display: flex; justify-content: flex-end; gap: 3px;\">\r\n+                    \u003Cdiv class=\"wppm-btn\r\n+                    \" style=\"background-color: #0052CC; color: #fff; padding: 8px 10px;margin: 35px 0px 14px 0px;text-decoration: none;border-radius: 5px;transition: background 0.3s ease;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\">\r\n+                        \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fhelp.svg'); ?>\" class=\"wppm-header-icon\" alt=\"taskbuilder Icon\" style=\"width: 20px; height: 19px;margin-bottom: -5px;\"\u002F>\r\n+                        \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fhelp\u002F\" target=\"__blank\" style=\"color:#fff\">\u003C?php esc_html_e( 'Help', 'taskbuilder' )?>\u003C\u002Fa>\r\n+                    \u003C\u002Fdiv>\r\n+                    \u003Cdiv class=\"wppm-btn\" style=\"background-color: #0052CC; color: #fff; padding: 8px 10px;margin: 35px 0px 14px 0px;text-decoration: none;border-radius: 5px;transition: background 0.3s ease;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\">\r\n+                        \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsupport.svg'); ?>\" class=\"wppm-header-icon\" alt=\"taskbuilder Icon\" style=\"width: 15px; height: 19px;margin-bottom: -5px;\"\u002F>\r\n+                        \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fsupport\u002F?wpsc-section=ticket-list\" target=\"__blank\" style=\"color:#fff\">\u003C?php esc_html_e( 'Support', 'taskbuilder' )?>\u003C\u002Fa>\r\n+                    \u003C\u002Fdiv>\r\n+                    \u003Cdiv class=\"wppm-btn\" style=\"background-color: #0052CC; color: #fff; padding: 8px 10px;margin: 35px 10px 14px 0px;text-decoration: none;border-radius: 5px;transition: background 0.3s ease;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\">\r\n+                        \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fpro_features.svg'); ?>\" class=\"wppm-header-icon\" alt=\"taskbuilder Icon\" style=\"width: 15px; height: 19px;margin-bottom: -5px;\"\u002F>\r\n+                        \u003Ca href=\"https:\u002F\u002Ftaskbuilder.net\u002Fpricing\u002F\" target=\"__blank\" style=\"color:#fff\">\u003C?php esc_html_e( 'Get pro', 'taskbuilder' )?>\u003C\u002Fa>\r\n+                    \u003C\u002Fdiv>\r\n+                \u003C\u002Fdiv>\r\n+\t\t\t\u003C\u002Fdiv>\r\n+\t\t\t\u003C?php\r\n+\t\t}\r\n+\r\n+        public function wppm_get_duration($start_date, $end_date){\r\n+            if ( empty($start_date) || empty($end_date) || $start_date=='0000-00-00 00:00:00' || $end_date =='0000-00-00 00:00:00') {\r\n+                return '';\r\n+            }\r\n+\r\n+            $start_ts = strtotime($start_date);\r\n+            $end_ts   = strtotime($end_date);\r\n+\r\n+            if ( $end_ts \u003C= $start_ts ) {\r\n+                return '0 min';\r\n+            }\r\n+\r\n+            $diff = $end_ts - $start_ts;\r\n+\r\n+            $days    = floor($diff \u002F 86400);\r\n+            $hours   = floor(($diff % 86400) \u002F 3600);\r\n+            $minutes = floor(($diff % 3600) \u002F 60);\r\n+\r\n+            $duration = [];\r\n+\r\n+            if ($days > 0)    $duration[] = $days . 'd';\r\n+            if ($hours > 0)  $duration[] = $hours . 'h';\r\n+            if ($minutes > 0 || empty($duration)) $duration[] = $minutes . 'm';\r\n+\r\n+            return implode(' ', $duration);\r\n+\r\n+        }\r\n+    }\r\n+endif;\r\n $GLOBALS['wppmfunction'] =  new WPPM_Functions();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fclass-wppm-profile-update.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fclass-wppm-profile-update.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fclass-wppm-profile-update.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fclass-wppm-profile-update.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,147 +1,147 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-if ( ! class_exists( 'WPPM_profile_update' ) ) :\n-  \n-    final class WPPM_profile_update {\n-    \n-        \u002F\u002F constructor\n-        public function __construct() {\n-            $this->setup_actions();\n-        }\n-    \n-        \u002F**\n-         * Setup the admin hooks, actions and filters\n-         *\n-         * @return void\n-         *\u002F\n-        function setup_actions() {\n-            \u002F\u002F Bail if in network admin\n-            if ( is_network_admin() ) {\n-                return;\n-            }\n-    \n-            \u002F\u002F User profile edit\u002Fdisplay actions\n-            add_action( 'edit_user_profile', array($this, 'profile' ) );\n-            add_action( 'show_user_profile', array( $this, 'profile' ) );\n-            add_action( 'profile_update', array( $this, 'profile_update' ), 10, 2 );\n-        }\n-    \n-        function profile($profile_user){\n-            if ( ! current_user_can( 'edit_user', $profile_user->ID ) || !current_user_can( 'manage_options') ) {\n-                return;\n-            } ?>\n-            \u003Ch3>\u003C?php esc_html_e( 'Taskbuilder', 'taskbuilder' ); ?>\u003C\u002Fh3>\n-            \u003C?php\n-            $this->capbility_form( $profile_user );\n-\n-            do_action( 'wppm_user_profile', $profile_user );\n-\n-            wp_nonce_field( 'wppm_nonce', 'wppm_profile_nonce' );\n-\n-        }\n-        protected function capbility_form( $user ) {\n-            global $wppmfunction, $wpdb;\n-            if ( user_can( $user->ID, 'manage_options' ) ) {\n-                return;\n-            }\n-    \n-            if ( $user->ID == get_current_user_id() ) {\n-                return;\n-            }\n-    \n-            $meta_value = get_user_meta( $user->ID, 'wppm_capability', true );\n-            ?>\n-            \u003Ctable class=\"form-table\">\n-                \u003Ctbody>\n-                    \u003Ctr>\n-                        \u003Cth>\u003C?php esc_html_e( 'Capability', 'taskbuilder' ); ?>\u003C\u002Fth>\n-    \n-                        \u003Ctd>\n-                            \u003Cfieldset>\n-                                \u003Cselect name=\"wppm_capability\">\n-                                    \u003Coption value=\"\">\n-                                        \u003C?php echo esc_html_e( '— No capability for this user —', 'taskbuilder' ); ?>\n-                                    \u003C\u002Foption>\n-                                    \u003C?php\n-                                        foreach ( $wppmfunction->wppm_user_role() as $cap_key => $label ) : ?>\n-                                            \u003Coption value=\"\u003C?php echo esc_attr( $cap_key ); ?>\"\n-                                                \u003C?php selected( $meta_value, $cap_key ); ?>>\n-                                                \u003C?php echo esc_html( $label['label'] ); ?>\n-                                            \u003C\u002Foption>\n-\n-                                        \u003C?php endforeach; ?>\n-                                    ?>\n-                                \u003C\u002Fselect>\n-                            \u003C\u002Ffieldset>\n-                        \u003C\u002Ftd>\n-                    \u003C\u002Ftr>\n-                \u003C\u002Ftbody>\n-            \u003C\u002Ftable>\n-            \u003C?php\n-        }\n-\n-        function profile_update( $user_id, $prev_data ) {\n-            global $wppmfunction,$wpdb;\n-            if (\n-                ! isset( $_POST['wppm_profile_nonce'] )\n-                ||\n-                ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['wppm_profile_nonce'] ) ), 'wppm_nonce' )\n-            ) {\n-                return;\n-            }\n-    \n-            $cap_key = empty( $_POST['wppm_capability'] ) ? '' : sanitize_text_field( wp_unslash( $_POST['wppm_capability'] ) );\n-    \n-            if ( !current_user_can( 'manage_options' ) ) {\n-                return;\n-            }\n-    \n-            $user_id = empty( $user_id ) ? 0 : absint( $user_id );\n-    \n-            $this->update_user_capability( $user_id, $cap_key );\n-    \n-            do_action( 'wppm_update_profile', $user_id, $prev_data );\n-        }\n-\n-        function update_user_capability( $user_id, $cap_key ) {\n-            global $wppmfunction,$wpdb;\n-            if ( empty( $cap_key ) ) {\n-                update_user_meta( $user_id, 'wppm_capability', '' );\n-                $this->remove_capability( $user_id );\n-                return;\n-            }\n-    \n-            update_user_meta( $user_id, 'wppm_capability', $cap_key );\n-    \n-            $this->remove_capability( $user_id,$cap_key );\n-            $this->add_capability( $user_id, $cap_key );\n-    \n-        }\n-    \n-        function remove_capability( $user_id ) {\n-            global $wppmfunction,$wpdb;\n-            $user = get_user_by( 'id', $user_id );\n-    \n-            foreach ( $wppmfunction->wppm_user_role() as $meta_key => $label ) {\n-                $user->remove_cap( $meta_key );\n-            }\n-        }\n-    \n-        function add_capability( $user_id, $cap_key ) {\n-            global $wppmfunction,$wpdb;\n-            $user = get_user_by( 'id', $user_id );\n-            $user_cap_slug = $wppmfunction->wppm_user_role();\n-            foreach($user_cap_slug as $key=>$val){\n-                if($cap_key== $key){\n-                   $user->add_cap($key );\n-                }\n-            }\n-            $user->add_cap( $cap_key );\n-        }\n-    }\n-endif;\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+if ( ! class_exists( 'WPPM_profile_update' ) ) :\r\n+  \r\n+    final class WPPM_profile_update {\r\n+    \r\n+        \u002F\u002F constructor\r\n+        public function __construct() {\r\n+            $this->setup_actions();\r\n+        }\r\n+    \r\n+        \u002F**\r\n+         * Setup the admin hooks, actions and filters\r\n+         *\r\n+         * @return void\r\n+         *\u002F\r\n+        function setup_actions() {\r\n+            \u002F\u002F Bail if in network admin\r\n+            if ( is_network_admin() ) {\r\n+                return;\r\n+            }\r\n+    \r\n+            \u002F\u002F User profile edit\u002Fdisplay actions\r\n+            add_action( 'edit_user_profile', array($this, 'profile' ) );\r\n+            add_action( 'show_user_profile', array( $this, 'profile' ) );\r\n+            add_action( 'profile_update', array( $this, 'profile_update' ), 10, 2 );\r\n+        }\r\n+    \r\n+        function profile($profile_user){\r\n+            if ( ! current_user_can( 'edit_user', $profile_user->ID ) || !current_user_can( 'manage_options') ) {\r\n+                return;\r\n+            } ?>\r\n+            \u003Ch3>\u003C?php esc_html_e( 'Taskbuilder', 'taskbuilder' ); ?>\u003C\u002Fh3>\r\n+            \u003C?php\r\n+            $this->capbility_form( $profile_user );\r\n+\r\n+            do_action( 'wppm_user_profile', $profile_user );\r\n+\r\n+            wp_nonce_field( 'wppm_nonce', 'wppm_profile_nonce' );\r\n+\r\n+        }\r\n+        protected function capbility_form( $user ) {\r\n+            global $wppmfunction, $wpdb;\r\n+            if ( user_can( $user->ID, 'manage_options' ) ) {\r\n+                return;\r\n+            }\r\n+    \r\n+            if ( $user->ID == get_current_user_id() ) {\r\n+                return;\r\n+            }\r\n+    \r\n+            $meta_value = get_user_meta( $user->ID, 'wppm_capability', true );\r\n+            ?>\r\n+            \u003Ctable class=\"form-table\">\r\n+                \u003Ctbody>\r\n+                    \u003Ctr>\r\n+                        \u003Cth>\u003C?php esc_html_e( 'Capability', 'taskbuilder' ); ?>\u003C\u002Fth>\r\n+    \r\n+                        \u003Ctd>\r\n+                            \u003Cfieldset>\r\n+                                \u003Cselect name=\"wppm_capability\">\r\n+                                    \u003Coption value=\"\">\r\n+                                        \u003C?php echo esc_html_e( '— No capability for this user —', 'taskbuilder' ); ?>\r\n+                                    \u003C\u002Foption>\r\n+                                    \u003C?php\r\n+                                        foreach ( $wppmfunction->wppm_user_role() as $cap_key => $label ) : ?>\r\n+                                            \u003Coption value=\"\u003C?php echo esc_attr( $cap_key ); ?>\"\r\n+                                                \u003C?php selected( $meta_value, $cap_key ); ?>>\r\n+                                                \u003C?php echo esc_html( $label['label'] ); ?>\r\n+                                            \u003C\u002Foption>\r\n+\r\n+                                        \u003C?php endforeach; ?>\r\n+                                    ?>\r\n+                                \u003C\u002Fselect>\r\n+                            \u003C\u002Ffieldset>\r\n+                        \u003C\u002Ftd>\r\n+                    \u003C\u002Ftr>\r\n+                \u003C\u002Ftbody>\r\n+            \u003C\u002Ftable>\r\n+            \u003C?php\r\n+        }\r\n+\r\n+        function profile_update( $user_id, $prev_data ) {\r\n+            global $wppmfunction,$wpdb;\r\n+            if (\r\n+                ! isset( $_POST['wppm_profile_nonce'] )\r\n+                ||\r\n+                ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['wppm_profile_nonce'] ) ), 'wppm_nonce' )\r\n+            ) {\r\n+                return;\r\n+            }\r\n+    \r\n+            $cap_key = empty( $_POST['wppm_capability'] ) ? '' : sanitize_text_field( wp_unslash( $_POST['wppm_capability'] ) );\r\n+    \r\n+            if ( !current_user_can( 'manage_options' ) ) {\r\n+                return;\r\n+            }\r\n+    \r\n+            $user_id = empty( $user_id ) ? 0 : absint( $user_id );\r\n+    \r\n+            $this->update_user_capability( $user_id, $cap_key );\r\n+    \r\n+            do_action( 'wppm_update_profile', $user_id, $prev_data );\r\n+        }\r\n+\r\n+        function update_user_capability( $user_id, $cap_key ) {\r\n+            global $wppmfunction,$wpdb;\r\n+            if ( empty( $cap_key ) ) {\r\n+                update_user_meta( $user_id, 'wppm_capability', '' );\r\n+                $this->remove_capability( $user_id );\r\n+                return;\r\n+            }\r\n+    \r\n+            update_user_meta( $user_id, 'wppm_capability', $cap_key );\r\n+    \r\n+            $this->remove_capability( $user_id,$cap_key );\r\n+            $this->add_capability( $user_id, $cap_key );\r\n+    \r\n+        }\r\n+    \r\n+        function remove_capability( $user_id ) {\r\n+            global $wppmfunction,$wpdb;\r\n+            $user = get_user_by( 'id', $user_id );\r\n+    \r\n+            foreach ( $wppmfunction->wppm_user_role() as $meta_key => $label ) {\r\n+                $user->remove_cap( $meta_key );\r\n+            }\r\n+        }\r\n+    \r\n+        function add_capability( $user_id, $cap_key ) {\r\n+            global $wppmfunction,$wpdb;\r\n+            $user = get_user_by( 'id', $user_id );\r\n+            $user_cap_slug = $wppmfunction->wppm_user_role();\r\n+            foreach($user_cap_slug as $key=>$val){\r\n+                if($cap_key== $key){\r\n+                   $user->add_cap($key );\r\n+                }\r\n+            }\r\n+            $user->add_cap( $cap_key );\r\n+        }\r\n+    }\r\n+endif;\r\n+\r\n new WPPM_profile_update();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Ffrontend\u002Fshortcode.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Ffrontend\u002Fshortcode.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Ffrontend\u002Fshortcode.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Ffrontend\u002Fshortcode.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,258 +1,258 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-wp_enqueue_script('jquery');\n-wp_enqueue_script('jquery-ui-core');\n-wp_enqueue_script('jquery-ui-sortable');\n-wp_enqueue_script('jquery-ui-datepicker' );\n-wp_enqueue_editor();\n-\n-wp_enqueue_style('wppm-bootstrap-css');\n-wp_enqueue_style('wppm-jquery-ui');\n-wp_enqueue_style('wppm-public-css');\n-wp_enqueue_style('wppm-admin-css');\n-wp_enqueue_style('wppm-modal-css');\n-wp_enqueue_style('wppm-flatpickr-css');\n-wp_enqueue_style('wppm-select2-css');\n-wp_enqueue_style('wppm-gpopover-css');\n-wp_enqueue_style('wppm-dragula-css');\n-\n-wp_enqueue_script('wppm-admin');\n-wp_enqueue_script('wppm-public');\n-wp_enqueue_script('wppm-modal');\n-wp_enqueue_script('wppm-flatpickr-js');\n-wp_enqueue_script('wppm-select2-js');\n-wp_enqueue_script('wppm-gpopover-js');\n-wp_enqueue_script('wppm-dragula-js');\n-wp_enqueue_script('wppm-datatable-js');\n-wp_enqueue_script('wppm-datatable-css');\n-$settings = get_option(\"wppm-ap-modal\");\n-?>\n-\u003Cdiv class=\"wppm_bootstrap\">\n-  \u003Cdiv id=\"wppm_project_container\">\u003C\u002Fdiv>\n-  \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\n-    \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-  \u003C\u002Fdiv>\n-   \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\n-    \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-  \u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003C!-- Pop-up snippet start -->\n-\u003Cdiv id=\"wppm_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\n-\u003Cdiv id=\"wppm_popup_container\" style=\"display:none;\">\n-  \u003Cdiv class=\"wppm_bootstrap\">\n-    \u003Cdiv class=\"row\">\n-      \u003Cdiv id=\"wppm_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n-        \u003Cdiv id=\"wppm_popup_title\" class=\"row\" >\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_popup_footer\" class=\"row\">\n-          \u003Cbutton type=\"button\" class=\"btn wppm_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-          \u003Cbutton type=\"button\" class=\"btn wppm_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-    \u003C\u002Fdiv>\n-  \u003C\u002Fdiv>\n-\u003C\u002Fdiv>\n-\u003Cstyle>\n-  #wppm_popup_title{\n-  background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\n-  }\n-  #wppm_popup_title h3{\n-    color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\n-  }\n-  #wppm_popup_body{\n-    background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\n-  }\n-  #wppm_popup_body label{\n-    color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\n-  }\n-  #wppm_popup_body input{\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_body select{\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_body span {\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_body .select2-results__options {\n-    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-  }\n-  #wppm_popup_footer{\n-    background-color: \u003C?php echo esc_attr($settings['footer-bg-color'])?>!important;\n-  }\n-  .wppm_popup_action{\n-    background-color: \u003C?php echo esc_attr($settings['action-btn-bg-color'])?>!important;\n-    color:\u003C?php echo esc_attr( $settings['action-btn-text-color'])?>!important;\n-  }\n-\u003C\u002Fstyle>\n-\u003C!-- Pop-up snippet end -->\n-\u003C?php\n-add_action('wp_footer', 'wppm_page_inline_script', 999999999999999999);\n-do_action('wppm_after_shortcode_loaded');\n-if(!function_exists('wppm_page_inline_script')) {\n-  function wppm_page_inline_script() { ?>\n-    \u003Cscript type=\"text\u002Fjavascript\">\n-      jQuery( document ).ready( function( jQuery ) {\n-        \u003C?php if(is_user_logged_in()){\n-                 if((!((isset($_REQUEST['project-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))))){\n-                  ?>\n-                  wppm_get_project_list();\n-                \u003C?php } \n-                if((isset($_REQUEST['project-id'])) && (!empty(sanitize_text_field($_REQUEST['auth-code'] )))){ ?>\n-                      wppm_open_project(\u003C?php echo esc_js(sanitize_text_field(wp_unslash($_REQUEST['project-id']))); ?>);\n-                \u003C?php } \n-              } \n-              else{ ?>\n-                wppm_sign_in();\n-        \u003C?php }?>\n-      });\n-\n-      function wppm_get_project_list(page_no){\n-        jQuery('#wppm_project_container').show();\n-        jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-        var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);\n-        jQuery(document).trigger('wppm_project_list_dataform', [dataform]);\n-        dataform.append(\"page_no\", page_no);\n-        dataform.append(\"action\", 'wppm_get_project_list');\n-        dataform.append(\"is_frontend\", '1');\n-        jQuery.ajax( {\n-          url: wppm_admin.ajax_url,\n-          type: 'POST',\n-          data: dataform,\n-          processData: false,\n-          contentType: false\n-        }) \n-        .done(function( response ) {\n-          jQuery('#wppm_project_container').html(response);\n-        });\n-      }\n-\n-      function wppm_pl_reset_filter(){\n-        jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-        var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);\n-        dataform.append(\"action\", 'wppm_get_project_list');\n-        dataform.append(\"wppm_project_filter\", 'all');\n-        dataform.append(\"project_search\", '');\n-        dataform.append(\"sort_by\", 'project_name');\n-        dataform.append(\"order\", 'ASC');\n-        dataform.append(\"is_frontend\", '1');\n-        jQuery(document).trigger('wppm_reset_project_dataform', [dataform]);\n-        jQuery.ajax( {\n-          url: wppm_admin.ajax_url,\n-          type: 'POST',\n-          data: dataform,\n-          processData: false,\n-          contentType: false\n-        }) \n-        .done(function( response ) {\n-          jQuery('#wppm_project_container').html(response);\n-        });\n-      }\n-\n-      function wppm_add_new_project(){\n-        jQuery('#wppm_project_container').show();\n-        jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-        var dataform=new FormData(jQuery('#wppm_add_new_project')[0]);\n-        jQuery(document).trigger('wppm_add_new_project_dataform', [dataform]);\n-        dataform.append(\"action\", 'wppm_add_new_project');\n-        jQuery.ajax( {\n-          url: wppm_admin.ajax_url,\n-          type: 'POST',\n-          data: dataform,\n-          processData: false,\n-          contentType: false\n-        }) \n-        .done(function( response ) {\n-          jQuery('#wppm_project_container').html(response);\n-        }); \n-      }\n-\n-      function wppm_apply_project_filter(){\n-        wppm_project_filter = jQuery('#wppm_project_filter').find(\":selected\").val();\n-        jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-        var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);\n-        jQuery(document).trigger('wppm_apply_project_filter_dataform', [dataform]);\n-        dataform.append(\"action\", 'wppm_get_project_list');\n-        dataform.append(\"wppm_project_filter\", wppm_project_filter);\n-        dataform.append(\"is_frontend\", '1');\n-        jQuery.ajax( {\n-          url: wppm_admin.ajax_url,\n-          type: 'POST',\n-          data: dataform,\n-          processData: false,\n-          contentType: false\n-        }) \n-        .done(function( response ) {\n-          jQuery('#wppm_project_container').html(response);\n-        }); \n-      }\n-\n-      function wppm_project_search_filter(){\n-        var project_search = jQuery(\"#wppm_project_search_filter\").val() || '';\n-        jQuery('#wppm_project_container').show();\n-        jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-        var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);\n-        jQuery(document).trigger('wppm_project_search_filter_dataform', [dataform]);\n-        dataform.append(\"action\", 'wppm_get_project_list');\n-        dataform.append(\"project_search\", project_search);\n-        dataform.append(\"is_frontend\", '1');\n-        jQuery.ajax( {\n-          url: wppm_admin.ajax_url,\n-          type: 'POST',\n-          data: dataform,\n-          processData: false,\n-          contentType: false\n-        }) \n-        .done(function( response ) {\n-          jQuery('#wppm_project_container').html(response);\n-        }); \n-    }\n-\n-    function wppm_sort_up_project_list(sort_by,order){\n-      jQuery('#wppm_project_container').show();\n-      jQuery('#wppm_project_container').html(wppm_admin.loading_html);\n-      var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);\n-      jQuery(document).trigger('wppm_sort_up_project_list_dataform', [dataform]);\n-      dataform.append(\"action\", 'wppm_get_project_list');\n-      dataform.append(\"sort_by\", sort_by);\n-      dataform.append(\"order\", order);\n-      dataform.append(\"is_frontend\", '1');\n-      jQuery.ajax( {\n-        url: wppm_admin.ajax_url,\n-        type: 'POST',\n-        data: dataform,\n-        processData: false,\n-        contentType: false\n-      }) \n-      .done(function( response ) {\n-        jQuery('#wppm_project_container').html(response);\n-      });\n-    }\n-\n-    function wppm_get_project_tasks(id){\n-      wppm_modal_open('Tasks'); \n-      var dataform=new FormData(jQuery('#wppm_get_project_tasks_frm')[0]);\n-      jQuery(document).trigger('wppm_get_project_tasks_dataform', [dataform]);\n-      dataform.append(\"action\", 'wppm_get_project_tasks');\n-      dataform.append(\"id\",id);\n-      dataform.append(\"is_frontend\", '1');\n-      dataform.append(\"_ajax_nonce\", wppm_admin.nonce);\n-      jQuery.ajax( {\n-        url: wppm_admin.ajax_url,\n-        type: 'POST',\n-        data: dataform,\n-        processData: false,\n-        contentType: false\n-      }) \n-      .done(function( response_str ) {\n-        var response = JSON.parse(response_str);\n-        jQuery('#wppm_popup_body').html(response.body);\n-        jQuery('#wppm_popup_footer').html(response.footer);\n-      });\n-    }\n-    \u003C\u002Fscript>\n-  \u003C?php } \n-}  \n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+wp_enqueue_script('jquery');\r\n+wp_enqueue_script('jquery-ui-core');\r\n+wp_enqueue_script('jquery-ui-sortable');\r\n+wp_enqueue_script('jquery-ui-datepicker' );\r\n+wp_enqueue_editor();\r\n+\r\n+wp_enqueue_style('wppm-bootstrap-css');\r\n+wp_enqueue_style('wppm-jquery-ui');\r\n+wp_enqueue_style('wppm-public-css');\r\n+wp_enqueue_style('wppm-admin-css');\r\n+wp_enqueue_style('wppm-modal-css');\r\n+wp_enqueue_style('wppm-flatpickr-css');\r\n+wp_enqueue_style('wppm-select2-css');\r\n+wp_enqueue_style('wppm-gpopover-css');\r\n+wp_enqueue_style('wppm-dragula-css');\r\n+\r\n+wp_enqueue_script('wppm-admin');\r\n+wp_enqueue_script('wppm-public');\r\n+wp_enqueue_script('wppm-modal');\r\n+wp_enqueue_script('wppm-flatpickr-js');\r\n+wp_enqueue_script('wppm-select2-js');\r\n+wp_enqueue_script('wppm-gpopover-js');\r\n+wp_enqueue_script('wppm-dragula-js');\r\n+wp_enqueue_script('wppm-datatable-js');\r\n+wp_enqueue_script('wppm-datatable-css');\r\n+$settings = get_option(\"wppm-ap-modal\");\r\n+?>\r\n+\u003Cdiv class=\"wppm_bootstrap\">\r\n+  \u003Cdiv id=\"wppm_project_container\">\u003C\u002Fdiv>\r\n+  \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+    \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+  \u003C\u002Fdiv>\r\n+   \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+    \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003C!-- Pop-up snippet start -->\r\n+\u003Cdiv id=\"wppm_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\r\n+\u003Cdiv id=\"wppm_popup_container\" style=\"display:none;\">\r\n+  \u003Cdiv class=\"wppm_bootstrap\">\r\n+    \u003Cdiv class=\"row\">\r\n+      \u003Cdiv id=\"wppm_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\r\n+        \u003Cdiv id=\"wppm_popup_title\" class=\"row\" >\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_popup_footer\" class=\"row\">\r\n+          \u003Cbutton type=\"button\" class=\"btn wppm_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+          \u003Cbutton type=\"button\" class=\"btn wppm_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+    \u003C\u002Fdiv>\r\n+  \u003C\u002Fdiv>\r\n+\u003C\u002Fdiv>\r\n+\u003Cstyle>\r\n+  #wppm_popup_title{\r\n+  background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\r\n+  }\r\n+  #wppm_popup_title h3{\r\n+    color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body{\r\n+    background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\r\n+  }\r\n+  #wppm_popup_body label{\r\n+    color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\r\n+  }\r\n+  #wppm_popup_body input{\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body select{\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body span {\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_body .select2-results__options {\r\n+    color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+  }\r\n+  #wppm_popup_footer{\r\n+    background-color: \u003C?php echo esc_attr($settings['footer-bg-color'])?>!important;\r\n+  }\r\n+  .wppm_popup_action{\r\n+    background-color: \u003C?php echo esc_attr($settings['action-btn-bg-color'])?>!important;\r\n+    color:\u003C?php echo esc_attr( $settings['action-btn-text-color'])?>!important;\r\n+  }\r\n+\u003C\u002Fstyle>\r\n+\u003C!-- Pop-up snippet end -->\r\n+\u003C?php\r\n+add_action('wp_footer', 'wppm_page_inline_script', 999999999999999999);\r\n+do_action('wppm_after_shortcode_loaded');\r\n+if(!function_exists('wppm_page_inline_script')) {\r\n+  function wppm_page_inline_script() { ?>\r\n+    \u003Cscript type=\"text\u002Fjavascript\">\r\n+      jQuery( document ).ready( function( jQuery ) {\r\n+        \u003C?php if(is_user_logged_in()){\r\n+                 if((!((isset($_REQUEST['project-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))))){\r\n+                  ?>\r\n+                  wppm_get_project_list();\r\n+                \u003C?php } \r\n+                if((isset($_REQUEST['project-id'])) && (!empty(sanitize_text_field($_REQUEST['auth-code'] )))){ ?>\r\n+                      wppm_open_project(\u003C?php echo (intval(wp_unslash($_REQUEST['project-id']))); ?>);\r\n+                \u003C?php } \r\n+              } \r\n+              else{ ?>\r\n+                wppm_sign_in();\r\n+        \u003C?php }?>\r\n+      });\r\n+\r\n+      function wppm_get_project_list(page_no){\r\n+        jQuery('#wppm_project_container').show();\r\n+        jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+        var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);\r\n+        jQuery(document).trigger('wppm_project_list_dataform', [dataform]);\r\n+        dataform.append(\"page_no\", page_no);\r\n+        dataform.append(\"action\", 'wppm_get_project_list');\r\n+        dataform.append(\"is_frontend\", '1');\r\n+        jQuery.ajax( {\r\n+          url: wppm_admin.ajax_url,\r\n+          type: 'POST',\r\n+          data: dataform,\r\n+          processData: false,\r\n+          contentType: false\r\n+        }) \r\n+        .done(function( response ) {\r\n+          jQuery('#wppm_project_container').html(response);\r\n+        });\r\n+      }\r\n+\r\n+      function wppm_pl_reset_filter(){\r\n+        jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+        var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);\r\n+        dataform.append(\"action\", 'wppm_get_project_list');\r\n+        dataform.append(\"wppm_project_filter\", 'all');\r\n+        dataform.append(\"project_search\", '');\r\n+        dataform.append(\"sort_by\", 'project_name');\r\n+        dataform.append(\"order\", 'ASC');\r\n+        dataform.append(\"is_frontend\", '1');\r\n+        jQuery(document).trigger('wppm_reset_project_dataform', [dataform]);\r\n+        jQuery.ajax( {\r\n+          url: wppm_admin.ajax_url,\r\n+          type: 'POST',\r\n+          data: dataform,\r\n+          processData: false,\r\n+          contentType: false\r\n+        }) \r\n+        .done(function( response ) {\r\n+          jQuery('#wppm_project_container').html(response);\r\n+        });\r\n+      }\r\n+\r\n+      function wppm_add_new_project(){\r\n+        jQuery('#wppm_project_container').show();\r\n+        jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+        var dataform=new FormData(jQuery('#wppm_add_new_project')[0]);\r\n+        jQuery(document).trigger('wppm_add_new_project_dataform', [dataform]);\r\n+        dataform.append(\"action\", 'wppm_add_new_project');\r\n+        jQuery.ajax( {\r\n+          url: wppm_admin.ajax_url,\r\n+          type: 'POST',\r\n+          data: dataform,\r\n+          processData: false,\r\n+          contentType: false\r\n+        }) \r\n+        .done(function( response ) {\r\n+          jQuery('#wppm_project_container').html(response);\r\n+        }); \r\n+      }\r\n+\r\n+      function wppm_apply_project_filter(){\r\n+        wppm_project_filter = jQuery('#wppm_project_filter').find(\":selected\").val();\r\n+        jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+        var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);\r\n+        jQuery(document).trigger('wppm_apply_project_filter_dataform', [dataform]);\r\n+        dataform.append(\"action\", 'wppm_get_project_list');\r\n+        dataform.append(\"wppm_project_filter\", wppm_project_filter);\r\n+        dataform.append(\"is_frontend\", '1');\r\n+        jQuery.ajax( {\r\n+          url: wppm_admin.ajax_url,\r\n+          type: 'POST',\r\n+          data: dataform,\r\n+          processData: false,\r\n+          contentType: false\r\n+        }) \r\n+        .done(function( response ) {\r\n+          jQuery('#wppm_project_container').html(response);\r\n+        }); \r\n+      }\r\n+\r\n+      function wppm_project_search_filter(){\r\n+        var project_search = jQuery(\"#wppm_project_search_filter\").val() || '';\r\n+        jQuery('#wppm_project_container').show();\r\n+        jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+        var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);\r\n+        jQuery(document).trigger('wppm_project_search_filter_dataform', [dataform]);\r\n+        dataform.append(\"action\", 'wppm_get_project_list');\r\n+        dataform.append(\"project_search\", project_search);\r\n+        dataform.append(\"is_frontend\", '1');\r\n+        jQuery.ajax( {\r\n+          url: wppm_admin.ajax_url,\r\n+          type: 'POST',\r\n+          data: dataform,\r\n+          processData: false,\r\n+          contentType: false\r\n+        }) \r\n+        .done(function( response ) {\r\n+          jQuery('#wppm_project_container').html(response);\r\n+        }); \r\n+    }\r\n+\r\n+    function wppm_sort_up_project_list(sort_by,order){\r\n+      jQuery('#wppm_project_container').show();\r\n+      jQuery('#wppm_project_container').html(wppm_admin.loading_html);\r\n+      var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);\r\n+      jQuery(document).trigger('wppm_sort_up_project_list_dataform', [dataform]);\r\n+      dataform.append(\"action\", 'wppm_get_project_list');\r\n+      dataform.append(\"sort_by\", sort_by);\r\n+      dataform.append(\"order\", order);\r\n+      dataform.append(\"is_frontend\", '1');\r\n+      jQuery.ajax( {\r\n+        url: wppm_admin.ajax_url,\r\n+        type: 'POST',\r\n+        data: dataform,\r\n+        processData: false,\r\n+        contentType: false\r\n+      }) \r\n+      .done(function( response ) {\r\n+        jQuery('#wppm_project_container').html(response);\r\n+      });\r\n+    }\r\n+\r\n+    function wppm_get_project_tasks(id){\r\n+      wppm_modal_open('Tasks'); \r\n+      var dataform=new FormData(jQuery('#wppm_get_project_tasks_frm')[0]);\r\n+      jQuery(document).trigger('wppm_get_project_tasks_dataform', [dataform]);\r\n+      dataform.append(\"action\", 'wppm_get_project_tasks');\r\n+      dataform.append(\"id\",id);\r\n+      dataform.append(\"is_frontend\", '1');\r\n+      dataform.append(\"_ajax_nonce\", wppm_admin.nonce);\r\n+      jQuery.ajax( {\r\n+        url: wppm_admin.ajax_url,\r\n+        type: 'POST',\r\n+        data: dataform,\r\n+        processData: false,\r\n+        contentType: false\r\n+      }) \r\n+      .done(function( response_str ) {\r\n+        var response = JSON.parse(response_str);\r\n+        jQuery('#wppm_popup_body').html(response.body);\r\n+        jQuery('#wppm_popup_footer').html(response.footer);\r\n+      });\r\n+    }\r\n+    \u003C\u002Fscript>\r\n+  \u003C?php } \r\n+}  \r\n ?>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Ffrontend\u002Fwppm_public_projects_tasks.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Ffrontend\u002Fwppm_public_projects_tasks.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Ffrontend\u002Fwppm_public_projects_tasks.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Ffrontend\u002Fwppm_public_projects_tasks.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,394 +1,394 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-if ( ! class_exists( 'WPPM_Public_Projects_Tasks_Shortcode' ) ) :\n-  final class WPPM_Public_Projects_Tasks_Shortcode {\n-    \u002F\u002F constructor\n-    public function __construct() {\n-      global $wppmfunction;\n-      $this->wppm_display_tasks();\n-      add_action('wp_footer', array($this,'wppm_page_inline_script' ),999999999999999999);\n-    }\n-  \n-    public function wppm_display_tasks(){ \n-      global $wpdb, $wppmfunction;\n-      wp_enqueue_script('jquery');\n-      wp_enqueue_script('jquery-ui-core');\n-      wp_enqueue_script('jquery-ui-sortable');\n-      wp_enqueue_script('jquery-ui-datepicker' );\n-      wp_enqueue_editor();\n-      wp_enqueue_style('wppm-bootstrap-css');\n-      wp_enqueue_style('wppm-jquery-ui');\n-      wp_enqueue_style('wppm-public-css');\n-      wp_enqueue_style('wppm-admin-css');\n-      wp_enqueue_style('wppm-modal-css');\n-      wp_enqueue_style('wppm-flatpickr-css');\n-      wp_enqueue_style('wppm-select2-css');\n-      wp_enqueue_style('wppm-gpopover-css');\n-      wp_enqueue_style('wppm-dragula-css');\n-      wp_enqueue_script('wppm-admin');\n-      wp_enqueue_script('wppm-public');\n-      wp_enqueue_script('wppm-modal');\n-      wp_enqueue_script('wppm-flatpickr-js');\n-      wp_enqueue_script('wppm-select2-js');\n-      wp_enqueue_script('wppm-gpopover-js');\n-      wp_enqueue_script('wppm-dragula-js');\n-      $settings = get_option(\"wppm-ap-modal\");\n-      ?>\n-      \u003Cdiv class=\"wppm_bootstrap\">\n-        \u003Cdiv id=\"wppm_task_container\">\u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\n-          \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\n-          \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003C!-- Pop-up snippet start -->\n-      \u003Cdiv id=\"wppm_task_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\n-      \u003Cdiv id=\"wppm_task_popup_container\" style=\"display:none;\">\n-        \u003Cdiv class=\"wppm_bootstrap\">\n-          \u003Cdiv class=\"row\">\n-            \u003Cdiv id=\"wppm_task_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n-              \u003Cdiv id=\"wppm_task_popup_title\" class=\"row\" >\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\n-              \u003Cdiv id=\"wppm_task_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\n-              \u003Cdiv id=\"wppm_task_popup_footer\" class=\"row\">\n-                \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-                \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003Cstyle>\n-        #wppm_task_popup_title{\n-          background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\n-        }\n-        #wppm_task_popup_title h3{\n-          color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\n-        }\n-        #wppm_task_popup_body{\n-          background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\n-        }\n-        #wppm_task_popup_body label{\n-          color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\n-        }\n-        #wppm_task_popup_body input{\n-          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-        }\n-        #wppm_task_popup_body select{\n-          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-        }\n-        #wppm_task_popup_body span {\n-          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-        }\n-        #wppm_task_popup_body .select2-results__options {\n-          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-        }\n-      \u003C\u002Fstyle>\n-      \u003C!-- Pop-up snippet end -->\n-      \u003C?php\n-      do_action('wppm_after_task_shortcode_loaded');\n-    }\n-\n-    public function wppm_page_inline_script() { ?>\n-      \u003Cscript type=\"text\u002Fjavascript\">\n-        jQuery( document ).ready( function( jQuery ) {\n-          \u003C?php if(is_user_logged_in()){ \n-                  if(  (!((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))))){\n-                    if(get_option('wppm_default_task_list_view')==1){ ?>\n-                          \u002F\u002Fwppm_get_public_projects_task_list();\n-                          wppm_get_task_list();\n-                  \u003C?php } else{ \n-                    ?>    wppm_view_task_search_filter();\n-                  \u003C?php }\n-                  }\n-                  if((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))){ ?>\n-                          wppm_open_task(\u003C?php echo esc_js(sanitize_text_field(wp_unslash($_REQUEST['task-id']))); ?>);\n-                 \u003C?php } \n-                }\n-                else{ ?>\n-                  wppm_task_sign_in();\n-          \u003C?php } ?>\n-        });\n-\n-        function wppm_get_task_list(page_no){\n-          jQuery('#wppm_task_container').show();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-          jQuery(document).trigger('wppm_task_list_dataform', [dataform]);\n-          \u003C?php \u002F\u002Fecho do_action('wppm_task_list_dataform');?>\n-          dataform.append(\"page_no\", page_no);\n-          dataform.append(\"action\", 'wppm_get_task_list');\n-          dataform.append(\"public_projects\", '1');\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_add_new_task(proj_id){\n-          jQuery('#wppm_task_container').show();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-          jQuery(document).trigger('wppm_add_new_task_dataform', [dataform]);\n-          dataform.append(\"proj_id\", proj_id);\n-          dataform.append(\"action\", 'wppm_add_new_task');\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_apply_task_filter(){\n-          wppm_task_filter = jQuery('#wppm_task_filter').find(\":selected\").val();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-            jQuery(document).trigger('wppm_apply_task_filter_dataform', [dataform]);\n-            dataform.append(\"wppm_task_filter\", wppm_task_filter);\n-            dataform.append(\"action\", 'wppm_get_task_list');\n-            dataform.append(\"public_projects\", '1');\n-            \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                    dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-            \u003C?php } ?>\n-            jQuery.ajax( {\n-              url: wppm_admin.ajax_url,\n-              type: 'POST',\n-              data: dataform,\n-              processData: false,\n-              contentType: false\n-            }) \n-            .done(function( response ) {\n-              jQuery('#wppm_task_container').html(response);\n-            });\n-        }\n-        \n-        function wppm_tl_reset_filter(){\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-          dataform.append(\"action\", 'wppm_get_task_list');\n-          dataform.append(\"wppm_task_filter\", 'all');\n-          dataform.append(\"task_search\", '');\n-          dataform.append(\"sort_by\", 'task_name');\n-          dataform.append(\"order\", 'ASC');\n-          dataform.append(\"wppm_proj_filter\",0);\n-          dataform.append(\"public_projects\", '1');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery(document).trigger('wppm_tl_reset_filter_dataform', [dataform]);\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_task_search_filter(){\n-          var task_search = jQuery(\"#wppm_task_search_filter\").val();\n-          jQuery('#wppm_task_container').show();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-          jQuery(document).trigger('wppm_task_search_filter_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_get_task_list');\n-          dataform.append(\"public_projects\", '1');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          dataform.append(\"task_search\", task_search);\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_display_grid_view(){\n-          var task_search = jQuery(\"#wppm_view_task_search_filter\").val() || '';\n-          jQuery('#wppm_task_container').show();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\n-          jQuery(document).trigger('wppm_display_grid_view_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_get_task_list_card_view');\n-          dataform.append(\"task_search\", task_search);\n-          dataform.append(\"public_projects\", '1');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_sort_up_task_list(sort_by,order){\n-          jQuery('#wppm_task_container').show();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-          jQuery(document).trigger('wppm_sort_up_task_list_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_get_task_list');\n-          dataform.append(\"sort_by\", sort_by);\n-          dataform.append(\"order\", order);\n-          dataform.append(\"public_projects\", '1');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_view_task_search_filter(page_no){\n-          var task_search = jQuery(\"#wppm_view_task_search_filter\").val() || '';\n-          jQuery('#wppm_task_container').show();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\n-          jQuery(document).trigger('wppm_view_task_search_filter_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_get_task_list_card_view');\n-          dataform.append(\"task_search\", task_search);\n-          dataform.append(\"page_no\",page_no);\n-          dataform.append(\"public_projects\", '1');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_apply_task_filter_grid_view(){\n-          wppm_task_filter = jQuery('#wppm_task_filter').find(\":selected\").val();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\n-          jQuery(document).trigger('wppm_apply_task_filter_grid_view_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_view_project_tasks');\n-          dataform.append(\"wppm_task_filter\", wppm_task_filter);\n-          dataform.append(\"public_projects\", '1');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_tl_reset_grid_view_filter(){\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\n-          jQuery(document).trigger('wppm_tl_reset_grid_view_filter_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_view_project_tasks');\n-          dataform.append(\"task_search\", \"\");\n-          dataform.append(\"wppm_task_filter\", \"all\");\n-          dataform.append(\"sort_by\", \"task_name\");\n-          dataform.append(\"order\", \"ASC\");\n-          dataform.append(\"wppm_proj_filter\",\"0\");\n-          dataform.append(\"public_projects\", '1');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-        function wppm_tasks_by_select_project(){\n-          wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(\":selected\").val();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-          jQuery(document).trigger('wppm_change_proj_tl_filter_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_get_task_list');\n-          dataform.append(\"wppm_proj_filter\",wppm_proj_filter);\n-          dataform.append(\"public_projects\", '1');\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_tasks_by_select_project_grid_view(){\n-          wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(\":selected\").val();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\n-          jQuery(document).trigger('wppm_change_proj_grid_view_filter_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_view_project_tasks');\n-          dataform.append(\"wppm_proj_filter\",wppm_proj_filter);\n-          dataform.append(\"public_projects\", '1');\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-      \u003C\u002Fscript>\n-    \u003C?php } \n-  }\n-endif;\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+if ( ! class_exists( 'WPPM_Public_Projects_Tasks_Shortcode' ) ) :\r\n+  final class WPPM_Public_Projects_Tasks_Shortcode {\r\n+    \u002F\u002F constructor\r\n+    public function __construct() {\r\n+      global $wppmfunction;\r\n+      $this->wppm_display_tasks();\r\n+      add_action('wp_footer', array($this,'wppm_page_inline_script' ),999999999999999999);\r\n+    }\r\n+  \r\n+    public function wppm_display_tasks(){ \r\n+      global $wpdb, $wppmfunction;\r\n+      wp_enqueue_script('jquery');\r\n+      wp_enqueue_script('jquery-ui-core');\r\n+      wp_enqueue_script('jquery-ui-sortable');\r\n+      wp_enqueue_script('jquery-ui-datepicker' );\r\n+      wp_enqueue_editor();\r\n+      wp_enqueue_style('wppm-bootstrap-css');\r\n+      wp_enqueue_style('wppm-jquery-ui');\r\n+      wp_enqueue_style('wppm-public-css');\r\n+      wp_enqueue_style('wppm-admin-css');\r\n+      wp_enqueue_style('wppm-modal-css');\r\n+      wp_enqueue_style('wppm-flatpickr-css');\r\n+      wp_enqueue_style('wppm-select2-css');\r\n+      wp_enqueue_style('wppm-gpopover-css');\r\n+      wp_enqueue_style('wppm-dragula-css');\r\n+      wp_enqueue_script('wppm-admin');\r\n+      wp_enqueue_script('wppm-public');\r\n+      wp_enqueue_script('wppm-modal');\r\n+      wp_enqueue_script('wppm-flatpickr-js');\r\n+      wp_enqueue_script('wppm-select2-js');\r\n+      wp_enqueue_script('wppm-gpopover-js');\r\n+      wp_enqueue_script('wppm-dragula-js');\r\n+      $settings = get_option(\"wppm-ap-modal\");\r\n+      ?>\r\n+      \u003Cdiv class=\"wppm_bootstrap\">\r\n+        \u003Cdiv id=\"wppm_task_container\">\u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+          \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+          \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003C!-- Pop-up snippet start -->\r\n+      \u003Cdiv id=\"wppm_task_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\r\n+      \u003Cdiv id=\"wppm_task_popup_container\" style=\"display:none;\">\r\n+        \u003Cdiv class=\"wppm_bootstrap\">\r\n+          \u003Cdiv class=\"row\">\r\n+            \u003Cdiv id=\"wppm_task_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\r\n+              \u003Cdiv id=\"wppm_task_popup_title\" class=\"row\" >\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\r\n+              \u003Cdiv id=\"wppm_task_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\r\n+              \u003Cdiv id=\"wppm_task_popup_footer\" class=\"row\">\r\n+                \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+                \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cstyle>\r\n+        #wppm_task_popup_title{\r\n+          background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_title h3{\r\n+          color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body{\r\n+          background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\r\n+        }\r\n+        #wppm_task_popup_body label{\r\n+          color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body input{\r\n+          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body select{\r\n+          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body span {\r\n+          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body .select2-results__options {\r\n+          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+        }\r\n+      \u003C\u002Fstyle>\r\n+      \u003C!-- Pop-up snippet end -->\r\n+      \u003C?php\r\n+      do_action('wppm_after_task_shortcode_loaded');\r\n+    }\r\n+\r\n+    public function wppm_page_inline_script() { ?>\r\n+      \u003Cscript type=\"text\u002Fjavascript\">\r\n+        jQuery( document ).ready( function( jQuery ) {\r\n+          \u003C?php if(is_user_logged_in()){ \r\n+                  if(  (!((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))))){\r\n+                    if(get_option('wppm_default_task_list_view')==1){ ?>\r\n+                          \u002F\u002Fwppm_get_public_projects_task_list();\r\n+                          wppm_get_task_list();\r\n+                  \u003C?php } else{ \r\n+                    ?>    wppm_view_task_search_filter();\r\n+                  \u003C?php }\r\n+                  }\r\n+                  if((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))){ ?>\r\n+                          wppm_open_task(\u003C?php echo (intval(wp_unslash($_REQUEST['task-id']))); ?>);\r\n+                 \u003C?php } \r\n+                }\r\n+                else{ ?>\r\n+                  wppm_task_sign_in();\r\n+          \u003C?php } ?>\r\n+        });\r\n+\r\n+        function wppm_get_task_list(page_no){\r\n+          jQuery('#wppm_task_container').show();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+          jQuery(document).trigger('wppm_task_list_dataform', [dataform]);\r\n+          \u003C?php \u002F\u002Fecho do_action('wppm_task_list_dataform');?>\r\n+          dataform.append(\"page_no\", page_no);\r\n+          dataform.append(\"action\", 'wppm_get_task_list');\r\n+          dataform.append(\"public_projects\", '1');\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_add_new_task(proj_id){\r\n+          jQuery('#wppm_task_container').show();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+          jQuery(document).trigger('wppm_add_new_task_dataform', [dataform]);\r\n+          dataform.append(\"proj_id\", proj_id);\r\n+          dataform.append(\"action\", 'wppm_add_new_task');\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_apply_task_filter(){\r\n+          wppm_task_filter = jQuery('#wppm_task_filter').find(\":selected\").val();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+            jQuery(document).trigger('wppm_apply_task_filter_dataform', [dataform]);\r\n+            dataform.append(\"wppm_task_filter\", wppm_task_filter);\r\n+            dataform.append(\"action\", 'wppm_get_task_list');\r\n+            dataform.append(\"public_projects\", '1');\r\n+            \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                    dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+            \u003C?php } ?>\r\n+            jQuery.ajax( {\r\n+              url: wppm_admin.ajax_url,\r\n+              type: 'POST',\r\n+              data: dataform,\r\n+              processData: false,\r\n+              contentType: false\r\n+            }) \r\n+            .done(function( response ) {\r\n+              jQuery('#wppm_task_container').html(response);\r\n+            });\r\n+        }\r\n+        \r\n+        function wppm_tl_reset_filter(){\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+          dataform.append(\"action\", 'wppm_get_task_list');\r\n+          dataform.append(\"wppm_task_filter\", 'all');\r\n+          dataform.append(\"task_search\", '');\r\n+          dataform.append(\"sort_by\", 'task_name');\r\n+          dataform.append(\"order\", 'ASC');\r\n+          dataform.append(\"wppm_proj_filter\",0);\r\n+          dataform.append(\"public_projects\", '1');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery(document).trigger('wppm_tl_reset_filter_dataform', [dataform]);\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_task_search_filter(){\r\n+          var task_search = jQuery(\"#wppm_task_search_filter\").val();\r\n+          jQuery('#wppm_task_container').show();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+          jQuery(document).trigger('wppm_task_search_filter_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_get_task_list');\r\n+          dataform.append(\"public_projects\", '1');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          dataform.append(\"task_search\", task_search);\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_display_grid_view(){\r\n+          var task_search = jQuery(\"#wppm_view_task_search_filter\").val() || '';\r\n+          jQuery('#wppm_task_container').show();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\r\n+          jQuery(document).trigger('wppm_display_grid_view_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_get_task_list_card_view');\r\n+          dataform.append(\"task_search\", task_search);\r\n+          dataform.append(\"public_projects\", '1');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_sort_up_task_list(sort_by,order){\r\n+          jQuery('#wppm_task_container').show();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+          jQuery(document).trigger('wppm_sort_up_task_list_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_get_task_list');\r\n+          dataform.append(\"sort_by\", sort_by);\r\n+          dataform.append(\"order\", order);\r\n+          dataform.append(\"public_projects\", '1');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_view_task_search_filter(page_no){\r\n+          var task_search = jQuery(\"#wppm_view_task_search_filter\").val() || '';\r\n+          jQuery('#wppm_task_container').show();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\r\n+          jQuery(document).trigger('wppm_view_task_search_filter_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_get_task_list_card_view');\r\n+          dataform.append(\"task_search\", task_search);\r\n+          dataform.append(\"page_no\",page_no);\r\n+          dataform.append(\"public_projects\", '1');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_apply_task_filter_grid_view(){\r\n+          wppm_task_filter = jQuery('#wppm_task_filter').find(\":selected\").val();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\r\n+          jQuery(document).trigger('wppm_apply_task_filter_grid_view_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_view_project_tasks');\r\n+          dataform.append(\"wppm_task_filter\", wppm_task_filter);\r\n+          dataform.append(\"public_projects\", '1');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_tl_reset_grid_view_filter(){\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\r\n+          jQuery(document).trigger('wppm_tl_reset_grid_view_filter_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_view_project_tasks');\r\n+          dataform.append(\"task_search\", \"\");\r\n+          dataform.append(\"wppm_task_filter\", \"all\");\r\n+          dataform.append(\"sort_by\", \"task_name\");\r\n+          dataform.append(\"order\", \"ASC\");\r\n+          dataform.append(\"wppm_proj_filter\",\"0\");\r\n+          dataform.append(\"public_projects\", '1');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+        function wppm_tasks_by_select_project(){\r\n+          wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(\":selected\").val();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+          jQuery(document).trigger('wppm_change_proj_tl_filter_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_get_task_list');\r\n+          dataform.append(\"wppm_proj_filter\",wppm_proj_filter);\r\n+          dataform.append(\"public_projects\", '1');\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_tasks_by_select_project_grid_view(){\r\n+          wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(\":selected\").val();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\r\n+          jQuery(document).trigger('wppm_change_proj_grid_view_filter_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_view_project_tasks');\r\n+          dataform.append(\"wppm_proj_filter\",wppm_proj_filter);\r\n+          dataform.append(\"public_projects\", '1');\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+      \u003C\u002Fscript>\r\n+    \u003C?php } \r\n+  }\r\n+endif;\r\n $GLOBALS['wppmpublicprojectstaskshortcode'] =  new WPPM_Public_Projects_Tasks_Shortcode();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Ffrontend\u002Fwppm_set_user_login.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Ffrontend\u002Fwppm_set_user_login.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Ffrontend\u002Fwppm_set_user_login.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Ffrontend\u002Fwppm_set_user_login.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,34 +1,34 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\u002F\u002F Check nonce\n-if( !isset($_POST['nonce']) ||  ! wp_verify_nonce(sanitize_text_field( wp_unslash( $_POST['nonce'] ) )) ){\n-    die(esc_html__('Cheating huh?', 'taskbuilder'));\n-}\n-$username = isset( $_POST['username'] ) ? sanitize_text_field( wp_unslash( $_POST['username'] ) ) : '';\n-\n-if ( empty( $username ) ) {\n-    wp_send_json_error( array( 'message' => esc_html__( 'Username required.', 'taskbuilder' ) ) );\n-}\n-\n-$password = isset($_POST['password']) ? wp_unslash($_POST['password']) : '';\n-if (!$password) {\n-    wp_send_json_error( array( 'message' => esc_html__( 'Password required.', 'taskbuilder' ) ) );\n-}\n-$remember = isset($_POST['remember']) ? true : false;\n-$creds = array(\n-  'user_login'    => $username,\n-  'user_password' => $password,\n-  'remember'      => $remember,\n-);\n-$user = wp_signon( $creds, false );\n-$response = array();\n-if ( is_wp_error( $user ) ) {\n-  $response['error'] = '1';\n-  $response['message'] = $user->get_error_message();\n-} else {\n-  $response['error'] = '0';\n-  $response['message'] = esc_html__('Success!','taskbuilder');\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\u002F\u002F Check nonce\r\n+if( !isset($_POST['nonce']) ||  ! wp_verify_nonce(sanitize_text_field( wp_unslash( $_POST['nonce'] ) )) ){\r\n+    die(esc_html__('Cheating huh?', 'taskbuilder'));\r\n+}\r\n+$username = isset( $_POST['username'] ) ? sanitize_text_field( wp_unslash( $_POST['username'] ) ) : '';\r\n+\r\n+if ( empty( $username ) ) {\r\n+    wp_send_json_error( array( 'message' => esc_html__( 'Username required.', 'taskbuilder' ) ) );\r\n+}\r\n+\r\n+$password = isset($_POST['password']) ? wp_unslash($_POST['password']) : '';\r\n+if (!$password) {\r\n+    wp_send_json_error( array( 'message' => esc_html__( 'Password required.', 'taskbuilder' ) ) );\r\n+}\r\n+$remember = isset($_POST['remember']) ? true : false;\r\n+$creds = array(\r\n+  'user_login'    => $username,\r\n+  'user_password' => $password,\r\n+  'remember'      => $remember,\r\n+);\r\n+$user = wp_signon( $creds, false );\r\n+$response = array();\r\n+if ( is_wp_error( $user ) ) {\r\n+  $response['error'] = '1';\r\n+  $response['message'] = $user->get_error_message();\r\n+} else {\r\n+  $response['error'] = '0';\r\n+  $response['message'] = esc_html__('Success!','taskbuilder');\r\n+}\r\n echo wp_json_encode( $response );\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Ffrontend\u002Fwppm_sign_in.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Ffrontend\u002Fwppm_sign_in.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Ffrontend\u002Fwppm_sign_in.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Ffrontend\u002Fwppm_sign_in.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,30 +1,30 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-} \n-$username = '';\n-if ( isset($_POST['username']) ) {\n-    $username = sanitize_text_field( wp_unslash( $_POST['username'] ) );\n-}\n-?>\n-\u003Cdiv class=\"col-sm-12\" style=\"margin-bottom:20px;\">\n-\t\u003C?php\n-\tdo_action('wppm_before_signin_module');\n-\t?>\n-\t\u003Cspan class=\"wppm-form-signin-heading\">\u003C?php echo esc_html_e('Please sign in','taskbuilder')?>\u003C\u002Fspan>\t\t\n-\t\u003Cform id=\"frm_wppm_sign_in\" action=\"javascript:wppm_sign_in_frm();\" method=\"post\" style=\"margin-bottom:5px;\">\n-\t\t\u003Cp id=\"wppm_message_login\" class=\"bg-success\" style=\"display:none;\">\u003C\u002Fp>\n-\t\t\u003Clabel class=\"sr-only\">\u003C?php echo esc_html_e('Username or email','taskbuilder')?>\u003C\u002Flabel>\n-\t\t\u003Cinput id=\"wppm-inputEmail\" name=\"username\" class=\"form-control\" placeholder=\"\u003C?php echo esc_attr__('Username or email','taskbuilder')?>\" required=\"\" autofocus=\"\" autocomplete=\"off\" type=\"text\" value=\"\u003C?php echo esc_attr( $username ); ?>\">\n-\t\t\u003Clabel for=\"wppm-inputPassword\" class=\"sr-only\">\u003C?php echo esc_html_e('Password','taskbuilder')?>\u003C\u002Flabel>\n-\t\t\u003Cinput id=\"wppm-inputPassword\" name=\"password\" class=\"form-control\" placeholder=\"\u003C?php echo esc_attr__('Password','taskbuilder')?>\" required=\"\" autocomplete=\"off\" type=\"password\">\n-\t\t\u003Cdiv class=\"checkbox\">\n-\t\t\t\u003Clabel>\n-\t\t\t\t\u003Cinput name=\"remember\" value=\"remember-me\" type=\"checkbox\">\u003Cspan id=\"wppm_remember\">\u003C?php echo esc_html_e('Remember me','taskbuilder')?>\u003C\u002Fspan>\n-\t\t\t\u003C\u002Flabel>\n-\t\t\u003C\u002Fdiv>\n-\t\t\u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_user_login\" \u002F>\n-\t\t\u003Cinput type=\"hidden\" name=\"nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce())?>\" \u002F>\n-\t\t\u003Cbutton id=\"wppm_sign_in_btn\" class=\"btn btn-lg btn-block\" type=\"submit\">\u003C?php echo esc_html_e('Sign In','taskbuilder')?>\u003C\u002Fbutton>\n-\t\u003C\u002Fform>\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+} \r\n+$username = '';\r\n+if ( isset($_POST['username']) ) {\r\n+    $username = sanitize_text_field( wp_unslash( $_POST['username'] ) );\r\n+}\r\n+?>\r\n+\u003Cdiv class=\"col-sm-12\" style=\"margin-bottom:20px;\">\r\n+\t\u003C?php\r\n+\tdo_action('wppm_before_signin_module');\r\n+\t?>\r\n+\t\u003Cspan class=\"wppm-form-signin-heading\">\u003C?php echo esc_html_e('Please sign in','taskbuilder')?>\u003C\u002Fspan>\t\t\r\n+\t\u003Cform id=\"frm_wppm_sign_in\" action=\"javascript:wppm_sign_in_frm();\" method=\"post\" style=\"margin-bottom:5px;\">\r\n+\t\t\u003Cp id=\"wppm_message_login\" class=\"bg-success\" style=\"display:none;\">\u003C\u002Fp>\r\n+\t\t\u003Clabel class=\"sr-only\">\u003C?php echo esc_html_e('Username or email','taskbuilder')?>\u003C\u002Flabel>\r\n+\t\t\u003Cinput id=\"wppm-inputEmail\" name=\"username\" class=\"form-control\" placeholder=\"\u003C?php echo esc_attr__('Username or email','taskbuilder')?>\" required=\"\" autofocus=\"\" autocomplete=\"off\" type=\"text\" value=\"\u003C?php echo esc_attr( $username ); ?>\">\r\n+\t\t\u003Clabel for=\"wppm-inputPassword\" class=\"sr-only\">\u003C?php echo esc_html_e('Password','taskbuilder')?>\u003C\u002Flabel>\r\n+\t\t\u003Cinput id=\"wppm-inputPassword\" name=\"password\" class=\"form-control\" placeholder=\"\u003C?php echo esc_attr__('Password','taskbuilder')?>\" required=\"\" autocomplete=\"off\" type=\"password\">\r\n+\t\t\u003Cdiv class=\"checkbox\">\r\n+\t\t\t\u003Clabel>\r\n+\t\t\t\t\u003Cinput name=\"remember\" value=\"remember-me\" type=\"checkbox\">\u003Cspan id=\"wppm_remember\">\u003C?php echo esc_html_e('Remember me','taskbuilder')?>\u003C\u002Fspan>\r\n+\t\t\t\u003C\u002Flabel>\r\n+\t\t\u003C\u002Fdiv>\r\n+\t\t\u003Cinput type=\"hidden\" name=\"action\" value=\"wppm_set_user_login\" \u002F>\r\n+\t\t\u003Cinput type=\"hidden\" name=\"nonce\" value=\"\u003C?php echo esc_attr(wp_create_nonce())?>\" \u002F>\r\n+\t\t\u003Cbutton id=\"wppm_sign_in_btn\" class=\"btn btn-lg btn-block\" type=\"submit\">\u003C?php echo esc_html_e('Sign In','taskbuilder')?>\u003C\u002Fbutton>\r\n+\t\u003C\u002Fform>\r\n \u003C\u002Fdiv>\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Ffrontend\u002Fwppm_tasks_shortcode.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Ffrontend\u002Fwppm_tasks_shortcode.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Ffrontend\u002Fwppm_tasks_shortcode.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Ffrontend\u002Fwppm_tasks_shortcode.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,412 +1,412 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-\n-if ( ! class_exists( 'WPPM_Tasks_Shortcode' ) ) :\n-  final class WPPM_Tasks_Shortcode {\n-    public $shortcode_attr ;  \n-    \u002F\u002F constructor\n-    public function __construct($attr) {\n-      global $wppmfunction;\n-      $this->shortcode_attr = !empty($attr)? $wppmfunction->sanitize_array($attr):array();  \n-      $shortcode_attr =  $this->shortcode_attr;\n-      $this->wppm_display_tasks();\n-      add_action('wp_footer', array($this,'wppm_page_inline_script' ),999999999999999999);\n-    }\n-  \n-    public function wppm_display_tasks(){ \n-      global $wpdb, $wppmfunction;\n-      wp_enqueue_script('jquery');\n-      wp_enqueue_script('jquery-ui-core');\n-      wp_enqueue_script('jquery-ui-sortable');\n-      wp_enqueue_script('jquery-ui-datepicker' );\n-      wp_enqueue_editor();\n-      wp_enqueue_style('wppm-bootstrap-css');\n-      wp_enqueue_style('wppm-jquery-ui');\n-      wp_enqueue_style('wppm-public-css');\n-      wp_enqueue_style('wppm-admin-css');\n-      wp_enqueue_style('wppm-modal-css');\n-      wp_enqueue_style('wppm-flatpickr-css');\n-      wp_enqueue_style('wppm-select2-css');\n-      wp_enqueue_style('wppm-gpopover-css');\n-      wp_enqueue_style('wppm-dragula-css');\n-      wp_enqueue_script('wppm-admin');\n-      wp_enqueue_script('wppm-public');\n-      wp_enqueue_script('wppm-modal');\n-      wp_enqueue_script('wppm-flatpickr-js');\n-      wp_enqueue_script('wppm-select2-js');\n-      wp_enqueue_script('wppm-gpopover-js');\n-      wp_enqueue_script('wppm-dragula-js');\n-      $settings = get_option(\"wppm-ap-modal\");\n-      ?>\n-      \u003Cdiv class=\"wppm_bootstrap\">\n-        \u003Cdiv id=\"wppm_task_container\">\u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\n-          \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-        \u003C\u002Fdiv>\n-        \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\n-          \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003C!-- Pop-up snippet start -->\n-      \u003Cdiv id=\"wppm_task_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\n-      \u003Cdiv id=\"wppm_task_popup_container\" style=\"display:none;\">\n-        \u003Cdiv class=\"wppm_bootstrap\">\n-          \u003Cdiv class=\"row\">\n-            \u003Cdiv id=\"wppm_task_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n-              \u003Cdiv id=\"wppm_task_popup_title\" class=\"row\" >\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\n-              \u003Cdiv id=\"wppm_task_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\n-              \u003Cdiv id=\"wppm_task_popup_footer\" class=\"row\">\n-                \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\n-                \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\n-              \u003C\u002Fdiv>\n-            \u003C\u002Fdiv>\n-          \u003C\u002Fdiv>\n-        \u003C\u002Fdiv>\n-      \u003C\u002Fdiv>\n-      \u003Cstyle>\n-        #wppm_task_popup_title{\n-          background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\n-        }\n-        #wppm_task_popup_title h3{\n-          color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\n-        }\n-        #wppm_task_popup_body{\n-          background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\n-        }\n-        #wppm_task_popup_body label{\n-          color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\n-        }\n-        #wppm_task_popup_body input{\n-          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-        }\n-        #wppm_task_popup_body select{\n-          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-        }\n-        #wppm_task_popup_body span {\n-          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-        }\n-        #wppm_task_popup_body .select2-results__options {\n-          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\n-        }\n-      \u003C\u002Fstyle>\n-      \u003C!-- Pop-up snippet end -->\n-      \u003C?php\n-      do_action('wppm_after_task_shortcode_loaded');\n-    }\n-\n-    public function wppm_page_inline_script() { ?>\n-      \u003Cscript type=\"text\u002Fjavascript\">\n-        jQuery( document ).ready( function( jQuery ) {\n-          \u003C?php if(is_user_logged_in()){ \n-                  if(  (!((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))))){\n-                    if(get_option('wppm_default_task_list_view')==1){ ?>\n-                          wppm_get_task_list();\n-                  \u003C?php } else{ \n-                    ?>    wppm_view_task_search_filter();\n-                  \u003C?php }\n-                  }\n-                  if((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))){ ?>\n-                        wppm_open_task(\u003C?php echo esc_js(sanitize_text_field(wp_unslash($_REQUEST['task-id']))); ?>);\n-                 \u003C?php } \n-                }\n-                else{ ?>\n-                  wppm_task_sign_in();\n-          \u003C?php } ?>\n-        });\n-\n-        function wppm_get_task_list(page_no){\n-          jQuery('#wppm_task_container').show();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-          jQuery(document).trigger('wppm_task_list_dataform', [dataform]);\n-          \u003C?php \u002F\u002Fdo_action('wppm_task_list_dataform');?>\n-          dataform.append(\"page_no\", page_no);\n-          dataform.append(\"action\", 'wppm_get_task_list');\n-          dataform.append(\"is_frontend\", '1');\n-          dataform.append(\"page\",'wppm-tasks');\n-          \u003C?php \n-          if(!empty($this->shortcode_attr['project'])){ \n-                ?>\n-                dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_add_new_task(proj_id){\n-          jQuery('#wppm_task_container').show();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-          jQuery(document).trigger('wppm_add_new_task_dataform', [dataform]);\n-          dataform.append(\"proj_id\", proj_id);\n-          dataform.append(\"action\", 'wppm_add_new_task');\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_apply_task_filter(){\n-          wppm_task_filter = jQuery('#wppm_task_filter').find(\":selected\").val();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-           jQuery(document).trigger('wppm_apply_task_filter_dataform', [dataform]);\n-            dataform.append(\"wppm_task_filter\", wppm_task_filter);\n-            dataform.append(\"is_frontend\", '1');\n-            dataform.append(\"action\", 'wppm_get_task_list');\n-            dataform.append(\"page\",'wppm-tasks');\n-            \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                    dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-            \u003C?php } ?>\n-            jQuery.ajax( {\n-              url: wppm_admin.ajax_url,\n-              type: 'POST',\n-              data: dataform,\n-              processData: false,\n-              contentType: false\n-            }) \n-            .done(function( response ) {\n-              jQuery('#wppm_task_container').html(response);\n-            });\n-        }\n-        \n-        function wppm_tl_reset_filter(){\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-          dataform.append(\"action\", 'wppm_get_task_list');\n-          dataform.append(\"wppm_task_filter\", 'all');\n-          dataform.append(\"task_search\", '');\n-          dataform.append(\"sort_by\", 'task_name');\n-          dataform.append(\"order\", 'ASC');\n-          dataform.append(\"wppm_proj_filter\",0);\n-          dataform.append(\"is_frontend\", '1');\n-          dataform.append(\"page\",'wppm-tasks');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery(document).trigger('wppm_tl_reset_filter_dataform', [dataform]);\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_task_search_filter(){\n-          var task_search = jQuery(\"#wppm_task_search_filter\").val();\n-          jQuery('#wppm_task_container').show();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-          jQuery(document).trigger('wppm_task_search_filter_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_get_task_list');\n-          dataform.append(\"is_frontend\", '1');\n-          dataform.append(\"page\",'wppm-tasks');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          dataform.append(\"task_search\", task_search);\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_display_grid_view(){\n-          var task_search = jQuery(\"#wppm_view_task_search_filter\").val() || '';\n-          jQuery('#wppm_task_container').show();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\n-          jQuery(document).trigger('wppm_display_grid_view_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_get_task_list_card_view');\n-          dataform.append(\"task_search\", task_search);\n-          dataform.append(\"is_frontend\", '1');\n-          dataform.append(\"page\",'wppm-tasks');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_sort_up_task_list(sort_by,order){\n-          jQuery('#wppm_task_container').show();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-          dataform.append(\"action\", 'wppm_get_task_list');\n-          dataform.append(\"sort_by\", sort_by);\n-          dataform.append(\"order\", order);\n-          dataform.append(\"is_frontend\", '1');\n-          jQuery(document).trigger('wppm_sort_up_task_list_dataform', [dataform]);\n-          dataform.append(\"page\",'wppm-tasks');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_view_task_search_filter(page_no){\n-          var task_search = jQuery(\"#wppm_view_task_search_filter\").val() || '';\n-          jQuery('#wppm_task_container').show();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\n-          jQuery(document).trigger('wppm_view_task_search_filter_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_get_task_list_card_view');\n-          dataform.append(\"task_search\", task_search);\n-          dataform.append(\"page_no\",page_no);\n-          dataform.append(\"is_frontend\", '1');\n-          dataform.append(\"page\",'wppm-tasks');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_apply_task_filter_grid_view(){\n-          wppm_task_filter = jQuery('#wppm_task_filter').find(\":selected\").val();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\n-          jQuery(document).trigger('wppm_apply_task_filter_grid_view_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_view_project_tasks');\n-          dataform.append(\"wppm_task_filter\", wppm_task_filter);\n-          dataform.append(\"is_frontend\", '1');\n-          dataform.append(\"page\",'wppm-tasks');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_tl_reset_grid_view_filter(){\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\n-          jQuery(document).trigger('wppm_tl_reset_grid_view_filter_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_view_project_tasks');\n-          dataform.append(\"task_search\", \"\");\n-          dataform.append(\"wppm_task_filter\", \"all\");\n-          dataform.append(\"sort_by\", \"task_name\");\n-          dataform.append(\"order\", \"ASC\");\n-          dataform.append(\"wppm_proj_filter\",\"0\");\n-          dataform.append(\"is_frontend\", '1');\n-          dataform.append(\"page\",'wppm-tasks');\n-          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\n-                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\n-          \u003C?php } ?>\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-        function wppm_tasks_by_select_project(){\n-          wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(\":selected\").val();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\n-          jQuery(document).trigger('wppm_change_proj_tl_filter_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_get_task_list');\n-          dataform.append(\"wppm_proj_filter\",wppm_proj_filter);\n-          dataform.append(\"is_frontend\", '1');\n-          dataform.append(\"page\",'wppm-tasks');\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-\n-        function wppm_tasks_by_select_project_grid_view(){\n-          wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(\":selected\").val();\n-          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\n-          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\n-          jQuery(document).trigger('wppm_change_proj_grid_view_filter_dataform', [dataform]);\n-          dataform.append(\"action\", 'wppm_view_project_tasks');\n-          dataform.append(\"wppm_proj_filter\",wppm_proj_filter);\n-          dataform.append(\"is_frontend\", '1');\n-          dataform.append(\"page\",'wppm-tasks');\n-          jQuery.ajax( {\n-            url: wppm_admin.ajax_url,\n-            type: 'POST',\n-            data: dataform,\n-            processData: false,\n-            contentType: false\n-          }) \n-          .done(function( response ) {\n-            jQuery('#wppm_task_container').html(response);\n-          });\n-        }\n-      \u003C\u002Fscript>\n-    \u003C?php } \n-  }\n-endif;\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+if ( ! class_exists( 'WPPM_Tasks_Shortcode' ) ) :\r\n+  final class WPPM_Tasks_Shortcode {\r\n+    public $shortcode_attr ;  \r\n+    \u002F\u002F constructor\r\n+    public function __construct($attr) {\r\n+      global $wppmfunction;\r\n+      $this->shortcode_attr = !empty($attr)? $wppmfunction->sanitize_array($attr):array();  \r\n+      $shortcode_attr =  $this->shortcode_attr;\r\n+      $this->wppm_display_tasks();\r\n+      add_action('wp_footer', array($this,'wppm_page_inline_script' ),999999999999999999);\r\n+    }\r\n+  \r\n+    public function wppm_display_tasks(){ \r\n+      global $wpdb, $wppmfunction;\r\n+      wp_enqueue_script('jquery');\r\n+      wp_enqueue_script('jquery-ui-core');\r\n+      wp_enqueue_script('jquery-ui-sortable');\r\n+      wp_enqueue_script('jquery-ui-datepicker' );\r\n+      wp_enqueue_editor();\r\n+      wp_enqueue_style('wppm-bootstrap-css');\r\n+      wp_enqueue_style('wppm-jquery-ui');\r\n+      wp_enqueue_style('wppm-public-css');\r\n+      wp_enqueue_style('wppm-admin-css');\r\n+      wp_enqueue_style('wppm-modal-css');\r\n+      wp_enqueue_style('wppm-flatpickr-css');\r\n+      wp_enqueue_style('wppm-select2-css');\r\n+      wp_enqueue_style('wppm-gpopover-css');\r\n+      wp_enqueue_style('wppm-dragula-css');\r\n+      wp_enqueue_script('wppm-admin');\r\n+      wp_enqueue_script('wppm-public');\r\n+      wp_enqueue_script('wppm-modal');\r\n+      wp_enqueue_script('wppm-flatpickr-js');\r\n+      wp_enqueue_script('wppm-select2-js');\r\n+      wp_enqueue_script('wppm-gpopover-js');\r\n+      wp_enqueue_script('wppm-dragula-js');\r\n+      $settings = get_option(\"wppm-ap-modal\");\r\n+      ?>\r\n+      \u003Cdiv class=\"wppm_bootstrap\">\r\n+        \u003Cdiv id=\"wppm_task_container\">\u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_alert_success\" class=\"alert alert-success wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+          \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fsuccess.svg'); ?>\" alt=\"success\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+        \u003C\u002Fdiv>\r\n+        \u003Cdiv id=\"wppm_alert_error\" class=\"alert alert-danger wppm_alert\" style=\"display:none;\" role=\"alert\">\r\n+          \u003Cimg src=\"\u003C?php echo esc_url( WPPM_PLUGIN_URL . 'asset\u002Fimages\u002Fwarning-triangle.svg'); ?>\" alt=\"warning-triangle\"> \u003Cspan class=\"wppm_alert_text\">\u003C\u002Fspan>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003C!-- Pop-up snippet start -->\r\n+      \u003Cdiv id=\"wppm_task_popup_background\" style=\"display:none;\">\u003C\u002Fdiv>\r\n+      \u003Cdiv id=\"wppm_task_popup_container\" style=\"display:none;\">\r\n+        \u003Cdiv class=\"wppm_bootstrap\">\r\n+          \u003Cdiv class=\"row\">\r\n+            \u003Cdiv id=\"wppm_task_popup\" class=\"col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\r\n+              \u003Cdiv id=\"wppm_task_popup_title\" class=\"row\" >\u003Ch3>\u003C?php echo esc_html_e('Modal Title','taskbuilder');?>\u003C\u002Fh3>\u003C\u002Fdiv>\r\n+              \u003Cdiv id=\"wppm_task_popup_body\" class=\"row\">\u003C?php echo esc_html_e('I am body!','taskbuilder');?>\u003C\u002Fdiv>\r\n+              \u003Cdiv id=\"wppm_task_popup_footer\" class=\"row\">\r\n+                \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_close\">\u003C?php echo esc_html_e('Close','taskbuilder');?>\u003C\u002Fbutton>\r\n+                \u003Cbutton type=\"button\" class=\"btn wppm_task_popup_action\">\u003C?php echo esc_html_e('Save Changes','taskbuilder');?>\u003C\u002Fbutton>\r\n+              \u003C\u002Fdiv>\r\n+            \u003C\u002Fdiv>\r\n+          \u003C\u002Fdiv>\r\n+        \u003C\u002Fdiv>\r\n+      \u003C\u002Fdiv>\r\n+      \u003Cstyle>\r\n+        #wppm_task_popup_title{\r\n+          background-color: \u003C?php echo esc_attr($settings['header-bg-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_title h3{\r\n+          color:\u003C?php echo esc_attr( $settings['header-text-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body{\r\n+          background-color: \u003C?php echo esc_attr($settings['body-bg-color'])?>!important;\r\n+        }\r\n+        #wppm_task_popup_body label{\r\n+          color:\u003C?php echo esc_attr( $settings['body-label-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body input{\r\n+          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body select{\r\n+          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body span {\r\n+          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+        }\r\n+        #wppm_task_popup_body .select2-results__options {\r\n+          color:\u003C?php echo esc_attr( $settings['body-text-color'])?>;\r\n+        }\r\n+      \u003C\u002Fstyle>\r\n+      \u003C!-- Pop-up snippet end -->\r\n+      \u003C?php\r\n+      do_action('wppm_after_task_shortcode_loaded');\r\n+    }\r\n+\r\n+    public function wppm_page_inline_script() { ?>\r\n+      \u003Cscript type=\"text\u002Fjavascript\">\r\n+        jQuery( document ).ready( function( jQuery ) {\r\n+          \u003C?php if(is_user_logged_in()){ \r\n+                  if(  (!((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))))){\r\n+                    if(get_option('wppm_default_task_list_view')==1){ ?>\r\n+                          wppm_get_task_list();\r\n+                  \u003C?php } else{ \r\n+                    ?>    wppm_view_task_search_filter();\r\n+                  \u003C?php }\r\n+                  }\r\n+                  if((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))){ ?>\r\n+                        wppm_open_task(\u003C?php echo (intval(wp_unslash($_REQUEST['task-id']))); ?>);\r\n+                 \u003C?php } \r\n+                }\r\n+                else{ ?>\r\n+                  wppm_task_sign_in();\r\n+          \u003C?php } ?>\r\n+        });\r\n+\r\n+        function wppm_get_task_list(page_no){\r\n+          jQuery('#wppm_task_container').show();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+          jQuery(document).trigger('wppm_task_list_dataform', [dataform]);\r\n+          \u003C?php \u002F\u002Fdo_action('wppm_task_list_dataform');?>\r\n+          dataform.append(\"page_no\", page_no);\r\n+          dataform.append(\"action\", 'wppm_get_task_list');\r\n+          dataform.append(\"is_frontend\", '1');\r\n+          dataform.append(\"page\",'wppm-tasks');\r\n+          \u003C?php \r\n+          if(!empty($this->shortcode_attr['project'])){ \r\n+                ?>\r\n+                dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_add_new_task(proj_id){\r\n+          jQuery('#wppm_task_container').show();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+          jQuery(document).trigger('wppm_add_new_task_dataform', [dataform]);\r\n+          dataform.append(\"proj_id\", proj_id);\r\n+          dataform.append(\"action\", 'wppm_add_new_task');\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_apply_task_filter(){\r\n+          wppm_task_filter = jQuery('#wppm_task_filter').find(\":selected\").val();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+           jQuery(document).trigger('wppm_apply_task_filter_dataform', [dataform]);\r\n+            dataform.append(\"wppm_task_filter\", wppm_task_filter);\r\n+            dataform.append(\"is_frontend\", '1');\r\n+            dataform.append(\"action\", 'wppm_get_task_list');\r\n+            dataform.append(\"page\",'wppm-tasks');\r\n+            \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                    dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+            \u003C?php } ?>\r\n+            jQuery.ajax( {\r\n+              url: wppm_admin.ajax_url,\r\n+              type: 'POST',\r\n+              data: dataform,\r\n+              processData: false,\r\n+              contentType: false\r\n+            }) \r\n+            .done(function( response ) {\r\n+              jQuery('#wppm_task_container').html(response);\r\n+            });\r\n+        }\r\n+        \r\n+        function wppm_tl_reset_filter(){\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+          dataform.append(\"action\", 'wppm_get_task_list');\r\n+          dataform.append(\"wppm_task_filter\", 'all');\r\n+          dataform.append(\"task_search\", '');\r\n+          dataform.append(\"sort_by\", 'task_name');\r\n+          dataform.append(\"order\", 'ASC');\r\n+          dataform.append(\"wppm_proj_filter\",0);\r\n+          dataform.append(\"is_frontend\", '1');\r\n+          dataform.append(\"page\",'wppm-tasks');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery(document).trigger('wppm_tl_reset_filter_dataform', [dataform]);\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_task_search_filter(){\r\n+          var task_search = jQuery(\"#wppm_task_search_filter\").val();\r\n+          jQuery('#wppm_task_container').show();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+          jQuery(document).trigger('wppm_task_search_filter_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_get_task_list');\r\n+          dataform.append(\"is_frontend\", '1');\r\n+          dataform.append(\"page\",'wppm-tasks');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          dataform.append(\"task_search\", task_search);\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_display_grid_view(){\r\n+          var task_search = jQuery(\"#wppm_view_task_search_filter\").val() || '';\r\n+          jQuery('#wppm_task_container').show();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\r\n+          jQuery(document).trigger('wppm_display_grid_view_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_get_task_list_card_view');\r\n+          dataform.append(\"task_search\", task_search);\r\n+          dataform.append(\"is_frontend\", '1');\r\n+          dataform.append(\"page\",'wppm-tasks');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_sort_up_task_list(sort_by,order){\r\n+          jQuery('#wppm_task_container').show();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+          dataform.append(\"action\", 'wppm_get_task_list');\r\n+          dataform.append(\"sort_by\", sort_by);\r\n+          dataform.append(\"order\", order);\r\n+          dataform.append(\"is_frontend\", '1');\r\n+          jQuery(document).trigger('wppm_sort_up_task_list_dataform', [dataform]);\r\n+          dataform.append(\"page\",'wppm-tasks');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_view_task_search_filter(page_no){\r\n+          var task_search = jQuery(\"#wppm_view_task_search_filter\").val() || '';\r\n+          jQuery('#wppm_task_container').show();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\r\n+          jQuery(document).trigger('wppm_view_task_search_filter_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_get_task_list_card_view');\r\n+          dataform.append(\"task_search\", task_search);\r\n+          dataform.append(\"page_no\",page_no);\r\n+          dataform.append(\"is_frontend\", '1');\r\n+          dataform.append(\"page\",'wppm-tasks');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_apply_task_filter_grid_view(){\r\n+          wppm_task_filter = jQuery('#wppm_task_filter').find(\":selected\").val();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\r\n+          jQuery(document).trigger('wppm_apply_task_filter_grid_view_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_view_project_tasks');\r\n+          dataform.append(\"wppm_task_filter\", wppm_task_filter);\r\n+          dataform.append(\"is_frontend\", '1');\r\n+          dataform.append(\"page\",'wppm-tasks');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_tl_reset_grid_view_filter(){\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\r\n+          jQuery(document).trigger('wppm_tl_reset_grid_view_filter_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_view_project_tasks');\r\n+          dataform.append(\"task_search\", \"\");\r\n+          dataform.append(\"wppm_task_filter\", \"all\");\r\n+          dataform.append(\"sort_by\", \"task_name\");\r\n+          dataform.append(\"order\", \"ASC\");\r\n+          dataform.append(\"wppm_proj_filter\",\"0\");\r\n+          dataform.append(\"is_frontend\", '1');\r\n+          dataform.append(\"page\",'wppm-tasks');\r\n+          \u003C?php if(!empty($this->shortcode_attr['project'])){ ?>\r\n+                  dataform.append(\"wppm_project_attr\",\"\u003C?php echo esc_attr($this->shortcode_attr['project']); ?>\");\r\n+          \u003C?php } ?>\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+        function wppm_tasks_by_select_project(){\r\n+          wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(\":selected\").val();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);\r\n+          jQuery(document).trigger('wppm_change_proj_tl_filter_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_get_task_list');\r\n+          dataform.append(\"wppm_proj_filter\",wppm_proj_filter);\r\n+          dataform.append(\"is_frontend\", '1');\r\n+          dataform.append(\"page\",'wppm-tasks');\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+\r\n+        function wppm_tasks_by_select_project_grid_view(){\r\n+          wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(\":selected\").val();\r\n+          jQuery('#wppm_task_container').html(wppm_admin.loading_html);\r\n+          var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);\r\n+          jQuery(document).trigger('wppm_change_proj_grid_view_filter_dataform', [dataform]);\r\n+          dataform.append(\"action\", 'wppm_view_project_tasks');\r\n+          dataform.append(\"wppm_proj_filter\",wppm_proj_filter);\r\n+          dataform.append(\"is_frontend\", '1');\r\n+          dataform.append(\"page\",'wppm-tasks');\r\n+          jQuery.ajax( {\r\n+            url: wppm_admin.ajax_url,\r\n+            type: 'POST',\r\n+            data: dataform,\r\n+            processData: false,\r\n+            contentType: false\r\n+          }) \r\n+          .done(function( response ) {\r\n+            jQuery('#wppm_task_container').html(response);\r\n+          });\r\n+        }\r\n+      \u003C\u002Fscript>\r\n+    \u003C?php } \r\n+  }\r\n+endif;\r\n $GLOBALS['wppmtaskshortcode'] =  new WPPM_Tasks_Shortcode($attr);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Freplace_macro.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Freplace_macro.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Freplace_macro.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Freplace_macro.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,128 +1,128 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wppmfunction,$wpdb;\n-$current_user_data = get_userdata($current_user->ID);\n-$project_id = intval(sanitize_text_field($project_id));\n-$wppm_project_data = $wppmfunction->get_project($project_id);\n-$orderby_sql       = (sanitize_sql_orderby( \"id DESC\" ));\n-$wppm_proj_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_comment where proj_id=%d ORDER BY $orderby_sql LIMIT 1\",$project_id));\n-$attachments = array();\n-$auth_id  = $wppmfunction->get_project_meta($project_id,'project_auth_code',true);\n-if(!empty($wppm_proj_comment)){\n-\t$attachments = explode(',',$wppm_proj_comment->attachment_ids);\n-}\n-preg_match_all(\"\u002F{[^}]*}\u002F\" ,$str,$matches);\n-$matches = array_unique($matches[0]);\n-$flag =false;\n-$page_setting = get_option( 'wppm-page-settings' );\n-$view = $page_setting['project-url-page'];\n-foreach($matches as $match){\n-\tswitch($match){\n-\t\t\u002F\u002FCurrent User Name\n-\t\tcase '{user_name}':\n-\t\t\t$str = preg_replace('\u002F{user_name}\u002F', $current_user_data->display_name, $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Project ID\n-\t\tcase '{project_id}':\n-\t\t\t$str = preg_replace('\u002F{project_id}\u002F', $project_id, $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Old project Status\n-\t\tcase '{old_project_status}':\n-\t\t\t$str = preg_replace('\u002F{old_project_status}\u002F', $this->get_old_project_status_name($project_id), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Project Status\n-\t\tcase '{new_project_status}':\n-\t\t\t$str = preg_replace('\u002F{new_project_status}\u002F', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Project Status\n-\t\tcase '{project_status}':\n-\t\t\t$str = preg_replace('\u002F{project_status}\u002F', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Project Category\n-\t\tcase '{project_category}':\n-\t\t\tif(!empty($wppm_project_data['cat_id'])){\n-\t\t\t\t$str = preg_replace('\u002F{project_category}\u002F', $this->get_project_category_name(sanitize_text_field($wppm_project_data['cat_id'])), $str);\n-\t\t\t}else{\n-\t\t\t\t$str = \"\";\n-\t\t\t}\n-\n-\t\t\tbreak;\n-\t\t\u002F\u002F Project Name\n-\t\tcase '{project_name}':\n-\t\t\t$str = preg_replace('\u002F{project_name}\u002F', sanitize_text_field($wppm_project_data['project_name']), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Project Start Date\n-\t\tcase '{project_start_date}':\n-\t\t\t$str = preg_replace('\u002F{project_start_date}\u002F', sanitize_text_field($wppm_project_data['start_date']), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Project End Date\n-\t\tcase '{project_end_date}':\n-\t\t\t$str = preg_replace('\u002F{project_end_date}\u002F', sanitize_text_field($wppm_project_data['end_date']), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Assigned Users\n-\t\tcase '{project_assigned_users}':\n-\t\t\t$assigned_users = $this->get_project_assigned_users_names($project_id);\n-\t\t\t$str = preg_replace('\u002F{project_assigned_users}\u002F', sanitize_text_field($assigned_users), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Previously Assigned users\n-\t\tcase '{previously_assigned_project_users}':\n-\t\t\t$previously_assigned_users = $this->get_project_previously_assigned_users_names($project_id);\n-\t\t\t$str = preg_replace('\u002F{previously_assigned_project_users}\u002F', sanitize_text_field($previously_assigned_users), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Date created\n-\t\tcase '{date_created}':\n-\t\t\t$str = preg_replace('\u002F{date_created}\u002F', get_date_from_gmt(sanitize_text_field($wppm_project_data['date_created'] )), $str);\n-\t\t\tbreak;\n-\t\t\t\u002F\u002FLast comment user name\n-\t\tcase '{last_proj_comment_user_name}':\n-\t\t\t$str = preg_replace('\u002F{last_proj_comment_user_name}\u002F', $this->get_last_comment_proj_user_name($project_id), $str);\n-\t\tbreak;\n-\t\t\u002F\u002FLast comment body\n-\t\tcase '{proj_comment_body}':\n-\t\t\t$flag= true;\n-\t\t\tif(!empty($this->get_proj_comment_body($project_id))){\n-\t\t\t\t$str = preg_replace('\u002F{proj_comment_body}\u002F', $this->get_proj_comment_body($project_id), $str);\n-\t\t\t} else{\n-\t\t\t\t$str = \"\";\n-\t\t\t}\n-\t\tbreak;\n-\n-\t\t\u002F\u002F Project Description\n-\t\tcase '{project_description}':\n-\t\t\t$str = preg_replace('\u002F{project_description}\u002F', sanitize_text_field($wppm_project_data['description']), $str);\t\n-\t\tbreak;\n-\t\tcase '{project_url}':\n-\t\t\t$project_url = '\u003Ca class=\"wppm_link\" href=\"' . $this->get_project_url($project_id,$view) . '\" target=\"_blank\">' . $this->get_project_url($project_id,$view) . '\u003C\u002Fa>';\n-\t\t\t$str = preg_replace('\u002F{project_url}\u002F', $project_url, $str);\n-\t\tbreak;\n-\t\t\n-\t}\n-}\n-if($flag == true){\n-\tif(!empty($attachments)){\n-\t\tforeach($attachments as $attach_id){\n-\t\t\t$upload_dir   = wp_upload_dir();\n-\t\t\t$attach_id = absint($attach_id);\n-\t\t\t$attachment = $wpdb->get_row($wpdb->prepare(\"select * from {$wpdb->prefix}wppm_attachments where id=%d\",$attach_id));\n-\t\t\tif(!empty($attachment)){\n-\t\t\t\t$updated_time = sanitize_text_field($attachment->date_created);\n-\t\t\t\t$time  = strtotime(sanitize_text_field($updated_time));\n-\t\t\t\t$month = wp_date(\"m\",$time);\n-\t\t\t\t$year  = wp_date(\"Y\",$time);\n-\t\t\t\t$findStr = \".txt\";\n-\t\t\t\t$attachment_name = preg_replace('\u002F' . $findStr . '\u002F', \"\", sanitize_file_name($attachment->name), 1);\n-\t\t\t\t$file_url = $upload_dir['basedir'] . '\u002Fwppm\u002F'.'\u002F'.$year.'\u002F'.$month.'\u002F'. $attachment_name;\n-\t\t\t\t$download_url = home_url('\u002F').'?wppm_attachment='.sanitize_text_field($attachment->id).'&pid='.sanitize_text_field($project_id).'&pac='.sanitize_text_field($auth_id);\n-\t\t\t\t$attach_url[] = '\u003Ca style=\"text-decoration:none;\" href=\"'.$download_url.'\" target=\"_blank\">'.sanitize_file_name($attachment->file_name).'\u003C\u002Fa>';\n-\t\t\t}else{\n-\t\t\t\t$attach_url= array();\n-\t\t\t}\n-\t\t}\n-\t\t$str = $str.implode(\"\u003Cbr>\",$attach_url);\n-\t}\n-}\n-$str = apply_filters('wppm_replace_macro',$str,$project_id);\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wppmfunction,$wpdb;\r\n+$current_user_data = get_userdata($current_user->ID);\r\n+$project_id = intval(sanitize_text_field($project_id));\r\n+$wppm_project_data = $wppmfunction->get_project($project_id);\r\n+$orderby_sql       = (sanitize_sql_orderby( \"id DESC\" ));\r\n+$wppm_proj_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_project_comment where proj_id=%d ORDER BY $orderby_sql LIMIT 1\",$project_id));\r\n+$attachments = array();\r\n+$auth_id  = $wppmfunction->get_project_meta($project_id,'project_auth_code',true);\r\n+if(!empty($wppm_proj_comment)){\r\n+\t$attachments = explode(',',$wppm_proj_comment->attachment_ids);\r\n+}\r\n+preg_match_all(\"\u002F{[^}]*}\u002F\" ,$str,$matches);\r\n+$matches = array_unique($matches[0]);\r\n+$flag =false;\r\n+$page_setting = get_option( 'wppm-page-settings' );\r\n+$view = $page_setting['project-url-page'];\r\n+foreach($matches as $match){\r\n+\tswitch($match){\r\n+\t\t\u002F\u002FCurrent User Name\r\n+\t\tcase '{user_name}':\r\n+\t\t\t$str = preg_replace('\u002F{user_name}\u002F', $current_user_data->display_name, $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Project ID\r\n+\t\tcase '{project_id}':\r\n+\t\t\t$str = preg_replace('\u002F{project_id}\u002F', $project_id, $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Old project Status\r\n+\t\tcase '{old_project_status}':\r\n+\t\t\t$str = preg_replace('\u002F{old_project_status}\u002F', $this->get_old_project_status_name($project_id), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Project Status\r\n+\t\tcase '{new_project_status}':\r\n+\t\t\t$str = preg_replace('\u002F{new_project_status}\u002F', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Project Status\r\n+\t\tcase '{project_status}':\r\n+\t\t\t$str = preg_replace('\u002F{project_status}\u002F', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Project Category\r\n+\t\tcase '{project_category}':\r\n+\t\t\tif(!empty($wppm_project_data['cat_id'])){\r\n+\t\t\t\t$str = preg_replace('\u002F{project_category}\u002F', $this->get_project_category_name(sanitize_text_field($wppm_project_data['cat_id'])), $str);\r\n+\t\t\t}else{\r\n+\t\t\t\t$str = \"\";\r\n+\t\t\t}\r\n+\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Project Name\r\n+\t\tcase '{project_name}':\r\n+\t\t\t$str = preg_replace('\u002F{project_name}\u002F', sanitize_text_field($wppm_project_data['project_name']), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Project Start Date\r\n+\t\tcase '{project_start_date}':\r\n+\t\t\t$str = preg_replace('\u002F{project_start_date}\u002F', sanitize_text_field($wppm_project_data['start_date']), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Project End Date\r\n+\t\tcase '{project_end_date}':\r\n+\t\t\t$str = preg_replace('\u002F{project_end_date}\u002F', sanitize_text_field($wppm_project_data['end_date']), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Assigned Users\r\n+\t\tcase '{project_assigned_users}':\r\n+\t\t\t$assigned_users = $this->get_project_assigned_users_names($project_id);\r\n+\t\t\t$str = preg_replace('\u002F{project_assigned_users}\u002F', sanitize_text_field($assigned_users), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Previously Assigned users\r\n+\t\tcase '{previously_assigned_project_users}':\r\n+\t\t\t$previously_assigned_users = $this->get_project_previously_assigned_users_names($project_id);\r\n+\t\t\t$str = preg_replace('\u002F{previously_assigned_project_users}\u002F', sanitize_text_field($previously_assigned_users), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Date created\r\n+\t\tcase '{date_created}':\r\n+\t\t\t$str = preg_replace('\u002F{date_created}\u002F', get_date_from_gmt(sanitize_text_field($wppm_project_data['date_created'] )), $str);\r\n+\t\t\tbreak;\r\n+\t\t\t\u002F\u002FLast comment user name\r\n+\t\tcase '{last_proj_comment_user_name}':\r\n+\t\t\t$str = preg_replace('\u002F{last_proj_comment_user_name}\u002F', $this->get_last_comment_proj_user_name($project_id), $str);\r\n+\t\tbreak;\r\n+\t\t\u002F\u002FLast comment body\r\n+\t\tcase '{proj_comment_body}':\r\n+\t\t\t$flag= true;\r\n+\t\t\tif(!empty($this->get_proj_comment_body($project_id))){\r\n+\t\t\t\t$str = preg_replace('\u002F{proj_comment_body}\u002F', $this->get_proj_comment_body($project_id), $str);\r\n+\t\t\t} else{\r\n+\t\t\t\t$str = \"\";\r\n+\t\t\t}\r\n+\t\tbreak;\r\n+\r\n+\t\t\u002F\u002F Project Description\r\n+\t\tcase '{project_description}':\r\n+\t\t\t$str = preg_replace('\u002F{project_description}\u002F', sanitize_text_field($wppm_project_data['description']), $str);\t\r\n+\t\tbreak;\r\n+\t\tcase '{project_url}':\r\n+\t\t\t$project_url = '\u003Ca class=\"wppm_link\" href=\"' . $this->get_project_url($project_id,$view) . '\" target=\"_blank\">' . $this->get_project_url($project_id,$view) . '\u003C\u002Fa>';\r\n+\t\t\t$str = preg_replace('\u002F{project_url}\u002F', $project_url, $str);\r\n+\t\tbreak;\r\n+\t\t\r\n+\t}\r\n+}\r\n+if($flag == true){\r\n+\tif(!empty($attachments)){\r\n+\t\tforeach($attachments as $attach_id){\r\n+\t\t\t$upload_dir   = wp_upload_dir();\r\n+\t\t\t$attach_id = absint($attach_id);\r\n+\t\t\t$attachment = $wpdb->get_row($wpdb->prepare(\"select * from {$wpdb->prefix}wppm_attachments where id=%d\",$attach_id));\r\n+\t\t\tif(!empty($attachment)){\r\n+\t\t\t\t$updated_time = sanitize_text_field($attachment->date_created);\r\n+\t\t\t\t$time  = strtotime(sanitize_text_field($updated_time));\r\n+\t\t\t\t$month = wp_date(\"m\",$time);\r\n+\t\t\t\t$year  = wp_date(\"Y\",$time);\r\n+\t\t\t\t$findStr = \".txt\";\r\n+\t\t\t\t$attachment_name = preg_replace('\u002F' . $findStr . '\u002F', \"\", sanitize_file_name($attachment->name), 1);\r\n+\t\t\t\t$file_url = $upload_dir['basedir'] . '\u002Fwppm\u002F'.'\u002F'.$year.'\u002F'.$month.'\u002F'. $attachment_name;\r\n+\t\t\t\t$download_url = home_url('\u002F').'?wppm_attachment='.sanitize_text_field($attachment->id).'&pid='.sanitize_text_field($project_id).'&pac='.sanitize_text_field($auth_id);\r\n+\t\t\t\t$attach_url[] = '\u003Ca style=\"text-decoration:none;\" href=\"'.$download_url.'\" target=\"_blank\">'.sanitize_file_name($attachment->file_name).'\u003C\u002Fa>';\r\n+\t\t\t}else{\r\n+\t\t\t\t$attach_url= array();\r\n+\t\t\t}\r\n+\t\t}\r\n+\t\t$str = $str.implode(\"\u003Cbr>\",$attach_url);\r\n+\t}\r\n+}\r\n+$str = apply_filters('wppm_replace_macro',$str,$project_id);\r\n+\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Freplace_task_macro.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Freplace_task_macro.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Freplace_task_macro.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Freplace_task_macro.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,163 +1,163 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-global $current_user, $wppmfunction,$wpdb;\n-$current_user_data = get_userdata($current_user->ID);\n-$task_id = intval(sanitize_text_field($task_id));\n-$wppm_task_data = $wppmfunction->get_task($task_id);\n-$task_creator = $wppm_task_data['created_by'];\n-$task_creator_data = get_userdata($task_creator);\n-$task_creator_name = $task_creator_data->display_name;\n-$orderby_sql       = (sanitize_sql_orderby( \"id DESC\" ));\n-$wppm_task_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment where task_id=%d ORDER BY $orderby_sql LIMIT 1\",$task_id));\n-$wppm_project_data = $wppmfunction->get_project($wppm_task_data['project']);\n-$auth_id           = sanitize_text_field($wppm_task_data['task_auth_code']);\n-$attachments = array();\n-if(!empty($wppm_task_comment)){\n-\t$attachments = explode(',',$wppm_task_comment->attachment_ids);\n-}\n-preg_match_all(\"\u002F{[^}]*}\u002F\" ,$str,$matches);\n-$matches = array_unique($matches[0]);\n-$flag =false;\n-$page_setting = get_option( 'wppm-page-settings' );\n-$view = $page_setting['task-url-page'];\n-foreach($matches as $match){\n-\tswitch($match){\n-\t\t\u002F\u002F Task ID\n-\t\tcase '{task_id}':\n-\t\t\t$str = preg_replace('\u002F{task_id}\u002F', $task_id, $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Task Creator Name\n-\t\tcase '{task_creator_name}':\n-\t\t\t$str = preg_replace('\u002F{task_creator_name}\u002F', $task_creator_name, $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002FCurrent User Name\n-\t\tcase '{user_name}':\n-\t\t\t$str = preg_replace('\u002F{user_name}\u002F', sanitize_text_field($current_user_data->display_name), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Task Name\n-\t\tcase '{task_name}':\n-\t\t\t$str = preg_replace('\u002F{task_name}\u002F', sanitize_text_field($wppm_task_data['task_name']), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002FOld Task Status\n-\t\tcase '{old_task_status}':\n-\t\t\t$str = preg_replace('\u002F{old_task_status}\u002F', $this->get_old_task_status_name($task_id), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002FNew Task Status\n-\t\tcase '{new_task_status}':\n-\t\t\t$str = preg_replace('\u002F{new_task_status}\u002F', $this->get_new_task_status_name(sanitize_text_field($wppm_task_data['status'])), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002FNew Task Status\n-\t\tcase '{task_status}':\n-\t\t\t$str = preg_replace('\u002F{task_status}\u002F', $this->get_new_task_status_name(sanitize_text_field($wppm_task_data['status'])), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002FTask Assigned Users\n-\t\tcase '{task_assigned_users}':\n-\t\t\t$assigned_users = $this->get_task_assigned_users_names($task_id);\n-\t\t\t$str = preg_replace('\u002F{task_assigned_users}\u002F', sanitize_text_field($assigned_users), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002FPreviously Assign Task Users\n-\t\tcase '{previously_assigned_task_users}':\n-\t\t\t$previously_assigned_task_users = $this->get_task_previously_assigned_users_names($task_id);\n-\t\t\t$str = preg_replace('\u002F{previously_assigned_task_users}\u002F', sanitize_text_field($previously_assigned_task_users), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Task Start Date\n-\t\tcase '{task_start_date}':\n-\t\t\t$str = preg_replace('\u002F{task_start_date}\u002F', sanitize_text_field($wppm_task_data['start_date']), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Task End Date\n-\t\tcase '{task_end_date}':\n-\t\t\t$str = preg_replace('\u002F{task_end_date}\u002F', sanitize_text_field($wppm_task_data['end_date']), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Task Priority\n-\t\tcase '{task_priority}':\n-\t\t\t$str = preg_replace('\u002F{task_priority}\u002F', $this->get_task_priority_name(sanitize_text_field($wppm_task_data['priority'])), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Task Description\n-\t\tcase '{task_description}':\n-\t\t\t$str = preg_replace('\u002F{task_description}\u002F', sanitize_text_field($wppm_task_data['description']), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Date created\n-\t\tcase '{task_date_created}':\n-\t\t\t$str = preg_replace('\u002F{task_date_created}\u002F', get_date_from_gmt(sanitize_text_field($wppm_task_data['date_created']) ), $str);\n-\t\t\tbreak;\n-\t\t\u002F\u002F Project Name\n-\t\tcase '{project_name}':\n-\t\t\t$str = preg_replace('\u002F{project_name}\u002F', sanitize_text_field($wppm_project_data['project_name']), $str);\n-\t\tbreak;\n-\t\t\u002F\u002FLast comment user name\n-\t\tcase '{last_comment_user_name}':\n-\t\t\t$str = preg_replace('\u002F{last_comment_user_name}\u002F', $this->get_last_comment_user_name($task_id), $str);\n-\t\tbreak;\n-\t\t\u002F\u002FProject status\n-\t\tcase '{project_status}';\n-\t\t\t$str = preg_replace('\u002F{project_status}\u002F', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);\n-\t\tbreak;\n-\t\t\u002F\u002F Project Category\n-\t\tcase '{project_category}';\n-\t\tif(!empty($wppm_project_data['cat_id'])){\n-\t\t\t$str = preg_replace('\u002F{project_category}\u002F', $this->get_project_category_name(sanitize_text_field($wppm_project_data['cat_id'])), $str);\n-\t\t}else{\n-\t\t\t$str = \"\";\n-\t\t}\n-\t\tbreak;\n-\t\t\u002F\u002F Project Name\n-\t\tcase '{project_name}':\n-\t\t\t$str = preg_replace('\u002F{project_name}\u002F', (sanitize_text_field($wppm_project_data['project_name'])), $str);\n-\t\tbreak;\n-\t\t\u002F\u002F Project Start Date\n-\t\tcase 'project_start_date':\n-\t\t\t$str = preg_replace('\u002F{project_start_date}\u002F', (sanitize_text_field($wppm_project_data['start_date'])), $str);\n-\t\tbreak;\n-\t\t\u002F\u002F Project End Date\n-\t\tcase '{project_end_date}':\n-\t\t\t$str = preg_replace('\u002F{project_end_date}\u002F', (sanitize_text_field($wppm_project_data['end_date'])), $str);\n-\t\tbreak;\n-\t\t\u002F\u002F Project Description\n-\t\tcase '{project_description}':\n-\t\t\t$str = preg_replace('\u002F{project_description}\u002F', (sanitize_text_field($wppm_project_data['description'])), $str);\n-\t\tbreak;\n-\t\t\u002F\u002F Project Assigned Users\n-\t\tcase '{project_assigned_users}':\n-\t\t\t$assigned_users = $this->get_project_assigned_users_names($wppm_project_data['id']);\n-\t\t\t$str = preg_replace('\u002F{project_assigned_users}\u002F', (sanitize_text_field($assigned_users)), $str);\n-\t\tbreak;\n-\t\t\u002F\u002FLast comment body\n-\t\tcase '{comment_body}':\n-\t\t\t$flag= true;\n-\t\t\t$str = preg_replace('\u002F{comment_body}\u002F', $this->get_last_comment_body($task_id), $str);\n-\t\tbreak;\n-\t\tcase '{task_url}':\n-\t\t\t$task_url = '\u003Ca class=\"wppm_link\" href=\"' . $this->get_task_url($task_id,$view) . '\" target=\"_blank\">' . $this->get_task_url($task_id,$view) . '\u003C\u002Fa>';\n-\t\t\t$str = preg_replace('\u002F{task_url}\u002F', $task_url, $str);\n-\t\tbreak;\n-\n-\t}\n-}\n-if($flag == true){\n-\tif(!empty($attachments)){\n-\t\tforeach($attachments as $attach_id){\n-\t\t\t$upload_dir   = wp_upload_dir();\n-\t\t\t$attach_id = absint($attach_id);\n-\t\t\t$attachment = $wpdb->get_row($wpdb->prepare(\"select * from {$wpdb->prefix}wppm_attachments where id=%d\",$attach_id));\n-\t\t\tif(!empty($attachment)){\n-\t\t\t\t$updated_time = sanitize_text_field($attachment->date_created);\n-\t\t\t\t$time  = strtotime(sanitize_text_field($updated_time));\n-\t\t\t\t$month = wp_date(\"m\",$time);\n-\t\t\t\t$year  = wp_date(\"Y\",$time);\n-\t\t\t\t$findStr = \".txt\";\n-\t\t\t\t$attachment_name = preg_replace('\u002F' . $findStr . '\u002F', \"\", sanitize_file_name($attachment->name), 1);\n-\t\t\t\t$file_url = $upload_dir['basedir'] . '\u002Fwppm\u002F'.'\u002F'.$year.'\u002F'.$month.'\u002F'. $attachment_name;\n-\t\t\t\t$download_url = home_url('\u002F').'?wppm_attachment='.sanitize_text_field($attachment->id).'&tid='.sanitize_text_field($task_id).'&tac='.sanitize_text_field($auth_id);\n-\t\t\t\t$attach_url[] = '\u003Ca style=\"text-decoration:none;\" href=\"'.$download_url.'\" target=\"_blank\">'.sanitize_file_name($attachment->file_name).'\u003C\u002Fa>';\n-\t\t\t}else{\n-\t\t\t\t$attach_url= array();\n-\t\t\t}\n-\t\t}\n-\t\t$str = $str.implode(\"\u003Cbr>\",$attach_url);\n-\t}\n-\t\n-}\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+global $current_user, $wppmfunction,$wpdb;\r\n+$current_user_data = get_userdata($current_user->ID);\r\n+$task_id = intval(sanitize_text_field($task_id));\r\n+$wppm_task_data = $wppmfunction->get_task($task_id);\r\n+$task_creator = $wppm_task_data['created_by'];\r\n+$task_creator_data = get_userdata($task_creator);\r\n+$task_creator_name = $task_creator_data->display_name;\r\n+$orderby_sql       = (sanitize_sql_orderby( \"id DESC\" ));\r\n+$wppm_task_comment = $wpdb->get_row($wpdb->prepare(\"SELECT * FROM {$wpdb->prefix}wppm_task_comment where task_id=%d ORDER BY $orderby_sql LIMIT 1\",$task_id));\r\n+$wppm_project_data = $wppmfunction->get_project($wppm_task_data['project']);\r\n+$auth_id           = sanitize_text_field($wppm_task_data['task_auth_code']);\r\n+$attachments = array();\r\n+if(!empty($wppm_task_comment)){\r\n+\t$attachments = explode(',',$wppm_task_comment->attachment_ids);\r\n+}\r\n+preg_match_all(\"\u002F{[^}]*}\u002F\" ,$str,$matches);\r\n+$matches = array_unique($matches[0]);\r\n+$flag =false;\r\n+$page_setting = get_option( 'wppm-page-settings' );\r\n+$view = $page_setting['task-url-page'];\r\n+foreach($matches as $match){\r\n+\tswitch($match){\r\n+\t\t\u002F\u002F Task ID\r\n+\t\tcase '{task_id}':\r\n+\t\t\t$str = preg_replace('\u002F{task_id}\u002F', $task_id, $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Task Creator Name\r\n+\t\tcase '{task_creator_name}':\r\n+\t\t\t$str = preg_replace('\u002F{task_creator_name}\u002F', $task_creator_name, $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002FCurrent User Name\r\n+\t\tcase '{user_name}':\r\n+\t\t\t$str = preg_replace('\u002F{user_name}\u002F', sanitize_text_field($current_user_data->display_name), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Task Name\r\n+\t\tcase '{task_name}':\r\n+\t\t\t$str = preg_replace('\u002F{task_name}\u002F', sanitize_text_field($wppm_task_data['task_name']), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002FOld Task Status\r\n+\t\tcase '{old_task_status}':\r\n+\t\t\t$str = preg_replace('\u002F{old_task_status}\u002F', $this->get_old_task_status_name($task_id), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002FNew Task Status\r\n+\t\tcase '{new_task_status}':\r\n+\t\t\t$str = preg_replace('\u002F{new_task_status}\u002F', $this->get_new_task_status_name(sanitize_text_field($wppm_task_data['status'])), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002FNew Task Status\r\n+\t\tcase '{task_status}':\r\n+\t\t\t$str = preg_replace('\u002F{task_status}\u002F', $this->get_new_task_status_name(sanitize_text_field($wppm_task_data['status'])), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002FTask Assigned Users\r\n+\t\tcase '{task_assigned_users}':\r\n+\t\t\t$assigned_users = $this->get_task_assigned_users_names($task_id);\r\n+\t\t\t$str = preg_replace('\u002F{task_assigned_users}\u002F', sanitize_text_field($assigned_users), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002FPreviously Assign Task Users\r\n+\t\tcase '{previously_assigned_task_users}':\r\n+\t\t\t$previously_assigned_task_users = $this->get_task_previously_assigned_users_names($task_id);\r\n+\t\t\t$str = preg_replace('\u002F{previously_assigned_task_users}\u002F', sanitize_text_field($previously_assigned_task_users), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Task Start Date\r\n+\t\tcase '{task_start_date}':\r\n+\t\t\t$str = preg_replace('\u002F{task_start_date}\u002F', sanitize_text_field($wppm_task_data['start_date']), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Task End Date\r\n+\t\tcase '{task_end_date}':\r\n+\t\t\t$str = preg_replace('\u002F{task_end_date}\u002F', sanitize_text_field($wppm_task_data['end_date']), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Task Priority\r\n+\t\tcase '{task_priority}':\r\n+\t\t\t$str = preg_replace('\u002F{task_priority}\u002F', $this->get_task_priority_name(sanitize_text_field($wppm_task_data['priority'])), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Task Description\r\n+\t\tcase '{task_description}':\r\n+\t\t\t$str = preg_replace('\u002F{task_description}\u002F', sanitize_text_field($wppm_task_data['description']), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Date created\r\n+\t\tcase '{task_date_created}':\r\n+\t\t\t$str = preg_replace('\u002F{task_date_created}\u002F', get_date_from_gmt(sanitize_text_field($wppm_task_data['date_created']) ), $str);\r\n+\t\t\tbreak;\r\n+\t\t\u002F\u002F Project Name\r\n+\t\tcase '{project_name}':\r\n+\t\t\t$str = preg_replace('\u002F{project_name}\u002F', sanitize_text_field($wppm_project_data['project_name']), $str);\r\n+\t\tbreak;\r\n+\t\t\u002F\u002FLast comment user name\r\n+\t\tcase '{last_comment_user_name}':\r\n+\t\t\t$str = preg_replace('\u002F{last_comment_user_name}\u002F', $this->get_last_comment_user_name($task_id), $str);\r\n+\t\tbreak;\r\n+\t\t\u002F\u002FProject status\r\n+\t\tcase '{project_status}';\r\n+\t\t\t$str = preg_replace('\u002F{project_status}\u002F', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);\r\n+\t\tbreak;\r\n+\t\t\u002F\u002F Project Category\r\n+\t\tcase '{project_category}';\r\n+\t\tif(!empty($wppm_project_data['cat_id'])){\r\n+\t\t\t$str = preg_replace('\u002F{project_category}\u002F', $this->get_project_category_name(sanitize_text_field($wppm_project_data['cat_id'])), $str);\r\n+\t\t}else{\r\n+\t\t\t$str = \"\";\r\n+\t\t}\r\n+\t\tbreak;\r\n+\t\t\u002F\u002F Project Name\r\n+\t\tcase '{project_name}':\r\n+\t\t\t$str = preg_replace('\u002F{project_name}\u002F', (sanitize_text_field($wppm_project_data['project_name'])), $str);\r\n+\t\tbreak;\r\n+\t\t\u002F\u002F Project Start Date\r\n+\t\tcase 'project_start_date':\r\n+\t\t\t$str = preg_replace('\u002F{project_start_date}\u002F', (sanitize_text_field($wppm_project_data['start_date'])), $str);\r\n+\t\tbreak;\r\n+\t\t\u002F\u002F Project End Date\r\n+\t\tcase '{project_end_date}':\r\n+\t\t\t$str = preg_replace('\u002F{project_end_date}\u002F', (sanitize_text_field($wppm_project_data['end_date'])), $str);\r\n+\t\tbreak;\r\n+\t\t\u002F\u002F Project Description\r\n+\t\tcase '{project_description}':\r\n+\t\t\t$str = preg_replace('\u002F{project_description}\u002F', (sanitize_text_field($wppm_project_data['description'])), $str);\r\n+\t\tbreak;\r\n+\t\t\u002F\u002F Project Assigned Users\r\n+\t\tcase '{project_assigned_users}':\r\n+\t\t\t$assigned_users = $this->get_project_assigned_users_names($wppm_project_data['id']);\r\n+\t\t\t$str = preg_replace('\u002F{project_assigned_users}\u002F', (sanitize_text_field($assigned_users)), $str);\r\n+\t\tbreak;\r\n+\t\t\u002F\u002FLast comment body\r\n+\t\tcase '{comment_body}':\r\n+\t\t\t$flag= true;\r\n+\t\t\t$str = preg_replace('\u002F{comment_body}\u002F', $this->get_last_comment_body($task_id), $str);\r\n+\t\tbreak;\r\n+\t\tcase '{task_url}':\r\n+\t\t\t$task_url = '\u003Ca class=\"wppm_link\" href=\"' . $this->get_task_url($task_id,$view) . '\" target=\"_blank\">' . $this->get_task_url($task_id,$view) . '\u003C\u002Fa>';\r\n+\t\t\t$str = preg_replace('\u002F{task_url}\u002F', $task_url, $str);\r\n+\t\tbreak;\r\n+\r\n+\t}\r\n+}\r\n+if($flag == true){\r\n+\tif(!empty($attachments)){\r\n+\t\tforeach($attachments as $attach_id){\r\n+\t\t\t$upload_dir   = wp_upload_dir();\r\n+\t\t\t$attach_id = absint($attach_id);\r\n+\t\t\t$attachment = $wpdb->get_row($wpdb->prepare(\"select * from {$wpdb->prefix}wppm_attachments where id=%d\",$attach_id));\r\n+\t\t\tif(!empty($attachment)){\r\n+\t\t\t\t$updated_time = sanitize_text_field($attachment->date_created);\r\n+\t\t\t\t$time  = strtotime(sanitize_text_field($updated_time));\r\n+\t\t\t\t$month = wp_date(\"m\",$time);\r\n+\t\t\t\t$year  = wp_date(\"Y\",$time);\r\n+\t\t\t\t$findStr = \".txt\";\r\n+\t\t\t\t$attachment_name = preg_replace('\u002F' . $findStr . '\u002F', \"\", sanitize_file_name($attachment->name), 1);\r\n+\t\t\t\t$file_url = $upload_dir['basedir'] . '\u002Fwppm\u002F'.'\u002F'.$year.'\u002F'.$month.'\u002F'. $attachment_name;\r\n+\t\t\t\t$download_url = home_url('\u002F').'?wppm_attachment='.sanitize_text_field($attachment->id).'&tid='.sanitize_text_field($task_id).'&tac='.sanitize_text_field($auth_id);\r\n+\t\t\t\t$attach_url[] = '\u003Ca style=\"text-decoration:none;\" href=\"'.$download_url.'\" target=\"_blank\">'.sanitize_file_name($attachment->file_name).'\u003C\u002Fa>';\r\n+\t\t\t}else{\r\n+\t\t\t\t$attach_url= array();\r\n+\t\t\t}\r\n+\t\t}\r\n+\t\t$str = $str.implode(\"\u003Cbr>\",$attach_url);\r\n+\t}\r\n+\t\r\n+}\r\n $str = apply_filters('wppm_replace_task_macro',$str,$task_id);\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fwppm_actions.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fwppm_actions.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fwppm_actions.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fwppm_actions.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,25 +1,25 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-  exit; \u002F\u002F Exit if accessed directly\n-}\n-if ( ! class_exists( 'WPPM_Actions' ) ) :\n-  \n-final class WPPM_Actions {\n-  \u002F\u002F constructor\n-  public function __construct() {\n-      add_action( 'init', array( $this, 'wppm_load_actions') );\n-  }\n-\n-  \u002F\u002F Load actions\n-  function wppm_load_actions() {\n-    add_action( 'wppm_cron_daily', array($this,'wppm_check_cron_attachment') );\n-  }\n-  \n-  function wppm_check_cron_attachment(){\n-    include WPPM_ABSPATH.'includes\u002Factions\u002Fwppm_check_cron_attachment.php';\n-  }\n-\n-}\n-endif;\n-\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+  exit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+if ( ! class_exists( 'WPPM_Actions' ) ) :\r\n+  \r\n+final class WPPM_Actions {\r\n+  \u002F\u002F constructor\r\n+  public function __construct() {\r\n+      add_action( 'init', array( $this, 'wppm_load_actions') );\r\n+  }\r\n+\r\n+  \u002F\u002F Load actions\r\n+  function wppm_load_actions() {\r\n+    add_action( 'wppm_cron_daily', array($this,'wppm_check_cron_attachment') );\r\n+  }\r\n+  \r\n+  function wppm_check_cron_attachment(){\r\n+    include WPPM_ABSPATH.'includes\u002Factions\u002Fwppm_check_cron_attachment.php';\r\n+  }\r\n+\r\n+}\r\n+endif;\r\n+\r\n new WPPM_Actions();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fwppm_cron.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fwppm_cron.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fwppm_cron.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fwppm_cron.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,63 +1,63 @@\n-\u003C?php\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-if( !class_exists( 'WPPMCron' ) ) :\n-\n-    final class WPPMCron {\n-        public static function init() {\n-            add_action( 'init', array( __CLASS__, 'wppm_schedule_events') );\n-        }\n-\n-        public static function wppm_schedule_events(){\n-            \u002F\u002F Schedule cron job for every minute events\n-            if ( !wp_next_scheduled('wppm_cron_one_minute') ) {\n-                wp_schedule_event( \n-                    time(), \n-                    'wppm_1min', \n-                    'wppm_cron_one_minute' \n-                );\n-                \u002F\u002Finclude( WPPM_ABSPATH.'includes\u002Fclass-wppm_import_emails.php' );\n-            }\n-\n-            \u002F\u002F Schedule cron job for every five minute events\n-            if ( !wp_next_scheduled('wppm_cron_five_minute') ) {\n-                wp_schedule_event( \n-                    time(), \n-                    'wppm_5min', \n-                    'wppm_cron_five_minute' \n-                );\n-            }\n-\n-            \u002F\u002F Schedule cron job for daily events\n-            if ( !wp_next_scheduled('wppm_cron_daily') ) {\n-                wp_schedule_event( \n-                    time(), \n-                    'daily', \n-                    'wppm_cron_daily' \n-                );\n-            }\n-        }\n-\n-        public static function wppm_unschedule_events(){\n-            \u002F\u002F Remove every minute cron\n-            $timestamp = wp_next_scheduled( 'wppm_cron_one_minute' );\n-            if( $timestamp ) {\n-                wp_unschedule_event( $timestamp, 'wppm_cron_one_minute' );\n-            }\n-\n-            \u002F\u002F Remove every five minute cron\n-            $timestamp = wp_next_scheduled( 'wppm_cron_five_minute' );\n-            if( $timestamp ) {\n-                wp_unschedule_event( $timestamp, 'wppm_cron_five_minute' );\n-            }\n-\n-            \u002F\u002F Remove daily cron\n-            $timestamp = wp_next_scheduled( 'wppm_cron_daily' );\n-            if( $timestamp ) {\n-                wp_unschedule_event( $timestamp, 'wppm_cron_daily' );\n-            }\n-        }\n-    }\n-endif;\n+\u003C?php\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+if( !class_exists( 'WPPMCron' ) ) :\r\n+\r\n+    final class WPPMCron {\r\n+        public static function init() {\r\n+            add_action( 'init', array( __CLASS__, 'wppm_schedule_events') );\r\n+        }\r\n+\r\n+        public static function wppm_schedule_events(){\r\n+            \u002F\u002F Schedule cron job for every minute events\r\n+            if ( !wp_next_scheduled('wppm_cron_one_minute') ) {\r\n+                wp_schedule_event( \r\n+                    time(), \r\n+                    'wppm_1min', \r\n+                    'wppm_cron_one_minute' \r\n+                );\r\n+                \u002F\u002Finclude( WPPM_ABSPATH.'includes\u002Fclass-wppm_import_emails.php' );\r\n+            }\r\n+\r\n+            \u002F\u002F Schedule cron job for every five minute events\r\n+            if ( !wp_next_scheduled('wppm_cron_five_minute') ) {\r\n+                wp_schedule_event( \r\n+                    time(), \r\n+                    'wppm_5min', \r\n+                    'wppm_cron_five_minute' \r\n+                );\r\n+            }\r\n+\r\n+            \u002F\u002F Schedule cron job for daily events\r\n+            if ( !wp_next_scheduled('wppm_cron_daily') ) {\r\n+                wp_schedule_event( \r\n+                    time(), \r\n+                    'daily', \r\n+                    'wppm_cron_daily' \r\n+                );\r\n+            }\r\n+        }\r\n+\r\n+        public static function wppm_unschedule_events(){\r\n+            \u002F\u002F Remove every minute cron\r\n+            $timestamp = wp_next_scheduled( 'wppm_cron_one_minute' );\r\n+            if( $timestamp ) {\r\n+                wp_unschedule_event( $timestamp, 'wppm_cron_one_minute' );\r\n+            }\r\n+\r\n+            \u002F\u002F Remove every five minute cron\r\n+            $timestamp = wp_next_scheduled( 'wppm_cron_five_minute' );\r\n+            if( $timestamp ) {\r\n+                wp_unschedule_event( $timestamp, 'wppm_cron_five_minute' );\r\n+            }\r\n+\r\n+            \u002F\u002F Remove daily cron\r\n+            $timestamp = wp_next_scheduled( 'wppm_cron_daily' );\r\n+            if( $timestamp ) {\r\n+                wp_unschedule_event( $timestamp, 'wppm_cron_daily' );\r\n+            }\r\n+        }\r\n+    }\r\n+endif;\r\n WPPMCron::init();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fwppm-install.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fwppm-install.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Fincludes\u002Fwppm-install.php\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Fincludes\u002Fwppm-install.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,545 +1,545 @@\n-\u003C?php \n-if ( ! defined( 'ABSPATH' ) ) exit; \u002F\u002F Exit if accessed directly\n-\n-if ( ! class_exists( 'WPPM_Install' ) ) :\n-\n-final class WPPM_Install {\n-\tpublic function __construct() {\n-\t\t$this->check_version();\n-\t}\n-\t\u002F**\n-     * Check version of Taskbuilder\n-     *\u002F\n-    public function check_version(){\n-\t\t$installed_version = get_option( 'wppm_version' );\n-        if( $installed_version != WPPM_VERSION ){\n-          \t$this->create_db_tables();\n-\t\t\tadd_action( 'init', array($this,'upgrade'), 101 );\n-        }\n-\t}\n-\t\u002F**** Create mysql tables****\u002F\n-\tpublic function create_db_tables() {\n-\t\tglobal $wpdb;\n-\t\trequire_once( ABSPATH . 'wp-admin\u002Fincludes\u002Fupgrade.php' );\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project (\n-\t\t\tid integer NOT NULL AUTO_INCREMENT,\n-\t\t\tcreated_by integer,\n-\t\t\tproject_name VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n-\t\t\tdescription LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n-\t\t\tstart_date datetime,\n-\t\t\tend_date datetime,\n-\t\t\tstatus integer,\n-\t\t\tcat_id integer,\n-\t\t\tusers VARCHAR( 200 ) NULL DEFAULT '0',\n-\t\t\tdate_created datetime,\n-\t\t\tPRIMARY KEY  (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project_meta (\n-\t\t\tid integer NOT NULL AUTO_INCREMENT,\n-\t\t\tproject_id integer,\n-\t\t\tmeta_key LONGTEXT NULL DEFAULT NULL,\n-\t\t\tmeta_value LONGTEXT NULL DEFAULT NULL,\n-\t\t\tPRIMARY KEY  (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\t\t\t\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project_categories (\n-\t\t\tid integer NOT NULL AUTO_INCREMENT,\n-\t\t\tname TINYTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n-\t\t\tload_order int(11) NOT NULL DEFAULT '1',\n-\t\t\tPRIMARY KEY  (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project_statuses (\n-\t\t\tid bigint(20) NOT NULL AUTO_INCREMENT,\n-\t\t\tname varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL,\n-\t\t\tcolor varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL,\n-\t\t\tbg_color varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL,\n-\t\t\tload_order int(11) NOT NULL DEFAULT '1',\n-\t\t\tPRIMARY KEY  (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_task_statuses (\n-\t\t\tid bigint(20) NOT NULL AUTO_INCREMENT,\n-\t\t\tname varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL,\n-\t\t\tcolor varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL,\n-\t\t\tbg_color varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL,\n-\t\t\tload_order int(11) NOT NULL DEFAULT '1',\n-\t\t\tPRIMARY KEY  (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_task_priorities (\n-\t\t\tid bigint(20) NOT NULL AUTO_INCREMENT,\n-\t\t\tname varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL,\n-\t\t\tcolor varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL,\n-\t\t\tbg_color varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL,\n-\t\t\tload_order int(11) NOT NULL DEFAULT '1',\n-\t\t\tPRIMARY KEY  (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_task (\n-\t\t\tid integer NOT NULL AUTO_INCREMENT,\n-\t\t\tcreated_by integer,\n-\t\t\ttask_name VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n-\t\t\tdescription LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n-\t\t\tproject integer,\n-\t\t\tstart_date datetime,\n-\t\t\tend_date datetime,\n-\t\t\tstatus integer,\n-\t\t\tpriority integer,\n-\t\t\tusers VARCHAR( 200 ) NULL DEFAULT '0',\n-\t\t\tdate_created datetime,\n-\t\t\ttask_auth_code LONGTEXT NULL DEFAULT NULL,\n-\t\t\tactive int(11) DEFAULT 1,\n-\t\t\tPRIMARY KEY  (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_task_meta (\n-\t\t\tid integer NOT NULL AUTO_INCREMENT,\n-\t\t\ttask_id integer,\n-\t\t\tmeta_key LONGTEXT NULL DEFAULT NULL,\n-\t\t\tmeta_value LONGTEXT NULL DEFAULT NULL,\n-\t\t\tPRIMARY KEY  (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_checklist (\n-\t\t\tid integer NOT NULL AUTO_INCREMENT,\n-\t\t\ttask_id integer,\n-\t\t\tchecklist_name VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n-\t\t\tcreated_by integer,\n-\t\t\tPRIMARY KEY  (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_checklist_items (\n-\t\t\tid integer NOT NULL AUTO_INCREMENT,\n-\t\t\tchecklist_id integer,\n-\t\t\titem_name VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n-\t\t\tchecked integer,\n-\t\t\tmembers VARCHAR( 200 ) NULL DEFAULT '0',\n-\t\t\tdue_date datetime,\n-\t\t\tPRIMARY KEY  (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_task_comment (\n-\t\t\tid integer NOT NULL AUTO_INCREMENT,\n-\t\t\ttask_id integer,\n-\t\t\tbody LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n-\t\t\tattachment_ids TINYTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n-\t\t\tcreate_time datetime,\n-\t\t\tcreated_by integer,\n-\t\t\tPRIMARY KEY  (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project_comment (\n-\t\t\tid integer NOT NULL AUTO_INCREMENT,\n-\t\t\tproj_id integer,\n-\t\t\tbody LONGTEXT NULL DEFAULT NULL,\n-\t\t\tattachment_ids TINYTEXT NULL DEFAULT NULL,\n-\t\t\tcreate_time datetime,\n-\t\t\tcreated_by integer,\n-\t\t\tPRIMARY KEY  (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_attachments (\n-\t\t\tid BIGINT NOT NULL AUTO_INCREMENT,\n-\t\t\tname VARCHAR(200) NOT NULL,\n-\t\t\tfile_name VARCHAR(200) NOT NULL,\n-\t\t\tfile_path VARCHAR(500) NOT NULL,\n-\t\t\tis_image INT(1) NOT NULL DEFAULT 0,\n-\t\t\tis_active INT(1) NOT NULL DEFAULT 0,\n-\t\t\tis_uploaded INT(1) NOT NULL DEFAULT 0,\n-\t\t\tdate_created DATETIME NOT NULL,\n-\t\t\tPRIMARY KEY (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project_users (\n-\t\t\tid BIGINT NOT NULL AUTO_INCREMENT,\n-\t\t\tproj_id integer,\n-\t\t\tuser_id integer,\n-\t\t\trole_id integer,\n-\t\t\tassigned_by integer,\n-\t\t\tPRIMARY KEY (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project_comment_meta (\n-\t\t\tid BIGINT NOT NULL AUTO_INCREMENT,\n-\t\t\tproj_id integer,\n-\t\t\tcomment_id integer,\n-\t\t\tcomment_type VARCHAR(200) NOT NULL,\n-\t\t\tPRIMARY KEY (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\n-\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_task_comment_meta (\n-\t\t\tid BIGINT NOT NULL AUTO_INCREMENT,\n-\t\t\ttask_id integer,\n-\t\t\tcomment_id integer,\n-\t\t\tcomment_type VARCHAR(200) NOT NULL,\n-\t\t\tPRIMARY KEY (id)\n-\t\t);\";\n-\t\tdbDelta( $sql );\t\n-\t}\n-\n-\tpublic function upgrade(){\n-\t\tglobal $wpdb;\n-\t\t$installed_version = get_option( 'wppm_version' );\n-\t\t$installed_version = $installed_version ? $installed_version : 0;\n-\t\tif($installed_version \u003C '1.0.0'){\n-\t\t\t\u002F\u002FUser Roles\n-\t\t\t$user_role = get_option('wppm_user_role');\n-\t\t\tif(empty($user_role)){\n-\t\t\t\t$user_role = array(\n-\t\t\t\t\t1 => array(\n-\t\t\t\t\t\t'label' => esc_html__('manager','taskbuilder'),\n-\t\t\t\t\t),\n-\t\t\t\t\t2 => array(\n-\t\t\t\t\t\t'label' => esc_html__('co-worker','taskbuilder'),\n-\t\t\t\t\t)\n-\t\t\t\t);\n-\t\t\t\tupdate_option('wppm_user_role',$user_role);\n-\t\t\t}\n-\n-\t\t\t$wppm_email_notificatins = get_option('wppm_email_notification');\n-\t\t\tif(empty($wppm_email_notificatins)){\n-\t\t\t\t$wppm_email_notificatins = array(\n-\t\t\t\t\t1=>array(\n-\t\t\t\t\t\t'type'=>'new_project',\n-\t\t\t\t\t\t'subject'=>esc_html__('New project has been created:{project_name}','taskbuilder'),\n-\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> assigned project to you.\u003C\u002Fp> \u003Cp>Below are details of the project :\u003C\u002Fp>\u003Cp>\u003Cstrong> Assign to:-\u003C\u002Fstrong>{project_assigned_users}\u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002Fstrong>{project_start_date} \u003C\u002Fp>\u003Cp> \u003Cstrong> End Date:- \u003C\u002Fstrong> {project_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002Fstrong>{project_description}\u003C\u002Fp>','taskbuilder'),\n-\t\t\t\t\t\t'recipients'=>array(1,2)\n-\t\t\t\t\t),\n-\t\t\t\t\t2=>array(\n-\t\t\t\t\t\t'type'=>'new_task',\n-\t\t\t\t\t\t'subject'=>esc_html__('New task has been created: {task_name}','taskbuilder'),\n-\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> assigned task to you.\u003C\u002Fp>\u003Cp>Below are details of the task :\u003C\u002Fp> \u003Cp>\u003Cstrong>Assign to:-\u003C\u002Fstrong>{task_assigned_users} \u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002Fstrong>{task_start_date}\u003C\u002Fp>\u003Cp>\u003Cstrong>End Date:-\u003C\u002Fstrong>{task_end_date} \u003C\u002Fp>\u003Cp> \u003Cstrong>Description:-\u003C\u002Fstrong>{task_description}\u003C\u002Fp>','taskbuilder'),\n-\t\t\t\t\t\t'recipients'=>array(1,2)\n-\t\t\t\t\t),\n-\t\t\t\t\t3=>array(\n-\t\t\t\t\t\t'type'=>'change_project_status',\n-\t\t\t\t\t\t'subject'=>esc_html__('{project_name} Project\\'s status has been changed from {old_project_status} to {new_project_status}','taskbuilder'),\n-\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed project\\'s status to \u003Cstrong>{new_project_status}\u003C\u002Fstrong> \u003C\u002Fp> \u003Cp>Below are details of the project:\u003C\u002Fp>\u003Cp>\u003Cstrong>Assign to:- \u003C\u002Fstrong> {project_assigned_users}\u003C\u002Fp>\u003Cp>\u003Cstrong>Start Date:-\u003C\u002Fstrong>{project_start_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>End Date:-\u003C\u002Fstrong>{project_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002Fstrong>{project_description}\u003C\u002Fp>','taskbuilder'),\n-\t\t\t\t\t\t'recipients'=>array(1,2)\n-\t\t\t\t\t),\n-\t\t\t\t\t4=>array(\n-\t\t\t\t\t\t'type'=>'change_task_status',\n-\t\t\t\t\t\t'subject'=>esc_html__('{task_name} Task\\'s status has been changed from {old_task_status} to {new_task_status}','taskbuilder'),\n-\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed task status to \u003Cstrong>{new_task_status} \u003C\u002Fstrong>\u003Cp> Below are details of the task:\u003C\u002Fp> \u003Cp>\u003Cstrong>Assign to:-\u003C\u002Fstrong>{task_assigned_users} \u003C\u002Fp> \u003Cp>\u003Cstrong>Start Date:-\u003C\u002Fstrong>{task_start_date}\u003C\u002Fp>\u003Cp>\u003Cstrong>End Date:-\u003C\u002Fstrong>{task_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002Fstrong>{task_description}\u003C\u002Fp>','taskbuilder'),\n-\t\t\t\t\t\t'recipients'=>array(1,2)\n-\t\t\t\t\t),\n-\t\t\t\t\t5=>array(\n-\t\t\t\t\t\t'type'=>'change_project_assign_users',\n-\t\t\t\t\t\t'subject'=>esc_html__('{project_name} Project\\'s assigned users changed from {previously_assigned_project_users} to {project_assigned_users}','taskbuilder'),\n-\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed project\\'s assign users to \u003Cstrong> {project_assigned_users}\u003C\u002Fstrong>\u003C\u002Fp> \u003Cp>Below are details of the project :\u003C\u002Fp>\u003Cp>\u003Cstrong> Assign to:-\u003C\u002Fstrong>{project_assigned_users}\u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002Fstrong>{project_start_date} \u003C\u002Fp>\u003Cp> \u003Cstrong> End Date:- \u003C\u002Fstrong> {project_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002Fstrong>{project_description}\u003C\u002Fp>','taskbuilder'),\n-\t\t\t\t\t\t'recipients'=>array(1,2)\n-\t\t\t\t\t),\n-\t\t\t\t\t6=>array(\n-\t\t\t\t\t\t'type'=>'change_task_assign_users',\n-\t\t\t\t\t\t'subject'=>esc_html__('{task_name} Task\\'s assigned users change from {previously_assigned_task_users} to {task_assigned_users}','taskbuilder'),\n-\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed task\\'s assign users to \u003Cstrong>{task_assigned_users}\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Below are details of the task :\u003C\u002Fp> \u003Cp>\u003Cstrong>Assign to:-\u003C\u002Fstrong>{task_assigned_users} \u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002Fstrong>{task_start_date}\u003C\u002Fp>\u003Cp>\u003Cstrong>End Date:-\u003C\u002Fstrong>{task_end_date} \u003C\u002Fp>\u003Cp> \u003Cstrong>Description:-\u003C\u002Fstrong>{task_description}\u003C\u002Fp>','taskbuilder'),\n-\t\t\t\t\t\t'recipients'=>array(1,2)\n-\t\t\t\t\t),\n-\t\t\t\t\t7=>array(\n-\t\t\t\t\t\t'type'=>'new_discussion',\n-\t\t\t\t\t\t'subject'=>esc_html__('[{project_name}][{task_name}] {last_comment_user_name} started new discussion:','taskbuilder'),\n-\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{last_comment_user_name}\u003C\u002Fstrong> wrote:\u003C\u002Fp> \u003Cp>{comment_body}\u003C\u002Fp>','taskbuilder'),\n-\t\t\t\t\t\t'recipients'=>array(1,2)\n-\t\t\t\t\t)\n-\t\t\t\t);\n-\t\t\t\tupdate_option('wppm_email_notification',$wppm_email_notificatins);\n-\t\t\t}\n-\n-\t\t\tupdate_option('wppm_default_task_list_view',1);\n-\n-\t\t\t$default_statuses = $wpdb->get_var(\"select count(*) from {$wpdb->prefix}wppm_project_statuses\");\n-\t\t\tif (empty($default_statuses)) {\n-\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_project_statuses\", array('id' => 1,'name' => esc_html__('New','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#306EFF','load_order'=>1));\n-\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_project_statuses\", array('id' => 2,'name' => esc_html__('In Progress','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#FCD12A','load_order'=>2));\n-\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_project_statuses\", array('id' => 3,'name' => esc_html__('Hold','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#D3D3D3','load_order'=>3));\n-\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_project_statuses\", array('id' => 4,'name' => esc_html__('Completed','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#5cb85c','load_order'=>4));\n-\t\t\t}\n-\t\t\t$wppm_default_project_status = get_option('wppm_default_project_status',true);\n-\t\t\tif($wppm_default_project_status == ''){\n-\t\t\t\tupdate_option('wppm_default_project_status',1);\n-\t\t\t}\n-\t\t\t$default_task_statuses = $wpdb->get_var(\"select count(*) from {$wpdb->prefix}wppm_task_statuses\");\n-\t\t\tif (empty($default_task_statuses)) {\n-\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_task_statuses\",array('id' => 1,'name' => esc_html__('Todo','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#306EFF','load_order'=>1));\n-\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_task_statuses\",array('id' => 2,'name' => esc_html__('In Progress','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#FCD12A','load_order'=>2));\n-\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_task_statuses\",array('id' => 3,'name' => esc_html__('Hold','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#D3D3D3','load_order'=>3));\n-\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_task_statuses\",array('id' => 4,'name' => esc_html__('Completed','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#5cb85c','load_order'=>4));\n-\t\t\t}\n-\t\t\t$wppm_default_task_status = get_option('wppm_default_task_status',true);\n-\t\t\tif($wppm_default_task_status == ''){\n-\t\t\t\tupdate_option('wppm_default_task_status',1);\n-\t\t\t}\n-\t\t}\n-\t\tif($installed_version \u003C '1.0.2'){\n-\t\t\tupdate_option('wppm_project_time', 1);\n-\t\t}\n-\t\tif($installed_version \u003C '2.0.0'){\n-\t\t\tupdate_option('wppm_default_project_date', 1);\n-\t\t\tupdate_option('wppm_default_task_date', 1);\n-\t\t}\n-\t\tif($installed_version \u003C '2.0.2'){\n-\t\t\tupdate_option('wppm_default_edit_tasks_permission', 0);\n-\t\t}\n-\t\tif($installed_version \u003C '2.0.4'){\n-\t\t\tupdate_option('wppm_public_projects_permission',0);\n-\t\t}\n-\t\tif($installed_version \u003C '2.0.8'){\n-\t\t\tupdate_option('wppm_task_time',1);\n-\t\t}\n-\t\tif($installed_version \u003C '3.0.0'){\n-\t\t\t$wppm_email_notificatins = get_option('wppm_email_notification');\n-\t\t\tif(!empty($wppm_email_notificatins) && !isset($wppm_email_notificatins[8])){\n-\t\t\t\t$wppm_email_notificatins[8] = array(\n-\t\t\t\t\t'type'=>'new_proj_discussion',\n-\t\t\t\t\t'subject'=>esc_html__('[{project_name}] {last_proj_comment_user_name} started new discussion:','taskbuilder'),\n-\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{last_proj_comment_user_name}\u003C\u002Fstrong> wrote:\u003C\u002Fp> \u003Cp>{proj_comment_body}\u003C\u002Fp>','taskbuilder'),\n-\t\t\t\t\t'recipients'=>array(1,2)\n-\t\t\t\t);\n-\t\t\t\tupdate_option('wppm_email_notification',$wppm_email_notificatins);\n-\t\t\t}\n-\t\t\tupdate_option(\n-\t\t\t\t'wppm-ap-project-list',\n-\t\t\t\tarray(\n-\t\t\t\t\t'list-header-background-color'     => '#304FFE',\n-\t\t\t\t\t'list-header-text-color'           => '#fff',\n-\t\t\t\t\t'list-item-odd-background-color'   => '#fff',\n-\t\t\t\t\t'list-item-odd-text-color'         => '#2C3E50',\n-\t\t\t\t\t'list-item-even-background-color'  => '#F2F2F2',\n-\t\t\t\t\t'list-item-even-text-color'        => '#2C3E50',\n-\t\t\t\t\t'list-item-hover-background-color' => '#F5F5F5',\n-\t\t\t\t\t'list-item-hover-text-color'       => '#2C3E50'\n-\t\t\t\t)\n-\t\t\t);\n-\t\t\tupdate_option(\n-\t\t\t\t'wppm-ap-task-list',\n-\t\t\t\tarray(\n-\t\t\t\t\t'list-header-button-background-color'=>'#0052CC',\n-\t\t\t\t\t'list-header-button-hover-color'\t=>'#0065ff',\n-\t\t\t\t\t'list-header-button-text-color'\t\t=>'#fff',\n-\t\t\t\t\t'list-header-background-color'     => '#304FFE',\n-\t\t\t\t\t'list-header-text-color'           => '#fff',\n-\t\t\t\t\t'list-item-odd-background-color'   => '#fff',\n-\t\t\t\t\t'list-item-odd-text-color'         => '#2C3E50',\n-\t\t\t\t\t'list-item-even-background-color'  => '#F2F2F2',\n-\t\t\t\t\t'list-item-even-text-color'        => '#2C3E50',\n-\t\t\t\t\t'list-item-hover-background-color' => '#F5F5F5',\n-\t\t\t\t\t'list-item-hover-text-color'       => '#2C3E50',\n-\t\t\t\t)\n-\t\t\t);\n-\t\t\tupdate_option(\n-\t\t\t\t'wppm-ap-individual-project',\n-\t\t\t\tarray(\n-\t\t\t\t\t'menu-button-bg-color'\t\t=>'#0052CC',\n-\t\t\t\t\t'menu-button-hover-color'\t=>'#0065ff',\n-\t\t\t\t\t'menu-button-text-color'\t=>'#fff',\n-\t\t\t\t\t'comment-primary-color'      => '#000000',\n-\t\t\t\t\t'comment-secondary-color'    => '#4e4e4e',\n-\t\t\t\t\t'comment-date-color'         => '#a8aeb5',\n-\t\t\t\t\t'comment-date-hover-color'   => '#000000',\n-\t\t\t\t\t'comment-send-btn-bg-color'  => '#5067c5',\n-\t\t\t\t\t'comment-send-btn-color'  =>\t'#ffffff',\n-\t\t\t\t\t'widget-header-bg-color'   => '#ffffff',\n-\t\t\t\t\t'widget-header-text-color' => '#2C3E50',\n-\t\t\t\t\t'widget-body-bg-color'     => '#ffffff',\n-\t\t\t\t\t'widget-body-label-color'  => '#9c9c9c',\n-\t\t\t\t\t'widget-body-text-color'   => '#2C3E50',\n-\t\t\t\t)\n-\t\t\t);\n-\t\t\tupdate_option(\n-\t\t\t\t'wppm-ap-individual-task',\n-\t\t\t\tarray(\n-\t\t\t\t\t'comment-primary-color'      => '#000000',\n-\t\t\t\t\t'comment-secondary-color'    => '#4e4e4e',\n-\t\t\t\t\t'comment-date-color'         => '#a8aeb5',\n-\t\t\t\t\t'comment-date-hover-color'   => '#000000',\n-\t\t\t\t\t'comment-send-btn-bg-color'  => '#5067c5',\n-\t\t\t\t\t'comment-send-btn-color'  =>\t'#ffffff',\n-\t\t\t\t\t'widget-header-bg-color'   => '#ffffff',\n-\t\t\t\t\t'widget-header-text-color' => '#2C3E50',\n-\t\t\t\t\t'widget-body-bg-color'     => '#ffffff',\n-\t\t\t\t\t'widget-body-label-color'  => '#9c9c9c',\n-\t\t\t\t\t'widget-body-text-color'   => '#2C3E50',\n-\t\t\t\t)\n-\t\t\t);\n-\t\t\tupdate_option(\n-\t\t\t\t'wppm-ap-modal',\n-\t\t\t\tarray(\n-\t\t\t\t\t'header-bg-color'   => '#ffffff',\n-\t\t\t\t\t'header-text-color' => '#3c434a',\n-\t\t\t\t\t'body-bg-color'     => '#fff',\n-\t\t\t\t\t'body-label-color'  => '#3c434a',\n-\t\t\t\t\t'body-text-color'   => '#555',\n-\t\t\t\t\t'footer-bg-color'   => '#F6F6F6',\n-\t\t\t\t\t'action-btn-bg-color' =>'#306EFF',\n-\t\t\t\t\t'action-btn-text-color'=>'#fff',\n-\t\t\t\t\t'z-index'           => 900000000,\n-\t\t\t\t)\n-\t\t\t);\n-\t\t\tupdate_option(\n-\t\t\t\t'wppm-ap-grid-view',\n-\t\t\t\tarray(\n-\t\t\t\t\t'menu-button-bg-color'\t\t=>'#0052CC',\n-\t\t\t\t\t'menu-button-hover-color'\t=>'#0065ff',\n-\t\t\t\t\t'menu-button-text-color'\t=>'#fff',\n-\t\t\t\t\t'grid-background-color'     => '#fff',\n-\t\t\t\t\t'grid-header-text-color'    => '#2C3E50'\n-\t\t\t\t)\n-\t\t\t);\n-\t\t\tupdate_option(\n-\t\t\t\t'wppm-ap-settings',\n-\t\t\t\tarray(\n-\t\t\t\t\t'tab-background-color'     => '#0052CC',\n-\t\t\t\t\t'tab-text-color'    => '#fff',\n-\t\t\t\t\t'add-new-button-bg-color'\t=>'#0052CC',\n-\t\t\t\t\t'add-new-button-text-color' =>'#fff',\n-\t\t\t\t\t'add-new-button-hover-color'=>'#0065ff',\n-\t\t\t\t\t'save-changes-button-bg-color'=>'#306EFF',\n-\t\t\t\t\t'save-changes-button-text-color'=>'#fff'\n-\t\t\t\t)\n-\t\t\t);\n-\t\t}\n-\t\tif($installed_version \u003C '3.0.1'){\n-\t\t\tupdate_option('wppm_default_project_status', 1);\n-\t\t\tupdate_option('wppm_default_task_status', 1);\n-\t\t}\n-\t\tif($installed_version \u003C '3.0.5'){\n-\t\t\tupdate_option('wppm_tinymce_visibility_open_task',0);\n-\t\t\tupdate_option('wppm_tinymce_visibility_open_project',0);\n-\t\t\tupdate_option('wppm_default_email_notification_to_current_user', 1);\n-\t\t}\n-\t\tif($installed_version \u003C '3.0.6'){\n-\t\t\tupdate_option('wppm_allow_coworkers_create_task',1);\n-\t\t\tupdate_option('wppm_allow_coworkers_add_checklist',1);\n-\t\t\tupdate_option('wppm_allow_coworkers_assign_users', 0);\n-\t\t\tupdate_option('wppm_allow_coworkers_change_status', 1);\n-\t\t}\n-\t\tif($installed_version \u003C '3.0.9'){\n-\t\t\tupdate_option('wppm_rich_text_editor',1);\n-\t\t\tupdate_option(\n-\t\t\t\t'wppm_toolbar_actions',\n-\t\t\t\tarray(\n-\t\t\t\t\t'bold'     => '1',\n-\t\t\t\t\t'italic'    => '1',\n-\t\t\t\t\t'underline'\t=>'1',\n-\t\t\t\t\t'blockquote' =>'1',\n-\t\t\t\t\t'align'=>'1',\n-\t\t\t\t\t'bullist'=>'1',\n-\t\t\t\t\t'numlist'=>'1',\n-\t\t\t\t\t'rtl'=>'1',\n-\t\t\t\t\t'link'=>'1',\n-\t\t\t\t\t'wppm_insert_editor_img'=>'1',\n-\t\t\t\t\t'forecolor'=>'0',\n-\t\t\t\t\t'backcolor' => '0',\n-\t\t\t\t\t'strikethrough' => '0'\n-\t\t\t\t)\n-\t\t\t);\n-\t\t}\n-\n-\t\tif($installed_version \u003C '4.0.0'){\n-\t\t\tupdate_option(\n-\t\t\t\t'wppm-page-settings',\n-\t\t\t\tarray(\n-\t\t\t\t\t'task-url-page'            => 0,\n-\t\t\t\t\t'project-url-page'          => 0\n-\t\t\t\t)\n-\t\t\t);\n-\t\t}\n-\n-\t\tif($installed_version \u003C '4.0.4'){\n-\t\t\tupdate_option('wppm_date_setting','Y-m-d h:i:sa');\n-\t\t}\n-\n-\t\tif($installed_version \u003C '4.0.5'){\n-\t\t\tupdate_option('wppm_hide_completed_status_proj','1');\n-\t\t\tupdate_option('wppm_hide_completed_status_task','1');\n-\t\t\tupdate_option('wppm_hide_proj_statuses_from_frontend','0');\n-\t\t\tupdate_option('wppm_hide_task_statuses_from_frontend','0');\n-\t\t\tupdate_option('wppm_proj_hide_comment_section','1');\n-\t\t\tupdate_option('wppm_task_hide_comment_section','1');\n-\t\t}\n-\n-\t\tif($installed_version \u003C '5.0.0'){\n-\t\t\t$wppm_print_settings = array(\n-\t\t\t'wppm_print_body_font_size' => 10);\n-\t\t\tupdate_option('wppm_print_settings',$wppm_print_settings);\n-\t\t}\n-\t\tif($installed_version \u003C '5.0.2'){\n-\t\t\t$table_name  = $wpdb->prefix . 'wppm_checklist_items';\n-\t\t\t$column_name = 'load_order';\n-\t\t\t$column_type = 'INT(11) NOT NULL DEFAULT 1';\n-\n-\t\t\t$column_exists = $wpdb->get_var(\n-\t\t\t\t$wpdb->prepare(\n-\t\t\t\t\t\"SHOW COLUMNS FROM `$table_name` LIKE %s\",\n-\t\t\t\t\t$column_name\n-\t\t\t\t)\n-\t\t\t);\n-\n-\t\t\tif ( null === $column_exists ) {\n-\n-\t\t\t\t\u002F\u002F Column name and type are hardcoded, not user input.\n-\t\t\t\t\u002F\u002F phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared\n-\t\t\t\t$wpdb->query(\n-\t\t\t\t\t\"ALTER TABLE `$table_name`\n-\t\t\t\t\tADD `$column_name` $column_type\"\n-\t\t\t\t);\n-\t\t\t}\n-\t\t\t$table_name = $wpdb->prefix . 'wppm_task';\n-\t\t\t$cl_name    = 'is_archived';\n-\t\t\t$cl_type    = 'TINYINT(1) DEFAULT 0';\n-\n-\t\t\t$cl_exists = $wpdb->get_var(\n-\t\t\t\t$wpdb->prepare(\n-\t\t\t\t\t\"SHOW COLUMNS FROM `$table_name` LIKE %s\",\n-\t\t\t\t\t$cl_name\n-\t\t\t\t)\n-\t\t\t);\n-\n-\t\t\tif ( null === $cl_exists ) {\n-\n-\t\t\t\t$sql = sprintf(\n-\t\t\t\t\t'ALTER TABLE `%s` ADD `%s` %s',\n-\t\t\t\t\t$table_name,\n-\t\t\t\t\t$cl_name,\n-\t\t\t\t\t$cl_type\n-\t\t\t\t);\n-\n-\t\t\t\t\u002F\u002F phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- Safe: identifiers are hardcoded.\n-\t\t\t\t$wpdb->query( $sql );\n-\t\t\t}\n-\t\t}\n-\t\tif($installed_version \u003C '5.0.3'){\n-\t\t\tupdate_option('wppm_display_time_duration_project',0);\n-\t\t\tupdate_option('wppm_display_time_duration_task',0);\n-\n-\t\t}\n-\t\tif($installed_version \u003C '5.0.6'){\n-\t\t\tupdate_option('wppm_show_update_notice', 1);\n-\t\t\t$user_role = get_option('wppm_user_role');\n-\t\t\tif (!isset($user_role[3])) {\n-\t\t\t\t$user_role[3] = array(\n-\t\t\t\t\t'label' => esc_html__('Client', 'taskbuilder'),\n-\t\t\t\t);\n-\t\t\t}\n-\t\t\tupdate_option('wppm_user_role', $user_role);\n-\t\t}\n-\t\t\u002F\u002F update wppm_version option to plugin version\n-\t\tupdate_option( 'wppm_version', WPPM_VERSION );\n-\t}\n-}\n-\n-endif;\n-\n+\u003C?php \r\n+if ( ! defined( 'ABSPATH' ) ) exit; \u002F\u002F Exit if accessed directly\r\n+\r\n+if ( ! class_exists( 'WPPM_Install' ) ) :\r\n+\r\n+final class WPPM_Install {\r\n+\tpublic function __construct() {\r\n+\t\t$this->check_version();\r\n+\t}\r\n+\t\u002F**\r\n+     * Check version of Taskbuilder\r\n+     *\u002F\r\n+    public function check_version(){\r\n+\t\t$installed_version = get_option( 'wppm_version' );\r\n+        if( $installed_version != WPPM_VERSION ){\r\n+          \t$this->create_db_tables();\r\n+\t\t\tadd_action( 'init', array($this,'upgrade'), 101 );\r\n+        }\r\n+\t}\r\n+\t\u002F**** Create mysql tables****\u002F\r\n+\tpublic function create_db_tables() {\r\n+\t\tglobal $wpdb;\r\n+\t\trequire_once( ABSPATH . 'wp-admin\u002Fincludes\u002Fupgrade.php' );\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project (\r\n+\t\t\tid integer NOT NULL AUTO_INCREMENT,\r\n+\t\t\tcreated_by integer,\r\n+\t\t\tproject_name VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\r\n+\t\t\tdescription LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\r\n+\t\t\tstart_date datetime,\r\n+\t\t\tend_date datetime,\r\n+\t\t\tstatus integer,\r\n+\t\t\tcat_id integer,\r\n+\t\t\tusers VARCHAR( 200 ) NULL DEFAULT '0',\r\n+\t\t\tdate_created datetime,\r\n+\t\t\tPRIMARY KEY  (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project_meta (\r\n+\t\t\tid integer NOT NULL AUTO_INCREMENT,\r\n+\t\t\tproject_id integer,\r\n+\t\t\tmeta_key LONGTEXT NULL DEFAULT NULL,\r\n+\t\t\tmeta_value LONGTEXT NULL DEFAULT NULL,\r\n+\t\t\tPRIMARY KEY  (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\t\t\t\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project_categories (\r\n+\t\t\tid integer NOT NULL AUTO_INCREMENT,\r\n+\t\t\tname TINYTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\r\n+\t\t\tload_order int(11) NOT NULL DEFAULT '1',\r\n+\t\t\tPRIMARY KEY  (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project_statuses (\r\n+\t\t\tid bigint(20) NOT NULL AUTO_INCREMENT,\r\n+\t\t\tname varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL,\r\n+\t\t\tcolor varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL,\r\n+\t\t\tbg_color varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL,\r\n+\t\t\tload_order int(11) NOT NULL DEFAULT '1',\r\n+\t\t\tPRIMARY KEY  (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_task_statuses (\r\n+\t\t\tid bigint(20) NOT NULL AUTO_INCREMENT,\r\n+\t\t\tname varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL,\r\n+\t\t\tcolor varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL,\r\n+\t\t\tbg_color varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL,\r\n+\t\t\tload_order int(11) NOT NULL DEFAULT '1',\r\n+\t\t\tPRIMARY KEY  (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_task_priorities (\r\n+\t\t\tid bigint(20) NOT NULL AUTO_INCREMENT,\r\n+\t\t\tname varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL,\r\n+\t\t\tcolor varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL,\r\n+\t\t\tbg_color varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL,\r\n+\t\t\tload_order int(11) NOT NULL DEFAULT '1',\r\n+\t\t\tPRIMARY KEY  (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_task (\r\n+\t\t\tid integer NOT NULL AUTO_INCREMENT,\r\n+\t\t\tcreated_by integer,\r\n+\t\t\ttask_name VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\r\n+\t\t\tdescription LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\r\n+\t\t\tproject integer,\r\n+\t\t\tstart_date datetime,\r\n+\t\t\tend_date datetime,\r\n+\t\t\tstatus integer,\r\n+\t\t\tpriority integer,\r\n+\t\t\tusers VARCHAR( 200 ) NULL DEFAULT '0',\r\n+\t\t\tdate_created datetime,\r\n+\t\t\ttask_auth_code LONGTEXT NULL DEFAULT NULL,\r\n+\t\t\tactive int(11) DEFAULT 1,\r\n+\t\t\tPRIMARY KEY  (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_task_meta (\r\n+\t\t\tid integer NOT NULL AUTO_INCREMENT,\r\n+\t\t\ttask_id integer,\r\n+\t\t\tmeta_key LONGTEXT NULL DEFAULT NULL,\r\n+\t\t\tmeta_value LONGTEXT NULL DEFAULT NULL,\r\n+\t\t\tPRIMARY KEY  (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_checklist (\r\n+\t\t\tid integer NOT NULL AUTO_INCREMENT,\r\n+\t\t\ttask_id integer,\r\n+\t\t\tchecklist_name VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\r\n+\t\t\tcreated_by integer,\r\n+\t\t\tPRIMARY KEY  (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_checklist_items (\r\n+\t\t\tid integer NOT NULL AUTO_INCREMENT,\r\n+\t\t\tchecklist_id integer,\r\n+\t\t\titem_name VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\r\n+\t\t\tchecked integer,\r\n+\t\t\tmembers VARCHAR( 200 ) NULL DEFAULT '0',\r\n+\t\t\tdue_date datetime,\r\n+\t\t\tPRIMARY KEY  (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_task_comment (\r\n+\t\t\tid integer NOT NULL AUTO_INCREMENT,\r\n+\t\t\ttask_id integer,\r\n+\t\t\tbody LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\r\n+\t\t\tattachment_ids TINYTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\r\n+\t\t\tcreate_time datetime,\r\n+\t\t\tcreated_by integer,\r\n+\t\t\tPRIMARY KEY  (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project_comment (\r\n+\t\t\tid integer NOT NULL AUTO_INCREMENT,\r\n+\t\t\tproj_id integer,\r\n+\t\t\tbody LONGTEXT NULL DEFAULT NULL,\r\n+\t\t\tattachment_ids TINYTEXT NULL DEFAULT NULL,\r\n+\t\t\tcreate_time datetime,\r\n+\t\t\tcreated_by integer,\r\n+\t\t\tPRIMARY KEY  (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_attachments (\r\n+\t\t\tid BIGINT NOT NULL AUTO_INCREMENT,\r\n+\t\t\tname VARCHAR(200) NOT NULL,\r\n+\t\t\tfile_name VARCHAR(200) NOT NULL,\r\n+\t\t\tfile_path VARCHAR(500) NOT NULL,\r\n+\t\t\tis_image INT(1) NOT NULL DEFAULT 0,\r\n+\t\t\tis_active INT(1) NOT NULL DEFAULT 0,\r\n+\t\t\tis_uploaded INT(1) NOT NULL DEFAULT 0,\r\n+\t\t\tdate_created DATETIME NOT NULL,\r\n+\t\t\tPRIMARY KEY (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project_users (\r\n+\t\t\tid BIGINT NOT NULL AUTO_INCREMENT,\r\n+\t\t\tproj_id integer,\r\n+\t\t\tuser_id integer,\r\n+\t\t\trole_id integer,\r\n+\t\t\tassigned_by integer,\r\n+\t\t\tPRIMARY KEY (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_project_comment_meta (\r\n+\t\t\tid BIGINT NOT NULL AUTO_INCREMENT,\r\n+\t\t\tproj_id integer,\r\n+\t\t\tcomment_id integer,\r\n+\t\t\tcomment_type VARCHAR(200) NOT NULL,\r\n+\t\t\tPRIMARY KEY (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\r\n+\t\t$sql = \"CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wppm_task_comment_meta (\r\n+\t\t\tid BIGINT NOT NULL AUTO_INCREMENT,\r\n+\t\t\ttask_id integer,\r\n+\t\t\tcomment_id integer,\r\n+\t\t\tcomment_type VARCHAR(200) NOT NULL,\r\n+\t\t\tPRIMARY KEY (id)\r\n+\t\t);\";\r\n+\t\tdbDelta( $sql );\t\r\n+\t}\r\n+\r\n+\tpublic function upgrade(){\r\n+\t\tglobal $wpdb;\r\n+\t\t$installed_version = get_option( 'wppm_version' );\r\n+\t\t$installed_version = $installed_version ? $installed_version : 0;\r\n+\t\tif($installed_version \u003C '1.0.0'){\r\n+\t\t\t\u002F\u002FUser Roles\r\n+\t\t\t$user_role = get_option('wppm_user_role');\r\n+\t\t\tif(empty($user_role)){\r\n+\t\t\t\t$user_role = array(\r\n+\t\t\t\t\t1 => array(\r\n+\t\t\t\t\t\t'label' => esc_html__('manager','taskbuilder'),\r\n+\t\t\t\t\t),\r\n+\t\t\t\t\t2 => array(\r\n+\t\t\t\t\t\t'label' => esc_html__('co-worker','taskbuilder'),\r\n+\t\t\t\t\t)\r\n+\t\t\t\t);\r\n+\t\t\t\tupdate_option('wppm_user_role',$user_role);\r\n+\t\t\t}\r\n+\r\n+\t\t\t$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+\t\t\tif(empty($wppm_email_notificatins)){\r\n+\t\t\t\t$wppm_email_notificatins = array(\r\n+\t\t\t\t\t1=>array(\r\n+\t\t\t\t\t\t'type'=>'new_project',\r\n+\t\t\t\t\t\t'subject'=>esc_html__('New project has been created:{project_name}','taskbuilder'),\r\n+\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> assigned project to you.\u003C\u002Fp> \u003Cp>Below are details of the project :\u003C\u002Fp>\u003Cp>\u003Cstrong> Assign to:-\u003C\u002Fstrong>{project_assigned_users}\u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002Fstrong>{project_start_date} \u003C\u002Fp>\u003Cp> \u003Cstrong> End Date:- \u003C\u002Fstrong> {project_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002Fstrong>{project_description}\u003C\u002Fp>','taskbuilder'),\r\n+\t\t\t\t\t\t'recipients'=>array(1,2)\r\n+\t\t\t\t\t),\r\n+\t\t\t\t\t2=>array(\r\n+\t\t\t\t\t\t'type'=>'new_task',\r\n+\t\t\t\t\t\t'subject'=>esc_html__('New task has been created: {task_name}','taskbuilder'),\r\n+\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> assigned task to you.\u003C\u002Fp>\u003Cp>Below are details of the task :\u003C\u002Fp> \u003Cp>\u003Cstrong>Assign to:-\u003C\u002Fstrong>{task_assigned_users} \u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002Fstrong>{task_start_date}\u003C\u002Fp>\u003Cp>\u003Cstrong>End Date:-\u003C\u002Fstrong>{task_end_date} \u003C\u002Fp>\u003Cp> \u003Cstrong>Description:-\u003C\u002Fstrong>{task_description}\u003C\u002Fp>','taskbuilder'),\r\n+\t\t\t\t\t\t'recipients'=>array(1,2)\r\n+\t\t\t\t\t),\r\n+\t\t\t\t\t3=>array(\r\n+\t\t\t\t\t\t'type'=>'change_project_status',\r\n+\t\t\t\t\t\t'subject'=>esc_html__('{project_name} Project\\'s status has been changed from {old_project_status} to {new_project_status}','taskbuilder'),\r\n+\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed project\\'s status to \u003Cstrong>{new_project_status}\u003C\u002Fstrong> \u003C\u002Fp> \u003Cp>Below are details of the project:\u003C\u002Fp>\u003Cp>\u003Cstrong>Assign to:- \u003C\u002Fstrong> {project_assigned_users}\u003C\u002Fp>\u003Cp>\u003Cstrong>Start Date:-\u003C\u002Fstrong>{project_start_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>End Date:-\u003C\u002Fstrong>{project_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002Fstrong>{project_description}\u003C\u002Fp>','taskbuilder'),\r\n+\t\t\t\t\t\t'recipients'=>array(1,2)\r\n+\t\t\t\t\t),\r\n+\t\t\t\t\t4=>array(\r\n+\t\t\t\t\t\t'type'=>'change_task_status',\r\n+\t\t\t\t\t\t'subject'=>esc_html__('{task_name} Task\\'s status has been changed from {old_task_status} to {new_task_status}','taskbuilder'),\r\n+\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed task status to \u003Cstrong>{new_task_status} \u003C\u002Fstrong>\u003Cp> Below are details of the task:\u003C\u002Fp> \u003Cp>\u003Cstrong>Assign to:-\u003C\u002Fstrong>{task_assigned_users} \u003C\u002Fp> \u003Cp>\u003Cstrong>Start Date:-\u003C\u002Fstrong>{task_start_date}\u003C\u002Fp>\u003Cp>\u003Cstrong>End Date:-\u003C\u002Fstrong>{task_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002Fstrong>{task_description}\u003C\u002Fp>','taskbuilder'),\r\n+\t\t\t\t\t\t'recipients'=>array(1,2)\r\n+\t\t\t\t\t),\r\n+\t\t\t\t\t5=>array(\r\n+\t\t\t\t\t\t'type'=>'change_project_assign_users',\r\n+\t\t\t\t\t\t'subject'=>esc_html__('{project_name} Project\\'s assigned users changed from {previously_assigned_project_users} to {project_assigned_users}','taskbuilder'),\r\n+\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed project\\'s assign users to \u003Cstrong> {project_assigned_users}\u003C\u002Fstrong>\u003C\u002Fp> \u003Cp>Below are details of the project :\u003C\u002Fp>\u003Cp>\u003Cstrong> Assign to:-\u003C\u002Fstrong>{project_assigned_users}\u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002Fstrong>{project_start_date} \u003C\u002Fp>\u003Cp> \u003Cstrong> End Date:- \u003C\u002Fstrong> {project_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002Fstrong>{project_description}\u003C\u002Fp>','taskbuilder'),\r\n+\t\t\t\t\t\t'recipients'=>array(1,2)\r\n+\t\t\t\t\t),\r\n+\t\t\t\t\t6=>array(\r\n+\t\t\t\t\t\t'type'=>'change_task_assign_users',\r\n+\t\t\t\t\t\t'subject'=>esc_html__('{task_name} Task\\'s assigned users change from {previously_assigned_task_users} to {task_assigned_users}','taskbuilder'),\r\n+\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed task\\'s assign users to \u003Cstrong>{task_assigned_users}\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Below are details of the task :\u003C\u002Fp> \u003Cp>\u003Cstrong>Assign to:-\u003C\u002Fstrong>{task_assigned_users} \u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002Fstrong>{task_start_date}\u003C\u002Fp>\u003Cp>\u003Cstrong>End Date:-\u003C\u002Fstrong>{task_end_date} \u003C\u002Fp>\u003Cp> \u003Cstrong>Description:-\u003C\u002Fstrong>{task_description}\u003C\u002Fp>','taskbuilder'),\r\n+\t\t\t\t\t\t'recipients'=>array(1,2)\r\n+\t\t\t\t\t),\r\n+\t\t\t\t\t7=>array(\r\n+\t\t\t\t\t\t'type'=>'new_discussion',\r\n+\t\t\t\t\t\t'subject'=>esc_html__('[{project_name}][{task_name}] {last_comment_user_name} started new discussion:','taskbuilder'),\r\n+\t\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{last_comment_user_name}\u003C\u002Fstrong> wrote:\u003C\u002Fp> \u003Cp>{comment_body}\u003C\u002Fp>','taskbuilder'),\r\n+\t\t\t\t\t\t'recipients'=>array(1,2)\r\n+\t\t\t\t\t)\r\n+\t\t\t\t);\r\n+\t\t\t\tupdate_option('wppm_email_notification',$wppm_email_notificatins);\r\n+\t\t\t}\r\n+\r\n+\t\t\tupdate_option('wppm_default_task_list_view',1);\r\n+\r\n+\t\t\t$default_statuses = $wpdb->get_var(\"select count(*) from {$wpdb->prefix}wppm_project_statuses\");\r\n+\t\t\tif (empty($default_statuses)) {\r\n+\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_project_statuses\", array('id' => 1,'name' => esc_html__('New','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#306EFF','load_order'=>1));\r\n+\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_project_statuses\", array('id' => 2,'name' => esc_html__('In Progress','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#FCD12A','load_order'=>2));\r\n+\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_project_statuses\", array('id' => 3,'name' => esc_html__('Hold','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#D3D3D3','load_order'=>3));\r\n+\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_project_statuses\", array('id' => 4,'name' => esc_html__('Completed','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#5cb85c','load_order'=>4));\r\n+\t\t\t}\r\n+\t\t\t$wppm_default_project_status = get_option('wppm_default_project_status',true);\r\n+\t\t\tif($wppm_default_project_status == ''){\r\n+\t\t\t\tupdate_option('wppm_default_project_status',1);\r\n+\t\t\t}\r\n+\t\t\t$default_task_statuses = $wpdb->get_var(\"select count(*) from {$wpdb->prefix}wppm_task_statuses\");\r\n+\t\t\tif (empty($default_task_statuses)) {\r\n+\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_task_statuses\",array('id' => 1,'name' => esc_html__('Todo','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#306EFF','load_order'=>1));\r\n+\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_task_statuses\",array('id' => 2,'name' => esc_html__('In Progress','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#FCD12A','load_order'=>2));\r\n+\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_task_statuses\",array('id' => 3,'name' => esc_html__('Hold','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#D3D3D3','load_order'=>3));\r\n+\t\t\t\t$wpdb->insert($wpdb->prefix . \"wppm_task_statuses\",array('id' => 4,'name' => esc_html__('Completed','taskbuilder'),'color'=>'#ffffff','bg_color'=>'#5cb85c','load_order'=>4));\r\n+\t\t\t}\r\n+\t\t\t$wppm_default_task_status = get_option('wppm_default_task_status',true);\r\n+\t\t\tif($wppm_default_task_status == ''){\r\n+\t\t\t\tupdate_option('wppm_default_task_status',1);\r\n+\t\t\t}\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '1.0.2'){\r\n+\t\t\tupdate_option('wppm_project_time', 1);\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '2.0.0'){\r\n+\t\t\tupdate_option('wppm_default_project_date', 1);\r\n+\t\t\tupdate_option('wppm_default_task_date', 1);\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '2.0.2'){\r\n+\t\t\tupdate_option('wppm_default_edit_tasks_permission', 0);\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '2.0.4'){\r\n+\t\t\tupdate_option('wppm_public_projects_permission',0);\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '2.0.8'){\r\n+\t\t\tupdate_option('wppm_task_time',1);\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '3.0.0'){\r\n+\t\t\t$wppm_email_notificatins = get_option('wppm_email_notification');\r\n+\t\t\tif(!empty($wppm_email_notificatins) && !isset($wppm_email_notificatins[8])){\r\n+\t\t\t\t$wppm_email_notificatins[8] = array(\r\n+\t\t\t\t\t'type'=>'new_proj_discussion',\r\n+\t\t\t\t\t'subject'=>esc_html__('[{project_name}] {last_proj_comment_user_name} started new discussion:','taskbuilder'),\r\n+\t\t\t\t\t'body'=>esc_html__('\u003Cp>\u003Cstrong>{last_proj_comment_user_name}\u003C\u002Fstrong> wrote:\u003C\u002Fp> \u003Cp>{proj_comment_body}\u003C\u002Fp>','taskbuilder'),\r\n+\t\t\t\t\t'recipients'=>array(1,2)\r\n+\t\t\t\t);\r\n+\t\t\t\tupdate_option('wppm_email_notification',$wppm_email_notificatins);\r\n+\t\t\t}\r\n+\t\t\tupdate_option(\r\n+\t\t\t\t'wppm-ap-project-list',\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'list-header-background-color'     => '#304FFE',\r\n+\t\t\t\t\t'list-header-text-color'           => '#fff',\r\n+\t\t\t\t\t'list-item-odd-background-color'   => '#fff',\r\n+\t\t\t\t\t'list-item-odd-text-color'         => '#2C3E50',\r\n+\t\t\t\t\t'list-item-even-background-color'  => '#F2F2F2',\r\n+\t\t\t\t\t'list-item-even-text-color'        => '#2C3E50',\r\n+\t\t\t\t\t'list-item-hover-background-color' => '#F5F5F5',\r\n+\t\t\t\t\t'list-item-hover-text-color'       => '#2C3E50'\r\n+\t\t\t\t)\r\n+\t\t\t);\r\n+\t\t\tupdate_option(\r\n+\t\t\t\t'wppm-ap-task-list',\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'list-header-button-background-color'=>'#0052CC',\r\n+\t\t\t\t\t'list-header-button-hover-color'\t=>'#0065ff',\r\n+\t\t\t\t\t'list-header-button-text-color'\t\t=>'#fff',\r\n+\t\t\t\t\t'list-header-background-color'     => '#304FFE',\r\n+\t\t\t\t\t'list-header-text-color'           => '#fff',\r\n+\t\t\t\t\t'list-item-odd-background-color'   => '#fff',\r\n+\t\t\t\t\t'list-item-odd-text-color'         => '#2C3E50',\r\n+\t\t\t\t\t'list-item-even-background-color'  => '#F2F2F2',\r\n+\t\t\t\t\t'list-item-even-text-color'        => '#2C3E50',\r\n+\t\t\t\t\t'list-item-hover-background-color' => '#F5F5F5',\r\n+\t\t\t\t\t'list-item-hover-text-color'       => '#2C3E50',\r\n+\t\t\t\t)\r\n+\t\t\t);\r\n+\t\t\tupdate_option(\r\n+\t\t\t\t'wppm-ap-individual-project',\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'menu-button-bg-color'\t\t=>'#0052CC',\r\n+\t\t\t\t\t'menu-button-hover-color'\t=>'#0065ff',\r\n+\t\t\t\t\t'menu-button-text-color'\t=>'#fff',\r\n+\t\t\t\t\t'comment-primary-color'      => '#000000',\r\n+\t\t\t\t\t'comment-secondary-color'    => '#4e4e4e',\r\n+\t\t\t\t\t'comment-date-color'         => '#a8aeb5',\r\n+\t\t\t\t\t'comment-date-hover-color'   => '#000000',\r\n+\t\t\t\t\t'comment-send-btn-bg-color'  => '#5067c5',\r\n+\t\t\t\t\t'comment-send-btn-color'  =>\t'#ffffff',\r\n+\t\t\t\t\t'widget-header-bg-color'   => '#ffffff',\r\n+\t\t\t\t\t'widget-header-text-color' => '#2C3E50',\r\n+\t\t\t\t\t'widget-body-bg-color'     => '#ffffff',\r\n+\t\t\t\t\t'widget-body-label-color'  => '#9c9c9c',\r\n+\t\t\t\t\t'widget-body-text-color'   => '#2C3E50',\r\n+\t\t\t\t)\r\n+\t\t\t);\r\n+\t\t\tupdate_option(\r\n+\t\t\t\t'wppm-ap-individual-task',\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'comment-primary-color'      => '#000000',\r\n+\t\t\t\t\t'comment-secondary-color'    => '#4e4e4e',\r\n+\t\t\t\t\t'comment-date-color'         => '#a8aeb5',\r\n+\t\t\t\t\t'comment-date-hover-color'   => '#000000',\r\n+\t\t\t\t\t'comment-send-btn-bg-color'  => '#5067c5',\r\n+\t\t\t\t\t'comment-send-btn-color'  =>\t'#ffffff',\r\n+\t\t\t\t\t'widget-header-bg-color'   => '#ffffff',\r\n+\t\t\t\t\t'widget-header-text-color' => '#2C3E50',\r\n+\t\t\t\t\t'widget-body-bg-color'     => '#ffffff',\r\n+\t\t\t\t\t'widget-body-label-color'  => '#9c9c9c',\r\n+\t\t\t\t\t'widget-body-text-color'   => '#2C3E50',\r\n+\t\t\t\t)\r\n+\t\t\t);\r\n+\t\t\tupdate_option(\r\n+\t\t\t\t'wppm-ap-modal',\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'header-bg-color'   => '#ffffff',\r\n+\t\t\t\t\t'header-text-color' => '#3c434a',\r\n+\t\t\t\t\t'body-bg-color'     => '#fff',\r\n+\t\t\t\t\t'body-label-color'  => '#3c434a',\r\n+\t\t\t\t\t'body-text-color'   => '#555',\r\n+\t\t\t\t\t'footer-bg-color'   => '#F6F6F6',\r\n+\t\t\t\t\t'action-btn-bg-color' =>'#306EFF',\r\n+\t\t\t\t\t'action-btn-text-color'=>'#fff',\r\n+\t\t\t\t\t'z-index'           => 900000000,\r\n+\t\t\t\t)\r\n+\t\t\t);\r\n+\t\t\tupdate_option(\r\n+\t\t\t\t'wppm-ap-grid-view',\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'menu-button-bg-color'\t\t=>'#0052CC',\r\n+\t\t\t\t\t'menu-button-hover-color'\t=>'#0065ff',\r\n+\t\t\t\t\t'menu-button-text-color'\t=>'#fff',\r\n+\t\t\t\t\t'grid-background-color'     => '#fff',\r\n+\t\t\t\t\t'grid-header-text-color'    => '#2C3E50'\r\n+\t\t\t\t)\r\n+\t\t\t);\r\n+\t\t\tupdate_option(\r\n+\t\t\t\t'wppm-ap-settings',\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'tab-background-color'     => '#0052CC',\r\n+\t\t\t\t\t'tab-text-color'    => '#fff',\r\n+\t\t\t\t\t'add-new-button-bg-color'\t=>'#0052CC',\r\n+\t\t\t\t\t'add-new-button-text-color' =>'#fff',\r\n+\t\t\t\t\t'add-new-button-hover-color'=>'#0065ff',\r\n+\t\t\t\t\t'save-changes-button-bg-color'=>'#306EFF',\r\n+\t\t\t\t\t'save-changes-button-text-color'=>'#fff'\r\n+\t\t\t\t)\r\n+\t\t\t);\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '3.0.1'){\r\n+\t\t\tupdate_option('wppm_default_project_status', 1);\r\n+\t\t\tupdate_option('wppm_default_task_status', 1);\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '3.0.5'){\r\n+\t\t\tupdate_option('wppm_tinymce_visibility_open_task',0);\r\n+\t\t\tupdate_option('wppm_tinymce_visibility_open_project',0);\r\n+\t\t\tupdate_option('wppm_default_email_notification_to_current_user', 1);\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '3.0.6'){\r\n+\t\t\tupdate_option('wppm_allow_coworkers_create_task',1);\r\n+\t\t\tupdate_option('wppm_allow_coworkers_add_checklist',1);\r\n+\t\t\tupdate_option('wppm_allow_coworkers_assign_users', 0);\r\n+\t\t\tupdate_option('wppm_allow_coworkers_change_status', 1);\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '3.0.9'){\r\n+\t\t\tupdate_option('wppm_rich_text_editor',1);\r\n+\t\t\tupdate_option(\r\n+\t\t\t\t'wppm_toolbar_actions',\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'bold'     => '1',\r\n+\t\t\t\t\t'italic'    => '1',\r\n+\t\t\t\t\t'underline'\t=>'1',\r\n+\t\t\t\t\t'blockquote' =>'1',\r\n+\t\t\t\t\t'align'=>'1',\r\n+\t\t\t\t\t'bullist'=>'1',\r\n+\t\t\t\t\t'numlist'=>'1',\r\n+\t\t\t\t\t'rtl'=>'1',\r\n+\t\t\t\t\t'link'=>'1',\r\n+\t\t\t\t\t'wppm_insert_editor_img'=>'1',\r\n+\t\t\t\t\t'forecolor'=>'0',\r\n+\t\t\t\t\t'backcolor' => '0',\r\n+\t\t\t\t\t'strikethrough' => '0'\r\n+\t\t\t\t)\r\n+\t\t\t);\r\n+\t\t}\r\n+\r\n+\t\tif($installed_version \u003C '4.0.0'){\r\n+\t\t\tupdate_option(\r\n+\t\t\t\t'wppm-page-settings',\r\n+\t\t\t\tarray(\r\n+\t\t\t\t\t'task-url-page'            => 0,\r\n+\t\t\t\t\t'project-url-page'          => 0\r\n+\t\t\t\t)\r\n+\t\t\t);\r\n+\t\t}\r\n+\r\n+\t\tif($installed_version \u003C '4.0.4'){\r\n+\t\t\tupdate_option('wppm_date_setting','Y-m-d h:i:sa');\r\n+\t\t}\r\n+\r\n+\t\tif($installed_version \u003C '4.0.5'){\r\n+\t\t\tupdate_option('wppm_hide_completed_status_proj','1');\r\n+\t\t\tupdate_option('wppm_hide_completed_status_task','1');\r\n+\t\t\tupdate_option('wppm_hide_proj_statuses_from_frontend','0');\r\n+\t\t\tupdate_option('wppm_hide_task_statuses_from_frontend','0');\r\n+\t\t\tupdate_option('wppm_proj_hide_comment_section','1');\r\n+\t\t\tupdate_option('wppm_task_hide_comment_section','1');\r\n+\t\t}\r\n+\r\n+\t\tif($installed_version \u003C '5.0.0'){\r\n+\t\t\t$wppm_print_settings = array(\r\n+\t\t\t'wppm_print_body_font_size' => 10);\r\n+\t\t\tupdate_option('wppm_print_settings',$wppm_print_settings);\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '5.0.2'){\r\n+\t\t\t$table_name  = $wpdb->prefix . 'wppm_checklist_items';\r\n+\t\t\t$column_name = 'load_order';\r\n+\t\t\t$column_type = 'INT(11) NOT NULL DEFAULT 1';\r\n+\r\n+\t\t\t$column_exists = $wpdb->get_var(\r\n+\t\t\t\t$wpdb->prepare(\r\n+\t\t\t\t\t\"SHOW COLUMNS FROM `$table_name` LIKE %s\",\r\n+\t\t\t\t\t$column_name\r\n+\t\t\t\t)\r\n+\t\t\t);\r\n+\r\n+\t\t\tif ( null === $column_exists ) {\r\n+\r\n+\t\t\t\t\u002F\u002F Column name and type are hardcoded, not user input.\r\n+\t\t\t\t\u002F\u002F phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared\r\n+\t\t\t\t$wpdb->query(\r\n+\t\t\t\t\t\"ALTER TABLE `$table_name`\r\n+\t\t\t\t\tADD `$column_name` $column_type\"\r\n+\t\t\t\t);\r\n+\t\t\t}\r\n+\t\t\t$table_name = $wpdb->prefix . 'wppm_task';\r\n+\t\t\t$cl_name    = 'is_archived';\r\n+\t\t\t$cl_type    = 'TINYINT(1) DEFAULT 0';\r\n+\r\n+\t\t\t$cl_exists = $wpdb->get_var(\r\n+\t\t\t\t$wpdb->prepare(\r\n+\t\t\t\t\t\"SHOW COLUMNS FROM `$table_name` LIKE %s\",\r\n+\t\t\t\t\t$cl_name\r\n+\t\t\t\t)\r\n+\t\t\t);\r\n+\r\n+\t\t\tif ( null === $cl_exists ) {\r\n+\r\n+\t\t\t\t$sql = sprintf(\r\n+\t\t\t\t\t'ALTER TABLE `%s` ADD `%s` %s',\r\n+\t\t\t\t\t$table_name,\r\n+\t\t\t\t\t$cl_name,\r\n+\t\t\t\t\t$cl_type\r\n+\t\t\t\t);\r\n+\r\n+\t\t\t\t\u002F\u002F phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- Safe: identifiers are hardcoded.\r\n+\t\t\t\t$wpdb->query( $sql );\r\n+\t\t\t}\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '5.0.3'){\r\n+\t\t\tupdate_option('wppm_display_time_duration_project',0);\r\n+\t\t\tupdate_option('wppm_display_time_duration_task',0);\r\n+\r\n+\t\t}\r\n+\t\tif($installed_version \u003C '5.0.6'){\r\n+\t\t\tupdate_option('wppm_show_update_notice', 1);\r\n+\t\t\t$user_role = get_option('wppm_user_role');\r\n+\t\t\tif (!isset($user_role[3])) {\r\n+\t\t\t\t$user_role[3] = array(\r\n+\t\t\t\t\t'label' => esc_html__('Client', 'taskbuilder'),\r\n+\t\t\t\t);\r\n+\t\t\t}\r\n+\t\t\tupdate_option('wppm_user_role', $user_role);\r\n+\t\t}\r\n+\t\t\u002F\u002F update wppm_version option to plugin version\r\n+\t\tupdate_option( 'wppm_version', WPPM_VERSION );\r\n+\t}\r\n+}\r\n+\r\n+endif;\r\n+\r\n new WPPM_Install();\n\\ No newline at end of file\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Flang\u002Ftakbuilder.pot \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Flang\u002Ftakbuilder.pot\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Flang\u002Ftakbuilder.pot\t2026-03-26 15:36:34.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Flang\u002Ftakbuilder.pot\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,1952 +1,1952 @@\n-#, fuzzy\n-msgid \"\"\n-msgstr \"\"\n-\"Project-Id-Version: taskbuilder\\n\"\n-\"POT-Creation-Date: 2025-03-21 15:36+0530\\n\"\n-\"PO-Revision-Date: 2025-03-21 15:36+0530\\n\"\n-\"Last-Translator: \\n\"\n-\"Language-Team: \\n\"\n-\"Language: en\\n\"\n-\"MIME-Version: 1.0\\n\"\n-\"Content-Type: text\u002Fplain; charset=UTF-8\\n\"\n-\"Content-Transfer-Encoding: 8bit\\n\"\n-\"X-Generator: Poedit 3.4.2\\n\"\n-\"X-Poedit-Basepath: taskbuilder\\n\"\n-\"X-Poedit-KeywordsList: __;_e;esc_attr;esc_attr_e;esc_html;esc_html_e;\"\n-\"wp_kses_post;wp_kses_data;wp_kses\\n\"\n-\"X-Poedit-SearchPath-0: .\\n\"\n-\n-#: includes\u002FEDD_SL_Plugin_Updater.php:229\n-#, php-format\n-msgid \" %1$sView version %2$s details%3$s.\"\n-msgstr \"\"\n-\n-#: includes\u002FEDD_SL_Plugin_Updater.php:236\n-#, php-format\n-msgid \" %1$sView version %2$s details%3$s or %4$supdate now%5$s.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:11 includes\u002Fclass-wppm-admin.php:288\n-#: includes\u002Fclass-wppm-admin.php:289 includes\u002Fclass-wppm-admin.php:323\n-#: includes\u002Fclass-wppm-admin.php:324\n-msgid \"Addons\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:12\n-msgid \"Need Help? Click Here!\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:16\n-msgid \"Addons are available as shown below:\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:23\n-msgid \"Calendar\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:26 includes\u002Fadmin\u002Faddons.php:56\n-#: includes\u002Fadmin\u002Faddons.php:84 includes\u002Fadmin\u002Faddons.php:112\n-#: includes\u002Fadmin\u002Faddons.php:140 includes\u002Fadmin\u002Faddons.php:167\n-#: includes\u002Fadmin\u002Faddons.php:194 includes\u002Fadmin\u002Faddons.php:221\n-#: includes\u002Fadmin\u002Faddons.php:248 includes\u002Fadmin\u002Faddons.php:275\n-msgid \"Per year\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:27 includes\u002Fadmin\u002Faddons.php:57\n-#: includes\u002Fadmin\u002Faddons.php:85 includes\u002Fadmin\u002Faddons.php:113\n-#: includes\u002Fadmin\u002Faddons.php:141 includes\u002Fadmin\u002Faddons.php:168\n-#: includes\u002Fadmin\u002Faddons.php:195 includes\u002Fadmin\u002Faddons.php:222\n-#: includes\u002Fadmin\u002Faddons.php:249 includes\u002Fadmin\u002Faddons.php:276\n-msgid \"(Add-ons subject to yearly license for support and updates.)\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:35\n-msgid \"\"\n-\"Calendar can help to schedule tasks to gain control over your work.\\n\"\n-\"                                    The use of task calendar  is the \"\n-\"main reason that keeps your day organized and supercharge your level \"\n-\"of productivity.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:42 includes\u002Fadmin\u002Faddons.php:70\n-#: includes\u002Fadmin\u002Faddons.php:98 includes\u002Fadmin\u002Faddons.php:126\n-#: includes\u002Fadmin\u002Faddons.php:153 includes\u002Fadmin\u002Faddons.php:180\n-#: includes\u002Fadmin\u002Faddons.php:207 includes\u002Fadmin\u002Faddons.php:234\n-#: includes\u002Fadmin\u002Faddons.php:261 includes\u002Fadmin\u002Faddons.php:288\n-msgid \"Purchase\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:45 includes\u002Fadmin\u002Faddons.php:73\n-#: includes\u002Fadmin\u002Faddons.php:101 includes\u002Fadmin\u002Faddons.php:129\n-#: includes\u002Fadmin\u002Faddons.php:156 includes\u002Fadmin\u002Faddons.php:183\n-#: includes\u002Fadmin\u002Faddons.php:210 includes\u002Fadmin\u002Faddons.php:237\n-#: includes\u002Fadmin\u002Faddons.php:264 includes\u002Fadmin\u002Faddons.php:291\n-msgid \"View Details\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:53\n-msgid \"Custom Fields\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:64\n-msgid \"\"\n-\"Custom Fields extension allows you to collect extra information for \"\n-\"your tasks. The Custom Fields extension is a very important tool for \"\n-\"gathering accurate details on all your tasks.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:81\n-msgid \"Time Tracker\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:92\n-msgid \"\"\n-\"Time Tracker add-on will help you to record and track the time spent \"\n-\"on each individual task. We have designed this like a stop-watch for \"\n-\"a task.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:109\n-msgid \"Gantt Chart\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:120\n-msgid \"\"\n-\"Gantt Chart add-on effectively time manage your tasks and visualize \"\n-\"upcoming deadlines for any project. Projects planners also use Gantt \"\n-\"charts to maintain a bird&rsquo;s eye view of projects.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:137\n-msgid \"Duplicate Project\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:148\n-msgid \"\"\n-\"Duplicate Project extention allows you to clone existing project and \"\n-\"you will get same project with(tasks+checklists).\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:164\n-msgid \"Reports\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:175\n-msgid \"\"\n-\"Report extention allows you to create detailed project progress \"\n-\"reports to view, print or download as a PDF or in CSV. Also, you can \"\n-\"download report in csv format.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:191\n-msgid \"Buddypress Integration\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:202\n-msgid \"\"\n-\"Buddypress extention allows you to create and manage projects in \"\n-\"departments. This gives the group access to manage the project,tasks \"\n-\"from frontend.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:218\n-msgid \"WooCommerce Integration\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:229\n-msgid \"\"\n-\"WooCommerce extention allows you to automatically create task after \"\n-\"order received. You can set task fields in setting. In task \"\n-\"description you can set order details like product qty,price, total \"\n-\"etc.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:245\n-msgid \"Due Date Reminder\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:256\n-msgid \"\"\n-\"Due date reminder are super helpful for keeping your team on track \"\n-\"to hit deadlines. Email notification will send to customer before \"\n-\"due date of task.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:272\n-msgid \"Users Group\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Faddons.php:283\n-msgid \"\"\n-\"Using usergroup add-on you can assign group of users to project and \"\n-\"those group assign to project can be assign to tasks of project. You \"\n-\"can create groups of users to whom you can assign projects and tasks \"\n-\"to just like individual user.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:11\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_task_notifications.php:14\n-#: includes\u002Fclass-wppm-admin.php:263 includes\u002Fclass-wppm-admin.php:264\n-#: includes\u002Fclass-wppm-admin.php:298 includes\u002Fclass-wppm-admin.php:299\n-msgid \"Email Notifications\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:17\n-msgid \"General Settings\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:18\n-msgid \"Project And Task Notifications\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:37\n-#: includes\u002Fadmin\u002Flicenses.php:37\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects.php:17\n-#: includes\u002Fadmin\u002Fsettings.php:47\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php:18\n-#: includes\u002Ffrontend\u002Fshortcode.php:47\n-#: includes\u002Ffrontend\u002Fwppm_tasks_shortcode.php:58\n-msgid \"Modal Title\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:38\n-#: includes\u002Fadmin\u002Flicenses.php:38\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects.php:18\n-#: includes\u002Fadmin\u002Fsettings.php:48\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php:19\n-#: includes\u002Ffrontend\u002Fshortcode.php:48\n-#: includes\u002Ffrontend\u002Fwppm_tasks_shortcode.php:59\n-msgid \"I am body!\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:40\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:112\n-#: includes\u002Fadmin\u002Flicenses.php:40\n-#: includes\u002Fadmin\u002Fprojects\u002Fget_users.php:136\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_creator.php:60\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:136\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_status.php:40\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_thread.php:61\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:150\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php:36\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects.php:20\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_assign_users.php:89\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_cat.php:33\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_status.php:33\n-#: includes\u002Fadmin\u002Fsettings.php:50\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:35\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php:20\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:35\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:37\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php:24\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:39\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:39\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:40\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_delete_task_thread.php:26\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_creator.php:60\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:177\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_status.php:41\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_thread.php:62\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_priority.php:33\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_status.php:33\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_task_users.php:109\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php:21\n-#: includes\u002Ffrontend\u002Fshortcode.php:50\n-#: includes\u002Ffrontend\u002Fwppm_tasks_shortcode.php:61\n-msgid \"Close\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:41\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:96\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:47\n-#: includes\u002Fadmin\u002Flicenses.php:41\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects.php:21\n-#: includes\u002Fadmin\u002Fsettings.php:51\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php:27\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:50\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:117\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:100\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:83\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:84\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:70\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:100\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:73\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php:25\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:156\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_page_settings.php:87\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php:51\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_clone_task.php:33\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php:22\n-#: includes\u002Ffrontend\u002Fshortcode.php:51\n-#: includes\u002Ffrontend\u002Fwppm_tasks_shortcode.php:62\n-msgid \"Save Changes\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:27\n-msgid \"Edit email notification\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:30\n-msgid \"Type\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:31\n-msgid \"Select event to send this email.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:39\n-msgid \"Email Subject\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:40\n-msgid \"Subject for email to send.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:44\n-msgid \"Email Body\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:45\n-msgid \"\"\n-\"Body for email to send. Use macros for project and task specific \"\n-\"details. Macros will get replaced by its value while sending an \"\n-\"email.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:47\n-msgid \"Visual\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:48\n-msgid \"Text\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:53\n-msgid \"Insert Macros\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:57\n-msgid \"Recipients\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:58\n-msgid \"Select roles who will receive email notifications.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:73\n-msgid \"Previously Assigned Users\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:79\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:395\n-msgid \"Project Creator\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:89\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:548\n-msgid \"Task Creator\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:14\n-msgid \"From Name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:15\n-msgid \"Emails to send by this name.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:19\n-msgid \"From Email\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:20\n-msgid \"Emails to send from this email.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:24\n-msgid \"Block Emails\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:25\n-msgid \"\"\n-\"Emails will not be sent to these email addresses. New email should \"\n-\"begin on new line.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:34\n-msgid \"Enable current user email notifications\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:36\n-msgid \"\"\n-\"Default enable\u002Fdisable setting to send email notifications to \"\n-\"current user (who is making some action like create task, change \"\n-\"status, change assign user, new comment.etc).\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:40\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php:21\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:28\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:41\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:54\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:67\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:104\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php:19\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php:25\n-msgid \"Enable\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:42\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php:23\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:30\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:43\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:56\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:69\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:106\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php:27\n-msgid \"Disable\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_task_notifications.php:19\n-msgid \"Notification Type\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_task_notifications.php:20\n-msgid \"Actions\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:16\n-msgid \"Tag\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:17\n-msgid \"Field Name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:22\n-msgid \"project_id\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:23\n-msgid \"Project Id\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:26\n-msgid \"project_name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:27\n-msgid \"Project Name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:30\n-msgid \"project_description\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:31\n-msgid \"Project Description\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:34\n-msgid \"project_status\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:35\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_status.php:16\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_status.php:12\n-msgid \"Project Status\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:38\n-msgid \"project_category\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:39\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:52\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_cat.php:12\n-msgid \"Project Category\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:42\n-msgid \"project_start_date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:43\n-msgid \"Project Start Date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:46\n-msgid \"project_end_date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:47\n-msgid \"Project End Date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:50\n-msgid \"project_assigned_users\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:51\n-msgid \"Project Assigned Users\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:54\n-msgid \"project_url\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:55\n-msgid \"Project Url\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:58\n-msgid \"task_id\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:59\n-msgid \"Task Id\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:62\n-msgid \"task_name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:63\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:32\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:91\n-msgid \"Task Name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:66\n-msgid \"task_creator_name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:67\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_creator.php:17\n-msgid \"Task Creator Name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:70\n-msgid \"task_description\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:71\n-msgid \"Task Description\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:74\n-msgid \"task_status\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:75\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:33\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_status.php:17\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_status.php:12\n-msgid \"Task Status\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:78\n-msgid \"task_priority\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:79\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:34\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:80\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_priority.php:12\n-msgid \"Task Priority\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:82\n-msgid \"task_start_date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:83\n-msgid \"Task Start Date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:86\n-msgid \"task_end_date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:87\n-msgid \"Task End Date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:90\n-msgid \"task_assigned_users\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:91\n-msgid \"Task Assigned Users\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:94\n-msgid \"task_url\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:95\n-msgid \"Task Url\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_edit_email_notification.php:33\n-msgid \"Email Notification updated successfully.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_en_general_setting.php:29\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_advanced_settings.php:19\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_grid_view.php:53\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_proj.php:104\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_task.php:89\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_modal_popup.php:71\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_proj_list.php:71\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_settings.php:64\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_task_list.php:89\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_coworkers_permission_settings.php:25\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_general_settings.php:37\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_page_settings.php:24\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_rich_text_editor_settings.php:48\n-msgid \"Settings saved.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Flicenses.php:7\n-msgid \"\"\n-\"Enter your add-ons license keys here to receive updates for \"\n-\"purchased add-ons. If your license key has expired, please renew \"\n-\"your license.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Flicenses.php:9\n-#, php-format\n-msgid \"No add-ons installed. See available add-ons - %1$s.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Flicenses.php:15 includes\u002Fclass-wppm-admin.php:279\n-#: includes\u002Fclass-wppm-admin.php:280 includes\u002Fclass-wppm-admin.php:314\n-#: includes\u002Fclass-wppm-admin.php:315\n-msgid \"License\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fget_users.php:59\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:95\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:354\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:453\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:597\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_task_users.php:46\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:507\n-msgid \"None\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fget_users.php:137\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_creator.php:61\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:137\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_status.php:41\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_thread.php:62\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_assign_users.php:90\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_cat.php:34\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_status.php:34\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_creator.php:61\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:178\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_status.php:42\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_thread.php:63\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_priority.php:34\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_status.php:34\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_task_users.php:110\n-msgid \"Save\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_delete_proj_thread.php:14\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_delete_task_thread.php:14\n-msgid \"Are you sure to delete this thread?\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_delete_proj_thread.php:26\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_delete_project.php:22\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_delete_project.php:24\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:209\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_clone_task.php:32\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:355\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_delete_task.php:22\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_delete_task.php:23\n-msgid \"Cancel\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_delete_proj_thread.php:27\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_delete_project.php:23\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_delete_project.php:25\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_delete_task_thread.php:27\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_delete_task.php:23\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_delete_task.php:24\n-msgid \"Confirm\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_creator.php:17\n-msgid \"Project Creator Name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:22\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:232\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:216\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:112\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:99\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:249\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:317\n-msgid \"Project\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:32\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:36\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:234\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:60\n-msgid \"Start Date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:42\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:37\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:239\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:70\n-msgid \"End Date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:73\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:59\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:101\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:147\n-msgid \"Description\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:31\n-msgid \"Task id\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:35\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:344\n-msgid \"Assign To\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php:15\n-msgid \"Change Project visibility\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php:18\n-msgid \"Private\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php:21\n-msgid \"Public\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:207\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:407\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:117\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:225\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:554\n-#: includes\u002Fclass-wppm-admin.php:253 includes\u002Fclass-wppm-admin.php:254\n-msgid \"Tasks\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:208\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:114\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:226\n-msgid \"Add New\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:209\n-msgid \"Task List\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:212\n-msgid \"Search\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:218\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:156\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:235\n-msgid \"Filter\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:220\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:235\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:158\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:237\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:252\n-msgid \"All\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:225\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:163\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:242\n-msgid \"Mine\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:226\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:164\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:243\n-msgid \"Unassigned\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:227\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:165\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:244\n-msgid \"Overdue\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:247\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:170\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:264\n-msgid \"Reset\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:253\n-msgid \"List view\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:330\n-msgid \"\u002F\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:333\n-msgid \"Edit\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:334\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:197\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:119\n-msgid \"Delete\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:391\n-msgid \"Empty\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:407\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:395\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:554\n-msgid \"Total:\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:407\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:411\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:395\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:400\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:554\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:558\n-msgid \"of\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:411\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:400\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:558\n-msgid \"Page\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:415\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:405\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:562\n-msgid \"PREV\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:419\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:410\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:566\n-msgid \"NEXT\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:142\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:395\n-#: includes\u002Fclass-wppm-admin.php:234 includes\u002Fclass-wppm-admin.php:235\n-#: includes\u002Fclass-wppm-admin.php:245\n-msgid \"Projects\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:184\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:277\n-msgid \"Bulk Actions \"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:188\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:281\n-msgid \"Change Status\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:191\n-msgid \"Change Category\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:194\n-msgid \"Assign Co-workers\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:221\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:384\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:390\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:531\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:542\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:322\n-msgid \"Status\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:226\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:418\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:569\n-msgid \"Users\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:228\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:71\n-msgid \"Category\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:244\n-msgid \"No. of tasks\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:390\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:546\n-msgid \"Your search request returned no results.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:20\n-msgid \"Create Project\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:23\n-msgid \"+Create Project\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:25\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:116\n-#: includes\u002Fclass-wppm-admin.php:244\n-msgid \"Project List\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:31\n-msgid \"Name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:41\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:130\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:333\n-msgid \"Start date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:48\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:137\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:338\n-msgid \"End date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:89\n-msgid \"Assign User\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:105\n-msgid \"Make Project Public\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:113\n-msgid \"Add Project\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:114\n-msgid \"Reset Form\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:229\n-msgid \"Project title is required\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_filter_autocomplete.php:108\n-msgid \"No matching data\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_delete_project.php:12\n-msgid \"Are you sure to delete these projects?\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_delete_project.php:14\n-msgid \"Are you sure to delete this project?\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:102\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:30\n-msgid \"Unauthorized access!\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:121\n-msgid \"Project Visibility\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:140\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:193\n-msgid \"Created On:\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:151\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:204\n-msgid \"Start Date:\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:160\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:213\n-msgid \"End Date:\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:173\n-msgid \"Project Category:\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:181\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:232\n-msgid \"Description:\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:195\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:341\n-msgid \"Comment\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:205\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:351\n-msgid \"Attach Files\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:212\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:358\n-msgid \"SEND\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:268\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:414\n-msgid \"changed the Assignee\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:342\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:489\n-msgid \"Attachments\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:677\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:842\n-msgid \"Attached file type not allowed!\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:684\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:849\n-msgid \"File size exceed allowed limit!\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings.php:11 includes\u002Fclass-wppm-admin.php:271\n-#: includes\u002Fclass-wppm-admin.php:272 includes\u002Fclass-wppm-admin.php:306\n-#: includes\u002Fclass-wppm-admin.php:307\n-msgid \"Settings\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings.php:17\n-msgid \"General\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings.php:18\n-msgid \"Page Setting\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings.php:19\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php:28\n-msgid \"Project Categories\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings.php:20\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php:33\n-msgid \"Project Statuses\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings.php:21\n-msgid \"Tasks Priorities\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings.php:22\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php:33\n-msgid \"Task Statuses\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings.php:23\n-msgid \"Miscellaneous\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings.php:24\n-msgid \"Appearance\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings.php:25\n-msgid \"Co-workers Permission\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings.php:26\n-msgid \"Rich Text Editor\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:11\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:16\n-msgid \"Priority Name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:12\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:17\n-msgid \"\"\n-\"Insert priority name. Please make sure priority name you are \"\n-\"entering should not already exist.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:16\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:16\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:18\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:49\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:32\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:21\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:20\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:21\n-msgid \"Color\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:17\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:17\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:19\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:21\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:22\n-msgid \"Text color of status.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:21\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:21\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:23\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:26\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:25\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:26\n-msgid \"Background Color\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:22\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:27\n-msgid \"Background color of priority.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:36\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php:21\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:36\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:38\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:40\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:40\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:41\n-msgid \"Submit\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php:11\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php:15\n-msgid \"Category Name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php:12\n-msgid \"\"\n-\"Insert category name. Please make sure category name you are \"\n-\"entering should not already exist.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:11\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:13\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:15\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:16\n-msgid \"Status Name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:12\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:14\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:16\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:17\n-msgid \"\"\n-\"Insert status name. Please make sure status name you are entering \"\n-\"should not already exist.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:22\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:24\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:26\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:27\n-msgid \"Background color of status.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php:15\n-msgid \"Public Projects\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php:17\n-msgid \"Default enable\u002Fdisable permission for create public project.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:13\n-msgid \"Menu button\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:17\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:17\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:64\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:79\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:94\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:47\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:62\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:77\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:17\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:32\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:49\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:62\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:17\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:32\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:47\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:62\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:17\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:34\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:49\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:64\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:79\n-msgid \"Background color\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:18\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:18\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:50\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:33\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:19\n-msgid \"Hover color\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:19\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:19\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:65\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:80\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:96\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:48\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:63\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:79\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:18\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:34\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:63\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:18\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:33\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:48\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:63\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:18\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:35\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:50\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:65\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:80\n-msgid \"Text color\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:30\n-msgid \"Kanban card\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:34\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:17\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:32\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:49\n-msgid \"background color\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:35\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:18\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:33\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:50\n-msgid \"text color\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:54\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:121\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:104\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:87\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:88\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:74\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:104\n-msgid \"Reset default\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:13\n-msgid \"Menu buttons\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:30\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:13\n-msgid \"Comment thread\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:34\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:17\n-msgid \"Primary color\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:35\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:18\n-msgid \"Secondary color\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:45\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:28\n-msgid \"Comment Date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:60\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:43\n-msgid \"Comment send button\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:75\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:58\n-msgid \"Widget Header\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:90\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:73\n-msgid \"Widget Body\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:95\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:78\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:33\n-msgid \"Label color\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:13\n-msgid \"Popup header\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:28\n-msgid \"Popup body\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:45\n-msgid \"Popup footer\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:58\n-msgid \"Action button\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:13\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:30\n-msgid \"List header\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:28\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:45\n-msgid \"List item (odd)\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:43\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:60\n-msgid \"List item (even)\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:58\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:75\n-msgid \"List item (hover)\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:13\n-msgid \"Tab\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:28\n-msgid \"Add new button\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:34\n-msgid \"hover color\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:45\n-msgid \"Save changes button\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:13\n-msgid \"List header button\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php:30\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php:30\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php:35\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php:35\n-msgid \"+Add New\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php:101\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php:145\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php:100\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php:154\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php:106\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php:160\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php:105\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php:159\n-#: includes\u002Fclass-wppm-admin.php:219\n-#: includes\u002Fclass-wppm-frontend.php:46\n-msgid \"Please wait ...\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:22\n-msgid \"Allow co-workers to create tasks\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:24\n-msgid \"\"\n-\"Default enable\u002Fdisable permission for co-workers to create tasks.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:35\n-msgid \"Allow co-workers to add checklists\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:37\n-msgid \"\"\n-\"Default enable\u002Fdisable permission for co-workers to add checklists.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:48\n-msgid \"Allow co-workers to change task status\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:50\n-msgid \"\"\n-\"Default enable\u002Fdisable permission for co-workers to change task \"\n-\"status.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:61\n-msgid \"Allow co-workers to assign task users\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:63\n-msgid \"\"\n-\"Default enable\u002Fdisable permission for co-workers to assign task \"\n-\"users.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php:16\n-msgid \"Insert category name.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:22\n-msgid \"Text color of priority.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:27\n-msgid \"Task List View\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:29\n-msgid \"This selected view get applied on task list table\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:31\n-msgid \"List View\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:34\n-msgid \"Card View\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:37\n-msgid \"Time in project start date and end date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:39\n-msgid \"Default show\u002Fhide time in start and end date of project.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:43\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:56\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:67\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:78\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:139\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:150\n-msgid \"Show\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:45\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:58\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:70\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:81\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:142\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:153\n-msgid \"Hide\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:50\n-msgid \"Time in task start date and end date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:52\n-msgid \"Default show\u002Fhide time in start and end date of task.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:63\n-msgid \"Project start date and end date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:65\n-msgid \"Default show\u002Fhide start date and end date of project.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:74\n-msgid \"Task start date and end date\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:76\n-msgid \"Default show\u002Fhide start date and end date of task.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:85\n-msgid \"Default date format\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:98\n-msgid \"Allow co-workers to edit tasks\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:100\n-msgid \"Default enable\u002Fdisable permission for co-workers to edit tasks.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:111\n-msgid \"Default project status\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:113\n-msgid \"Selected status will get applied to project after creating it.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:123\n-msgid \"Default task status\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:125\n-msgid \"Selected status will get applied to task after creating it.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:135\n-msgid \"Default Show TinyMCE editor in open project \"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:137\n-msgid \"Default show\u002Fhide TinyMCE editor in open project.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:146\n-msgid \"Default Show TinyMCE editor in open task \"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:148\n-msgid \"Default show\u002Fhide TinyMCE editor in open task.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_page_settings.php:17\n-msgid \"Task url page\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_page_settings.php:37\n-msgid \"Project url page\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php:28\n-msgid \"Task Priorities\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php:21\n-msgid \"Default enable\u002Fdisable rich text editor .\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php:32\n-msgid \"Toolbar actions\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_category.php:21\n-msgid \"Category added successfully.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_priority.php:20\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_status.php:19\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_task_status.php:23\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_status.php:23\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_task_status.php:27\n-msgid \"Status color and background color should not be same.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_priority.php:31\n-msgid \"Priority added successfully.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_status.php:32\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_task_status.php:34\n-msgid \"Status added successfully.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_category_order.php:19\n-msgid \"Category order saved.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_priority.php:29\n-msgid \"Priority color and background color should not be same.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_priority_order.php:20\n-msgid \"Priority order saved.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_status_order.php:18\n-#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_task_status_order.php:18\n-msgid \"Status order saved.\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:32\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:141\n-msgid \"Task\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:42\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:185\n-msgid \"Project:\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:224\n-msgid \"Task Priority:\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:255\n-msgid \"Delete Checklist\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:295\n-msgid \"+ Add item\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:323\n-msgid \"+Add a checklist\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php:31\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php:36\n-msgid \"Error: file format not supported!\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php:42\n-msgid \"Error: file size exceeded allowed limit!\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php:93\n-msgid \"done\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:65\n-msgid \"Create Task\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:158\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:327\n-msgid \"Priority\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:175\n-msgid \"Task Members\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:189\n-msgid \"Add Task\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:191\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:193\n-msgid \"Reset form\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:309\n-msgid \"Task title is required\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_delete_task.php:12\n-msgid \"Are you sure to delete these tasks?\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_delete_task.php:13\n-msgid \"Are you sure to delete this task?\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:284\n-msgid \"Change Priority\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:287\n-msgid \"Delete Tasks\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:293\n-msgid \"Grid view\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:311\n-msgid \"Task name\"\n-msgstr \"\"\n-\n-#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:347\n-msgid \"Progress\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-admin.php:217\n-msgid \"Add New Category\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-admin.php:218\n-msgid \"Edit Category\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-admin.php:220\n-#: includes\u002Fclass-wppm-frontend.php:47\n-msgid \"Are you sure?\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-admin.php:221\n-msgid \"Add New Status\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-admin.php:222\n-msgid \"Edit status\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-admin.php:223\n-msgid \"Add New Priority\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-admin.php:224\n-msgid \"Templates\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-functions.php:653\n-msgid \"New Project\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-functions.php:654\n-msgid \"New Task\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-functions.php:655\n-msgid \"Change Project Status\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-functions.php:656\n-msgid \"Change Task Status\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-functions.php:657\n-msgid \"Change Project Assign Users\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-functions.php:658\n-msgid \"Change Task Assign Users\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-functions.php:659\n-msgid \"New Comment\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-functions.php:660\n-msgid \"New Project Comment\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-functions.php:1038\n-msgid \"WPPM Administrator\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-functions.php:1041\n-msgid \"WPPM Manager\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-profile-update.php:36\n-msgid \"Taskbuilder\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-profile-update.php:60\n-msgid \"Capability\"\n-msgstr \"\"\n-\n-#: includes\u002Fclass-wppm-profile-update.php:66\n-msgid \"— No capability for this user —\"\n-msgstr \"\"\n-\n-#: includes\u002Ffrontend\u002Fwppm_set_user_login.php:7\n-msgid \"Cheating huh?\"\n-msgstr \"\"\n-\n-#: includes\u002Ffrontend\u002Fwppm_set_user_login.php:26\n-msgid \"Success!\"\n-msgstr \"\"\n-\n-#: includes\u002Ffrontend\u002Fwppm_sign_in.php:9\n-msgid \"Please sign in\"\n-msgstr \"\"\n-\n-#: includes\u002Ffrontend\u002Fwppm_sign_in.php:12\n-msgid \"Username or email\"\n-msgstr \"\"\n-\n-#: includes\u002Ffrontend\u002Fwppm_sign_in.php:14\n-msgid \"Password\"\n-msgstr \"\"\n-\n-#: includes\u002Ffrontend\u002Fwppm_sign_in.php:18\n-msgid \"Remember me\"\n-msgstr \"\"\n-\n-#: includes\u002Ffrontend\u002Fwppm_sign_in.php:23\n-msgid \"Sign In\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:202\n-msgid \"manager\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:205\n-msgid \"co-worker\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:216\n-msgid \"New project has been created:{project_name}\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:217\n-msgid \"\"\n-\"\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> assigned project to you.\u003C\u002Fp> \"\n-\"\u003Cp>Below are details of the project :\u003C\u002Fp>\u003Cp>\u003Cstrong> Assign to:-\u003C\u002F\"\n-\"strong>{project_assigned_users}\u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002F\"\n-\"strong>{project_start_date} \u003C\u002Fp>\u003Cp> \u003Cstrong> End Date:- \u003C\u002Fstrong> \"\n-\"{project_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002F\"\n-\"strong>{project_description}\u003C\u002Fp>\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:222\n-msgid \"New task has been created: {task_name}\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:223\n-msgid \"\"\n-\"\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> assigned task to you.\u003C\u002Fp>\u003Cp>Below \"\n-\"are details of the task :\u003C\u002Fp> \u003Cp>\u003Cstrong>Assign to:-\u003C\u002F\"\n-\"strong>{task_assigned_users} \u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002F\"\n-\"strong>{task_start_date}\u003C\u002Fp>\u003Cp>\u003Cstrong>End Date:-\u003C\u002F\"\n-\"strong>{task_end_date} \u003C\u002Fp>\u003Cp> \u003Cstrong>Description:-\u003C\u002F\"\n-\"strong>{task_description}\u003C\u002Fp>\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:228\n-msgid \"\"\n-\"{project_name} Project's status has been changed from \"\n-\"{old_project_status} to {new_project_status}\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:229\n-msgid \"\"\n-\"\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed project's status to \"\n-\"\u003Cstrong>{new_project_status}\u003C\u002Fstrong> \u003C\u002Fp> \u003Cp>Below are details of \"\n-\"the project:\u003C\u002Fp>\u003Cp>\u003Cstrong>Assign to:- \u003C\u002Fstrong> \"\n-\"{project_assigned_users}\u003C\u002Fp>\u003Cp>\u003Cstrong>Start Date:-\u003C\u002F\"\n-\"strong>{project_start_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>End Date:-\u003C\u002F\"\n-\"strong>{project_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002F\"\n-\"strong>{project_description}\u003C\u002Fp>\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:234\n-msgid \"\"\n-\"{task_name} Task's status has been changed from {old_task_status} to \"\n-\"{new_task_status}\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:235\n-msgid \"\"\n-\"\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed task status to \"\n-\"\u003Cstrong>{new_task_status} \u003C\u002Fstrong>\u003Cp> Below are details of the task:\"\n-\"\u003C\u002Fp> \u003Cp>\u003Cstrong>Assign to:-\u003C\u002Fstrong>{task_assigned_users} \u003C\u002Fp> \"\n-\"\u003Cp>\u003Cstrong>Start Date:-\u003C\u002Fstrong>{task_start_date}\u003C\u002Fp>\u003Cp>\u003Cstrong>End \"\n-\"Date:-\u003C\u002Fstrong>{task_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002F\"\n-\"strong>{task_description}\u003C\u002Fp>\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:240\n-msgid \"\"\n-\"{project_name} Project's assigned users changed from \"\n-\"{previously_assigned_project_users} to {project_assigned_users}\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:241\n-msgid \"\"\n-\"\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed project's assign users to \"\n-\"\u003Cstrong> {project_assigned_users}\u003C\u002Fstrong>\u003C\u002Fp> \u003Cp>Below are details \"\n-\"of the project :\u003C\u002Fp>\u003Cp>\u003Cstrong> Assign to:-\u003C\u002F\"\n-\"strong>{project_assigned_users}\u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002F\"\n-\"strong>{project_start_date} \u003C\u002Fp>\u003Cp> \u003Cstrong> End Date:- \u003C\u002Fstrong> \"\n-\"{project_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002F\"\n-\"strong>{project_description}\u003C\u002Fp>\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:246\n-msgid \"\"\n-\"{task_name} Task's assigned users change from \"\n-\"{previously_assigned_task_users} to {task_assigned_users}\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:247\n-msgid \"\"\n-\"\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed task's assign users to \"\n-\"\u003Cstrong>{task_assigned_users}\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Below are details of \"\n-\"the task :\u003C\u002Fp> \u003Cp>\u003Cstrong>Assign to:-\u003C\u002Fstrong>{task_assigned_users} \"\n-\"\u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002Fstrong>{task_start_date}\u003C\u002F\"\n-\"p>\u003Cp>\u003Cstrong>End Date:-\u003C\u002Fstrong>{task_end_date} \u003C\u002Fp>\u003Cp> \"\n-\"\u003Cstrong>Description:-\u003C\u002Fstrong>{task_description}\u003C\u002Fp>\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:252\n-msgid \"\"\n-\"[{project_name}][{task_name}] {last_comment_user_name} started new \"\n-\"discussion:\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:253\n-msgid \"\"\n-\"\u003Cp>\u003Cstrong>{last_comment_user_name}\u003C\u002Fstrong> wrote:\u003C\u002Fp> \"\n-\"\u003Cp>{comment_body}\u003C\u002Fp>\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:264\n-msgid \"New\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:265 includes\u002Fwppm-install.php:276\n-msgid \"In Progress\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:266 includes\u002Fwppm-install.php:277\n-msgid \"Hold\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:267 includes\u002Fwppm-install.php:278\n-msgid \"Completed\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:275\n-msgid \"Todo\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:306\n-msgid \"\"\n-\"[{project_name}] {last_proj_comment_user_name} started new \"\n-\"discussion:\"\n-msgstr \"\"\n-\n-#: includes\u002Fwppm-install.php:307\n-msgid \"\"\n-\"\u003Cp>\u003Cstrong>{last_proj_comment_user_name}\u003C\u002Fstrong> wrote:\u003C\u002Fp> \"\n-\"\u003Cp>{proj_comment_body}\u003C\u002Fp>\"\n-msgstr \"\"\n+#, fuzzy\r\n+msgid \"\"\r\n+msgstr \"\"\r\n+\"Project-Id-Version: taskbuilder\\n\"\r\n+\"POT-Creation-Date: 2025-03-21 15:36+0530\\n\"\r\n+\"PO-Revision-Date: 2025-03-21 15:36+0530\\n\"\r\n+\"Last-Translator: \\n\"\r\n+\"Language-Team: \\n\"\r\n+\"Language: en\\n\"\r\n+\"MIME-Version: 1.0\\n\"\r\n+\"Content-Type: text\u002Fplain; charset=UTF-8\\n\"\r\n+\"Content-Transfer-Encoding: 8bit\\n\"\r\n+\"X-Generator: Poedit 3.4.2\\n\"\r\n+\"X-Poedit-Basepath: taskbuilder\\n\"\r\n+\"X-Poedit-KeywordsList: __;_e;esc_attr;esc_attr_e;esc_html;esc_html_e;\"\r\n+\"wp_kses_post;wp_kses_data;wp_kses\\n\"\r\n+\"X-Poedit-SearchPath-0: .\\n\"\r\n+\r\n+#: includes\u002FEDD_SL_Plugin_Updater.php:229\r\n+#, php-format\r\n+msgid \" %1$sView version %2$s details%3$s.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002FEDD_SL_Plugin_Updater.php:236\r\n+#, php-format\r\n+msgid \" %1$sView version %2$s details%3$s or %4$supdate now%5$s.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:11 includes\u002Fclass-wppm-admin.php:288\r\n+#: includes\u002Fclass-wppm-admin.php:289 includes\u002Fclass-wppm-admin.php:323\r\n+#: includes\u002Fclass-wppm-admin.php:324\r\n+msgid \"Addons\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:12\r\n+msgid \"Need Help? Click Here!\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:16\r\n+msgid \"Addons are available as shown below:\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:23\r\n+msgid \"Calendar\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:26 includes\u002Fadmin\u002Faddons.php:56\r\n+#: includes\u002Fadmin\u002Faddons.php:84 includes\u002Fadmin\u002Faddons.php:112\r\n+#: includes\u002Fadmin\u002Faddons.php:140 includes\u002Fadmin\u002Faddons.php:167\r\n+#: includes\u002Fadmin\u002Faddons.php:194 includes\u002Fadmin\u002Faddons.php:221\r\n+#: includes\u002Fadmin\u002Faddons.php:248 includes\u002Fadmin\u002Faddons.php:275\r\n+msgid \"Per year\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:27 includes\u002Fadmin\u002Faddons.php:57\r\n+#: includes\u002Fadmin\u002Faddons.php:85 includes\u002Fadmin\u002Faddons.php:113\r\n+#: includes\u002Fadmin\u002Faddons.php:141 includes\u002Fadmin\u002Faddons.php:168\r\n+#: includes\u002Fadmin\u002Faddons.php:195 includes\u002Fadmin\u002Faddons.php:222\r\n+#: includes\u002Fadmin\u002Faddons.php:249 includes\u002Fadmin\u002Faddons.php:276\r\n+msgid \"(Add-ons subject to yearly license for support and updates.)\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:35\r\n+msgid \"\"\r\n+\"Calendar can help to schedule tasks to gain control over your work.\\n\"\r\n+\"                                    The use of task calendar  is the \"\r\n+\"main reason that keeps your day organized and supercharge your level \"\r\n+\"of productivity.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:42 includes\u002Fadmin\u002Faddons.php:70\r\n+#: includes\u002Fadmin\u002Faddons.php:98 includes\u002Fadmin\u002Faddons.php:126\r\n+#: includes\u002Fadmin\u002Faddons.php:153 includes\u002Fadmin\u002Faddons.php:180\r\n+#: includes\u002Fadmin\u002Faddons.php:207 includes\u002Fadmin\u002Faddons.php:234\r\n+#: includes\u002Fadmin\u002Faddons.php:261 includes\u002Fadmin\u002Faddons.php:288\r\n+msgid \"Purchase\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:45 includes\u002Fadmin\u002Faddons.php:73\r\n+#: includes\u002Fadmin\u002Faddons.php:101 includes\u002Fadmin\u002Faddons.php:129\r\n+#: includes\u002Fadmin\u002Faddons.php:156 includes\u002Fadmin\u002Faddons.php:183\r\n+#: includes\u002Fadmin\u002Faddons.php:210 includes\u002Fadmin\u002Faddons.php:237\r\n+#: includes\u002Fadmin\u002Faddons.php:264 includes\u002Fadmin\u002Faddons.php:291\r\n+msgid \"View Details\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:53\r\n+msgid \"Custom Fields\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:64\r\n+msgid \"\"\r\n+\"Custom Fields extension allows you to collect extra information for \"\r\n+\"your tasks. The Custom Fields extension is a very important tool for \"\r\n+\"gathering accurate details on all your tasks.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:81\r\n+msgid \"Time Tracker\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:92\r\n+msgid \"\"\r\n+\"Time Tracker add-on will help you to record and track the time spent \"\r\n+\"on each individual task. We have designed this like a stop-watch for \"\r\n+\"a task.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:109\r\n+msgid \"Gantt Chart\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:120\r\n+msgid \"\"\r\n+\"Gantt Chart add-on effectively time manage your tasks and visualize \"\r\n+\"upcoming deadlines for any project. Projects planners also use Gantt \"\r\n+\"charts to maintain a bird&rsquo;s eye view of projects.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:137\r\n+msgid \"Duplicate Project\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:148\r\n+msgid \"\"\r\n+\"Duplicate Project extention allows you to clone existing project and \"\r\n+\"you will get same project with(tasks+checklists).\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:164\r\n+msgid \"Reports\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:175\r\n+msgid \"\"\r\n+\"Report extention allows you to create detailed project progress \"\r\n+\"reports to view, print or download as a PDF or in CSV. Also, you can \"\r\n+\"download report in csv format.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:191\r\n+msgid \"Buddypress Integration\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:202\r\n+msgid \"\"\r\n+\"Buddypress extention allows you to create and manage projects in \"\r\n+\"departments. This gives the group access to manage the project,tasks \"\r\n+\"from frontend.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:218\r\n+msgid \"WooCommerce Integration\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:229\r\n+msgid \"\"\r\n+\"WooCommerce extention allows you to automatically create task after \"\r\n+\"order received. You can set task fields in setting. In task \"\r\n+\"description you can set order details like product qty,price, total \"\r\n+\"etc.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:245\r\n+msgid \"Due Date Reminder\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:256\r\n+msgid \"\"\r\n+\"Due date reminder are super helpful for keeping your team on track \"\r\n+\"to hit deadlines. Email notification will send to customer before \"\r\n+\"due date of task.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:272\r\n+msgid \"Users Group\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Faddons.php:283\r\n+msgid \"\"\r\n+\"Using usergroup add-on you can assign group of users to project and \"\r\n+\"those group assign to project can be assign to tasks of project. You \"\r\n+\"can create groups of users to whom you can assign projects and tasks \"\r\n+\"to just like individual user.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:11\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_task_notifications.php:14\r\n+#: includes\u002Fclass-wppm-admin.php:263 includes\u002Fclass-wppm-admin.php:264\r\n+#: includes\u002Fclass-wppm-admin.php:298 includes\u002Fclass-wppm-admin.php:299\r\n+msgid \"Email Notifications\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:17\r\n+msgid \"General Settings\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:18\r\n+msgid \"Project And Task Notifications\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:37\r\n+#: includes\u002Fadmin\u002Flicenses.php:37\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects.php:17\r\n+#: includes\u002Fadmin\u002Fsettings.php:47\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php:18\r\n+#: includes\u002Ffrontend\u002Fshortcode.php:47\r\n+#: includes\u002Ffrontend\u002Fwppm_tasks_shortcode.php:58\r\n+msgid \"Modal Title\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:38\r\n+#: includes\u002Fadmin\u002Flicenses.php:38\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects.php:18\r\n+#: includes\u002Fadmin\u002Fsettings.php:48\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php:19\r\n+#: includes\u002Ffrontend\u002Fshortcode.php:48\r\n+#: includes\u002Ffrontend\u002Fwppm_tasks_shortcode.php:59\r\n+msgid \"I am body!\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:40\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:112\r\n+#: includes\u002Fadmin\u002Flicenses.php:40\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fget_users.php:136\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_creator.php:60\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:136\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_status.php:40\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_thread.php:61\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:150\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php:36\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects.php:20\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_assign_users.php:89\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_cat.php:33\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_status.php:33\r\n+#: includes\u002Fadmin\u002Fsettings.php:50\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:35\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php:20\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:35\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:37\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php:24\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:39\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:39\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:40\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_delete_task_thread.php:26\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_creator.php:60\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:177\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_status.php:41\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_thread.php:62\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_priority.php:33\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_status.php:33\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_task_users.php:109\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php:21\r\n+#: includes\u002Ffrontend\u002Fshortcode.php:50\r\n+#: includes\u002Ffrontend\u002Fwppm_tasks_shortcode.php:61\r\n+msgid \"Close\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_email_notifications.php:41\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:96\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:47\r\n+#: includes\u002Fadmin\u002Flicenses.php:41\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects.php:21\r\n+#: includes\u002Fadmin\u002Fsettings.php:51\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php:27\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:50\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:117\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:100\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:83\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:84\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:70\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:100\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:73\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php:25\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:156\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_page_settings.php:87\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php:51\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_clone_task.php:33\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks.php:22\r\n+#: includes\u002Ffrontend\u002Fshortcode.php:51\r\n+#: includes\u002Ffrontend\u002Fwppm_tasks_shortcode.php:62\r\n+msgid \"Save Changes\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:27\r\n+msgid \"Edit email notification\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:30\r\n+msgid \"Type\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:31\r\n+msgid \"Select event to send this email.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:39\r\n+msgid \"Email Subject\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:40\r\n+msgid \"Subject for email to send.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:44\r\n+msgid \"Email Body\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:45\r\n+msgid \"\"\r\n+\"Body for email to send. Use macros for project and task specific \"\r\n+\"details. Macros will get replaced by its value while sending an \"\r\n+\"email.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:47\r\n+msgid \"Visual\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:48\r\n+msgid \"Text\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:53\r\n+msgid \"Insert Macros\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:57\r\n+msgid \"Recipients\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:58\r\n+msgid \"Select roles who will receive email notifications.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:73\r\n+msgid \"Previously Assigned Users\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:79\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:395\r\n+msgid \"Project Creator\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_edit_email_notification.php:89\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:548\r\n+msgid \"Task Creator\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:14\r\n+msgid \"From Name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:15\r\n+msgid \"Emails to send by this name.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:19\r\n+msgid \"From Email\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:20\r\n+msgid \"Emails to send from this email.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:24\r\n+msgid \"Block Emails\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:25\r\n+msgid \"\"\r\n+\"Emails will not be sent to these email addresses. New email should \"\r\n+\"begin on new line.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:34\r\n+msgid \"Enable current user email notifications\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:36\r\n+msgid \"\"\r\n+\"Default enable\u002Fdisable setting to send email notifications to \"\r\n+\"current user (who is making some action like create task, change \"\r\n+\"status, change assign user, new comment.etc).\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:40\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php:21\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:28\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:41\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:54\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:67\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:104\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php:19\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php:25\r\n+msgid \"Enable\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_general_setting.php:42\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php:23\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:30\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:43\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:56\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:69\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:106\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php:27\r\n+msgid \"Disable\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_task_notifications.php:19\r\n+msgid \"Notification Type\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_en_task_notifications.php:20\r\n+msgid \"Actions\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:16\r\n+msgid \"Tag\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:17\r\n+msgid \"Field Name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:22\r\n+msgid \"project_id\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:23\r\n+msgid \"Project Id\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:26\r\n+msgid \"project_name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:27\r\n+msgid \"Project Name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:30\r\n+msgid \"project_description\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:31\r\n+msgid \"Project Description\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:34\r\n+msgid \"project_status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:35\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_status.php:16\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_status.php:12\r\n+msgid \"Project Status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:38\r\n+msgid \"project_category\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:39\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:52\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_cat.php:12\r\n+msgid \"Project Category\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:42\r\n+msgid \"project_start_date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:43\r\n+msgid \"Project Start Date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:46\r\n+msgid \"project_end_date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:47\r\n+msgid \"Project End Date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:50\r\n+msgid \"project_assigned_users\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:51\r\n+msgid \"Project Assigned Users\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:54\r\n+msgid \"project_url\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:55\r\n+msgid \"Project Url\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:58\r\n+msgid \"task_id\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:59\r\n+msgid \"Task Id\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:62\r\n+msgid \"task_name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:63\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:32\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:91\r\n+msgid \"Task Name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:66\r\n+msgid \"task_creator_name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:67\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_creator.php:17\r\n+msgid \"Task Creator Name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:70\r\n+msgid \"task_description\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:71\r\n+msgid \"Task Description\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:74\r\n+msgid \"task_status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:75\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:33\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_status.php:17\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_status.php:12\r\n+msgid \"Task Status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:78\r\n+msgid \"task_priority\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:79\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:34\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:80\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_priority.php:12\r\n+msgid \"Task Priority\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:82\r\n+msgid \"task_start_date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:83\r\n+msgid \"Task Start Date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:86\r\n+msgid \"task_end_date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:87\r\n+msgid \"Task End Date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:90\r\n+msgid \"task_assigned_users\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:91\r\n+msgid \"Task Assigned Users\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:94\r\n+msgid \"task_url\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_get_templates.php:95\r\n+msgid \"Task Url\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_edit_email_notification.php:33\r\n+msgid \"Email Notification updated successfully.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Femail_notifications\u002Fwppm_set_en_general_setting.php:29\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_advanced_settings.php:19\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_grid_view.php:53\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_proj.php:104\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_individual_task.php:89\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_modal_popup.php:71\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_proj_list.php:71\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_settings.php:64\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_ap_task_list.php:89\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_coworkers_permission_settings.php:25\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_general_settings.php:37\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_page_settings.php:24\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_rich_text_editor_settings.php:48\r\n+msgid \"Settings saved.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Flicenses.php:7\r\n+msgid \"\"\r\n+\"Enter your add-ons license keys here to receive updates for \"\r\n+\"purchased add-ons. If your license key has expired, please renew \"\r\n+\"your license.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Flicenses.php:9\r\n+#, php-format\r\n+msgid \"No add-ons installed. See available add-ons - %1$s.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Flicenses.php:15 includes\u002Fclass-wppm-admin.php:279\r\n+#: includes\u002Fclass-wppm-admin.php:280 includes\u002Fclass-wppm-admin.php:314\r\n+#: includes\u002Fclass-wppm-admin.php:315\r\n+msgid \"License\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fget_users.php:59\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:95\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:354\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:453\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:597\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_task_users.php:46\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:507\r\n+msgid \"None\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fget_users.php:137\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_creator.php:61\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:137\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_status.php:41\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_thread.php:62\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_assign_users.php:90\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_cat.php:34\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_change_proj_status.php:34\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_creator.php:61\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:178\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_status.php:42\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_thread.php:63\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_priority.php:34\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_change_task_status.php:34\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_task_users.php:110\r\n+msgid \"Save\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_delete_proj_thread.php:14\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_delete_task_thread.php:14\r\n+msgid \"Are you sure to delete this thread?\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_delete_proj_thread.php:26\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_delete_project.php:22\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_delete_project.php:24\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:209\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_clone_task.php:32\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:355\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_delete_task.php:22\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_delete_task.php:23\r\n+msgid \"Cancel\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_delete_proj_thread.php:27\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_delete_project.php:23\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_delete_project.php:25\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_delete_task_thread.php:27\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_delete_task.php:23\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_delete_task.php:24\r\n+msgid \"Confirm\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_creator.php:17\r\n+msgid \"Project Creator Name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:22\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:232\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:216\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:112\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:99\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:249\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:317\r\n+msgid \"Project\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:32\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:36\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:234\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:60\r\n+msgid \"Start Date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:42\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:37\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:239\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:70\r\n+msgid \"End Date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_edit_project_details.php:73\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:59\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:101\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:147\r\n+msgid \"Description\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:31\r\n+msgid \"Task id\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_tasks.php:35\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:344\r\n+msgid \"Assign To\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php:15\r\n+msgid \"Change Project visibility\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php:18\r\n+msgid \"Private\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_get_project_visibility.php:21\r\n+msgid \"Public\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:207\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:407\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:117\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:225\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:554\r\n+#: includes\u002Fclass-wppm-admin.php:253 includes\u002Fclass-wppm-admin.php:254\r\n+msgid \"Tasks\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:208\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:114\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:226\r\n+msgid \"Add New\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:209\r\n+msgid \"Task List\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:212\r\n+msgid \"Search\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:218\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:156\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:235\r\n+msgid \"Filter\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:220\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:235\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:158\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:237\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:252\r\n+msgid \"All\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:225\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:163\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:242\r\n+msgid \"Mine\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:226\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:164\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:243\r\n+msgid \"Unassigned\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:227\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:165\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:244\r\n+msgid \"Overdue\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:247\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:170\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:264\r\n+msgid \"Reset\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:253\r\n+msgid \"List view\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:330\r\n+msgid \"\u002F\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:333\r\n+msgid \"Edit\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:334\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:197\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:119\r\n+msgid \"Delete\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:391\r\n+msgid \"Empty\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:407\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:395\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:554\r\n+msgid \"Total:\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:407\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:411\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:395\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:400\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:554\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:558\r\n+msgid \"of\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:411\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:400\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:558\r\n+msgid \"Page\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:415\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:405\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:562\r\n+msgid \"PREV\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fopen_project\u002Fwppm_view_project_tasks.php:419\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:410\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:566\r\n+msgid \"NEXT\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:142\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:395\r\n+#: includes\u002Fclass-wppm-admin.php:234 includes\u002Fclass-wppm-admin.php:235\r\n+#: includes\u002Fclass-wppm-admin.php:245\r\n+msgid \"Projects\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:184\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:277\r\n+msgid \"Bulk Actions \"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:188\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:281\r\n+msgid \"Change Status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:191\r\n+msgid \"Change Category\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:194\r\n+msgid \"Assign Co-workers\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:221\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:384\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:390\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:531\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:542\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:322\r\n+msgid \"Status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:226\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:418\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:569\r\n+msgid \"Users\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:228\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:71\r\n+msgid \"Category\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:244\r\n+msgid \"No. of tasks\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fprojects_list.php:390\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:546\r\n+msgid \"Your search request returned no results.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:20\r\n+msgid \"Create Project\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:23\r\n+msgid \"+Create Project\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:25\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:116\r\n+#: includes\u002Fclass-wppm-admin.php:244\r\n+msgid \"Project List\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:31\r\n+msgid \"Name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:41\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:130\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:333\r\n+msgid \"Start date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:48\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:137\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:338\r\n+msgid \"End date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:89\r\n+msgid \"Assign User\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:105\r\n+msgid \"Make Project Public\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:113\r\n+msgid \"Add Project\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:114\r\n+msgid \"Reset Form\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_add_new_project.php:229\r\n+msgid \"Project title is required\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_filter_autocomplete.php:108\r\n+msgid \"No matching data\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_bulk_delete_project.php:12\r\n+msgid \"Are you sure to delete these projects?\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_get_delete_project.php:14\r\n+msgid \"Are you sure to delete this project?\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:102\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:30\r\n+msgid \"Unauthorized access!\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:121\r\n+msgid \"Project Visibility\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:140\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:193\r\n+msgid \"Created On:\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:151\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:204\r\n+msgid \"Start Date:\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:160\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:213\r\n+msgid \"End Date:\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:173\r\n+msgid \"Project Category:\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:181\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:232\r\n+msgid \"Description:\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:195\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:341\r\n+msgid \"Comment\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:205\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:351\r\n+msgid \"Attach Files\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:212\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:358\r\n+msgid \"SEND\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:268\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:414\r\n+msgid \"changed the Assignee\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:342\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:489\r\n+msgid \"Attachments\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:677\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:842\r\n+msgid \"Attached file type not allowed!\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fprojects\u002Fwppm_open_project.php:684\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:849\r\n+msgid \"File size exceed allowed limit!\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings.php:11 includes\u002Fclass-wppm-admin.php:271\r\n+#: includes\u002Fclass-wppm-admin.php:272 includes\u002Fclass-wppm-admin.php:306\r\n+#: includes\u002Fclass-wppm-admin.php:307\r\n+msgid \"Settings\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings.php:17\r\n+msgid \"General\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings.php:18\r\n+msgid \"Page Setting\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings.php:19\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php:28\r\n+msgid \"Project Categories\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings.php:20\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php:33\r\n+msgid \"Project Statuses\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings.php:21\r\n+msgid \"Tasks Priorities\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings.php:22\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php:33\r\n+msgid \"Task Statuses\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings.php:23\r\n+msgid \"Miscellaneous\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings.php:24\r\n+msgid \"Appearance\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings.php:25\r\n+msgid \"Co-workers Permission\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings.php:26\r\n+msgid \"Rich Text Editor\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:11\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:16\r\n+msgid \"Priority Name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:12\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:17\r\n+msgid \"\"\r\n+\"Insert priority name. Please make sure priority name you are \"\r\n+\"entering should not already exist.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:16\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:16\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:18\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:49\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:32\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:21\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:20\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:21\r\n+msgid \"Color\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:17\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:17\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:19\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:21\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:22\r\n+msgid \"Text color of status.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:21\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:21\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:23\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:26\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:25\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:26\r\n+msgid \"Background Color\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:22\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:27\r\n+msgid \"Background color of priority.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_add_task_priority.php:36\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php:21\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:36\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:38\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:40\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:40\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:41\r\n+msgid \"Submit\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php:11\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php:15\r\n+msgid \"Category Name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_category.php:12\r\n+msgid \"\"\r\n+\"Insert category name. Please make sure category name you are \"\r\n+\"entering should not already exist.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:11\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:13\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:15\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:16\r\n+msgid \"Status Name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:12\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:14\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:16\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:17\r\n+msgid \"\"\r\n+\"Insert status name. Please make sure status name you are entering \"\r\n+\"should not already exist.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_proj_status.php:22\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_add_task_status.php:24\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_proj_status.php:26\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_task_status.php:27\r\n+msgid \"Background color of status.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php:15\r\n+msgid \"Public Projects\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_advanced_settings.php:17\r\n+msgid \"Default enable\u002Fdisable permission for create public project.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:13\r\n+msgid \"Menu button\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:17\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:17\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:64\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:79\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:94\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:47\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:62\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:77\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:17\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:32\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:49\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:62\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:17\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:32\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:47\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:62\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:17\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:34\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:49\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:64\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:79\r\n+msgid \"Background color\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:18\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:18\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:50\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:33\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:19\r\n+msgid \"Hover color\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:19\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:19\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:65\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:80\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:96\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:48\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:63\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:79\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:18\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:34\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:63\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:18\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:33\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:48\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:63\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:18\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:35\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:50\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:65\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:80\r\n+msgid \"Text color\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:30\r\n+msgid \"Kanban card\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:34\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:17\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:32\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:49\r\n+msgid \"background color\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:35\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:18\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:33\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:50\r\n+msgid \"text color\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_grid_view.php:54\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:121\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:104\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:87\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:88\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:74\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:104\r\n+msgid \"Reset default\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:13\r\n+msgid \"Menu buttons\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:30\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:13\r\n+msgid \"Comment thread\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:34\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:17\r\n+msgid \"Primary color\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:35\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:18\r\n+msgid \"Secondary color\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:45\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:28\r\n+msgid \"Comment Date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:60\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:43\r\n+msgid \"Comment send button\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:75\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:58\r\n+msgid \"Widget Header\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:90\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:73\r\n+msgid \"Widget Body\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_proj.php:95\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_individual_task.php:78\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:33\r\n+msgid \"Label color\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:13\r\n+msgid \"Popup header\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:28\r\n+msgid \"Popup body\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:45\r\n+msgid \"Popup footer\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_modal_popup.php:58\r\n+msgid \"Action button\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:13\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:30\r\n+msgid \"List header\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:28\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:45\r\n+msgid \"List item (odd)\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:43\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:60\r\n+msgid \"List item (even)\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_proj_list.php:58\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:75\r\n+msgid \"List item (hover)\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:13\r\n+msgid \"Tab\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:28\r\n+msgid \"Add new button\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:34\r\n+msgid \"hover color\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_settings.php:45\r\n+msgid \"Save changes button\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_ap_task_list.php:13\r\n+msgid \"List header button\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php:30\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php:30\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php:35\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php:35\r\n+msgid \"+Add New\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php:101\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_category_settings.php:145\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php:100\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php:154\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php:106\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_proj_status_settings.php:160\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php:105\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_task_status_settings.php:159\r\n+#: includes\u002Fclass-wppm-admin.php:219\r\n+#: includes\u002Fclass-wppm-frontend.php:46\r\n+msgid \"Please wait ...\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:22\r\n+msgid \"Allow co-workers to create tasks\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:24\r\n+msgid \"\"\r\n+\"Default enable\u002Fdisable permission for co-workers to create tasks.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:35\r\n+msgid \"Allow co-workers to add checklists\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:37\r\n+msgid \"\"\r\n+\"Default enable\u002Fdisable permission for co-workers to add checklists.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:48\r\n+msgid \"Allow co-workers to change task status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:50\r\n+msgid \"\"\r\n+\"Default enable\u002Fdisable permission for co-workers to change task \"\r\n+\"status.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:61\r\n+msgid \"Allow co-workers to assign task users\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_coworker_permission_settings.php:63\r\n+msgid \"\"\r\n+\"Default enable\u002Fdisable permission for co-workers to assign task \"\r\n+\"users.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_category.php:16\r\n+msgid \"Insert category name.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_edit_priority.php:22\r\n+msgid \"Text color of priority.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:27\r\n+msgid \"Task List View\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:29\r\n+msgid \"This selected view get applied on task list table\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:31\r\n+msgid \"List View\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:34\r\n+msgid \"Card View\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:37\r\n+msgid \"Time in project start date and end date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:39\r\n+msgid \"Default show\u002Fhide time in start and end date of project.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:43\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:56\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:67\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:78\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:139\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:150\r\n+msgid \"Show\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:45\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:58\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:70\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:81\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:142\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:153\r\n+msgid \"Hide\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:50\r\n+msgid \"Time in task start date and end date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:52\r\n+msgid \"Default show\u002Fhide time in start and end date of task.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:63\r\n+msgid \"Project start date and end date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:65\r\n+msgid \"Default show\u002Fhide start date and end date of project.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:74\r\n+msgid \"Task start date and end date\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:76\r\n+msgid \"Default show\u002Fhide start date and end date of task.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:85\r\n+msgid \"Default date format\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:98\r\n+msgid \"Allow co-workers to edit tasks\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:100\r\n+msgid \"Default enable\u002Fdisable permission for co-workers to edit tasks.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:111\r\n+msgid \"Default project status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:113\r\n+msgid \"Selected status will get applied to project after creating it.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:123\r\n+msgid \"Default task status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:125\r\n+msgid \"Selected status will get applied to task after creating it.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:135\r\n+msgid \"Default Show TinyMCE editor in open project \"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:137\r\n+msgid \"Default show\u002Fhide TinyMCE editor in open project.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:146\r\n+msgid \"Default Show TinyMCE editor in open task \"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_general_settings.php:148\r\n+msgid \"Default show\u002Fhide TinyMCE editor in open task.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_page_settings.php:17\r\n+msgid \"Task url page\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_page_settings.php:37\r\n+msgid \"Project url page\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_priority_settings.php:28\r\n+msgid \"Task Priorities\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php:21\r\n+msgid \"Default enable\u002Fdisable rich text editor .\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_get_rich_text_editor_settings.php:32\r\n+msgid \"Toolbar actions\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_category.php:21\r\n+msgid \"Category added successfully.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_priority.php:20\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_status.php:19\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_task_status.php:23\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_status.php:23\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_task_status.php:27\r\n+msgid \"Status color and background color should not be same.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_priority.php:31\r\n+msgid \"Priority added successfully.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_status.php:32\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_add_task_status.php:34\r\n+msgid \"Status added successfully.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_category_order.php:19\r\n+msgid \"Category order saved.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_edit_priority.php:29\r\n+msgid \"Priority color and background color should not be same.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_priority_order.php:20\r\n+msgid \"Priority order saved.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_status_order.php:18\r\n+#: includes\u002Fadmin\u002Fsettings\u002Fwppm_set_task_status_order.php:18\r\n+msgid \"Status order saved.\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:32\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:141\r\n+msgid \"Task\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_edit_task_details.php:42\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:185\r\n+msgid \"Project:\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:224\r\n+msgid \"Task Priority:\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:255\r\n+msgid \"Delete Checklist\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:295\r\n+msgid \"+ Add item\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_open_task.php:323\r\n+msgid \"+Add a checklist\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php:31\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php:36\r\n+msgid \"Error: file format not supported!\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php:42\r\n+msgid \"Error: file size exceeded allowed limit!\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fopen_task\u002Fwppm_upload_file.php:93\r\n+msgid \"done\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:65\r\n+msgid \"Create Task\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:158\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:327\r\n+msgid \"Priority\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:175\r\n+msgid \"Task Members\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:189\r\n+msgid \"Add Task\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:191\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:193\r\n+msgid \"Reset form\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_add_new_task.php:309\r\n+msgid \"Task title is required\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_bulk_delete_task.php:12\r\n+msgid \"Are you sure to delete these tasks?\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_get_delete_task.php:13\r\n+msgid \"Are you sure to delete this task?\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:284\r\n+msgid \"Change Priority\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:287\r\n+msgid \"Delete Tasks\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:293\r\n+msgid \"Grid view\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:311\r\n+msgid \"Task name\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fadmin\u002Ftasks\u002Fwppm_tasks_list.php:347\r\n+msgid \"Progress\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-admin.php:217\r\n+msgid \"Add New Category\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-admin.php:218\r\n+msgid \"Edit Category\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-admin.php:220\r\n+#: includes\u002Fclass-wppm-frontend.php:47\r\n+msgid \"Are you sure?\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-admin.php:221\r\n+msgid \"Add New Status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-admin.php:222\r\n+msgid \"Edit status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-admin.php:223\r\n+msgid \"Add New Priority\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-admin.php:224\r\n+msgid \"Templates\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-functions.php:653\r\n+msgid \"New Project\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-functions.php:654\r\n+msgid \"New Task\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-functions.php:655\r\n+msgid \"Change Project Status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-functions.php:656\r\n+msgid \"Change Task Status\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-functions.php:657\r\n+msgid \"Change Project Assign Users\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-functions.php:658\r\n+msgid \"Change Task Assign Users\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-functions.php:659\r\n+msgid \"New Comment\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-functions.php:660\r\n+msgid \"New Project Comment\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-functions.php:1038\r\n+msgid \"WPPM Administrator\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-functions.php:1041\r\n+msgid \"WPPM Manager\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-profile-update.php:36\r\n+msgid \"Taskbuilder\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-profile-update.php:60\r\n+msgid \"Capability\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fclass-wppm-profile-update.php:66\r\n+msgid \"— No capability for this user —\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Ffrontend\u002Fwppm_set_user_login.php:7\r\n+msgid \"Cheating huh?\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Ffrontend\u002Fwppm_set_user_login.php:26\r\n+msgid \"Success!\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Ffrontend\u002Fwppm_sign_in.php:9\r\n+msgid \"Please sign in\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Ffrontend\u002Fwppm_sign_in.php:12\r\n+msgid \"Username or email\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Ffrontend\u002Fwppm_sign_in.php:14\r\n+msgid \"Password\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Ffrontend\u002Fwppm_sign_in.php:18\r\n+msgid \"Remember me\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Ffrontend\u002Fwppm_sign_in.php:23\r\n+msgid \"Sign In\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:202\r\n+msgid \"manager\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:205\r\n+msgid \"co-worker\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:216\r\n+msgid \"New project has been created:{project_name}\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:217\r\n+msgid \"\"\r\n+\"\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> assigned project to you.\u003C\u002Fp> \"\r\n+\"\u003Cp>Below are details of the project :\u003C\u002Fp>\u003Cp>\u003Cstrong> Assign to:-\u003C\u002F\"\r\n+\"strong>{project_assigned_users}\u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002F\"\r\n+\"strong>{project_start_date} \u003C\u002Fp>\u003Cp> \u003Cstrong> End Date:- \u003C\u002Fstrong> \"\r\n+\"{project_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002F\"\r\n+\"strong>{project_description}\u003C\u002Fp>\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:222\r\n+msgid \"New task has been created: {task_name}\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:223\r\n+msgid \"\"\r\n+\"\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> assigned task to you.\u003C\u002Fp>\u003Cp>Below \"\r\n+\"are details of the task :\u003C\u002Fp> \u003Cp>\u003Cstrong>Assign to:-\u003C\u002F\"\r\n+\"strong>{task_assigned_users} \u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002F\"\r\n+\"strong>{task_start_date}\u003C\u002Fp>\u003Cp>\u003Cstrong>End Date:-\u003C\u002F\"\r\n+\"strong>{task_end_date} \u003C\u002Fp>\u003Cp> \u003Cstrong>Description:-\u003C\u002F\"\r\n+\"strong>{task_description}\u003C\u002Fp>\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:228\r\n+msgid \"\"\r\n+\"{project_name} Project's status has been changed from \"\r\n+\"{old_project_status} to {new_project_status}\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:229\r\n+msgid \"\"\r\n+\"\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed project's status to \"\r\n+\"\u003Cstrong>{new_project_status}\u003C\u002Fstrong> \u003C\u002Fp> \u003Cp>Below are details of \"\r\n+\"the project:\u003C\u002Fp>\u003Cp>\u003Cstrong>Assign to:- \u003C\u002Fstrong> \"\r\n+\"{project_assigned_users}\u003C\u002Fp>\u003Cp>\u003Cstrong>Start Date:-\u003C\u002F\"\r\n+\"strong>{project_start_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>End Date:-\u003C\u002F\"\r\n+\"strong>{project_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002F\"\r\n+\"strong>{project_description}\u003C\u002Fp>\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:234\r\n+msgid \"\"\r\n+\"{task_name} Task's status has been changed from {old_task_status} to \"\r\n+\"{new_task_status}\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:235\r\n+msgid \"\"\r\n+\"\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed task status to \"\r\n+\"\u003Cstrong>{new_task_status} \u003C\u002Fstrong>\u003Cp> Below are details of the task:\"\r\n+\"\u003C\u002Fp> \u003Cp>\u003Cstrong>Assign to:-\u003C\u002Fstrong>{task_assigned_users} \u003C\u002Fp> \"\r\n+\"\u003Cp>\u003Cstrong>Start Date:-\u003C\u002Fstrong>{task_start_date}\u003C\u002Fp>\u003Cp>\u003Cstrong>End \"\r\n+\"Date:-\u003C\u002Fstrong>{task_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002F\"\r\n+\"strong>{task_description}\u003C\u002Fp>\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:240\r\n+msgid \"\"\r\n+\"{project_name} Project's assigned users changed from \"\r\n+\"{previously_assigned_project_users} to {project_assigned_users}\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:241\r\n+msgid \"\"\r\n+\"\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed project's assign users to \"\r\n+\"\u003Cstrong> {project_assigned_users}\u003C\u002Fstrong>\u003C\u002Fp> \u003Cp>Below are details \"\r\n+\"of the project :\u003C\u002Fp>\u003Cp>\u003Cstrong> Assign to:-\u003C\u002F\"\r\n+\"strong>{project_assigned_users}\u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002F\"\r\n+\"strong>{project_start_date} \u003C\u002Fp>\u003Cp> \u003Cstrong> End Date:- \u003C\u002Fstrong> \"\r\n+\"{project_end_date} \u003C\u002Fp> \u003Cp>\u003Cstrong>Description:-\u003C\u002F\"\r\n+\"strong>{project_description}\u003C\u002Fp>\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:246\r\n+msgid \"\"\r\n+\"{task_name} Task's assigned users change from \"\r\n+\"{previously_assigned_task_users} to {task_assigned_users}\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:247\r\n+msgid \"\"\r\n+\"\u003Cp>\u003Cstrong>{user_name}\u003C\u002Fstrong> changed task's assign users to \"\r\n+\"\u003Cstrong>{task_assigned_users}\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Below are details of \"\r\n+\"the task :\u003C\u002Fp> \u003Cp>\u003Cstrong>Assign to:-\u003C\u002Fstrong>{task_assigned_users} \"\r\n+\"\u003C\u002Fp>\u003Cp>\u003Cstrong> Start Date:-\u003C\u002Fstrong>{task_start_date}\u003C\u002F\"\r\n+\"p>\u003Cp>\u003Cstrong>End Date:-\u003C\u002Fstrong>{task_end_date} \u003C\u002Fp>\u003Cp> \"\r\n+\"\u003Cstrong>Description:-\u003C\u002Fstrong>{task_description}\u003C\u002Fp>\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:252\r\n+msgid \"\"\r\n+\"[{project_name}][{task_name}] {last_comment_user_name} started new \"\r\n+\"discussion:\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:253\r\n+msgid \"\"\r\n+\"\u003Cp>\u003Cstrong>{last_comment_user_name}\u003C\u002Fstrong> wrote:\u003C\u002Fp> \"\r\n+\"\u003Cp>{comment_body}\u003C\u002Fp>\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:264\r\n+msgid \"New\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:265 includes\u002Fwppm-install.php:276\r\n+msgid \"In Progress\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:266 includes\u002Fwppm-install.php:277\r\n+msgid \"Hold\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:267 includes\u002Fwppm-install.php:278\r\n+msgid \"Completed\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:275\r\n+msgid \"Todo\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:306\r\n+msgid \"\"\r\n+\"[{project_name}] {last_proj_comment_user_name} started new \"\r\n+\"discussion:\"\r\n+msgstr \"\"\r\n+\r\n+#: includes\u002Fwppm-install.php:307\r\n+msgid \"\"\r\n+\"\u003Cp>\u003Cstrong>{last_proj_comment_user_name}\u003C\u002Fstrong> wrote:\u003C\u002Fp> \"\r\n+\"\u003Cp>{proj_comment_body}\u003C\u002Fp>\"\r\n+msgstr \"\"\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Freadme.txt \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Freadme.txt\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Freadme.txt\t2026-04-16 08:38:14.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Freadme.txt\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,406 +1,410 @@\n-=== Taskbuilder - Project Management & Task Management Tool With Kanban Board ===\n-Contributors: taskbuilder\n-Donate link: https:\u002F\u002Ftaskbuilder.net\n-Tags: project management,task management,task manager,project,project manager\n-Requires at least: 5.6\n-Tested up to: 6.9\n-Requires PHP: 7.4\n-Stable tag: 5.0.7\n-License: GPLv3 or later\n-\n-Taskbuilder is an easy-to-use project management tool that helps teams organize work and boost productivity. It includes powerful task management, a visual kanban board for easy task tracking, and seamless team collaboration. With intuitive project and task dashboards, flexible user roles and role management, simple task assignment, and real-time task status updates, Taskbuilder makes project planning and workflow management simple for any multi-user team.\n-\n-== Description ==\n-\n-Taskbuilder simplifies project management and task management with powerful features like a visual kanban board, custom fields, duplicate projects, calendar view, and due date reminders. It includes user groups, recurring tasks, overdue notifications, a built-in time tracker, Gantt charts, checklists, and email piping. With detailed dashboards and reporting, Taskbuilder helps teams stay organized and productive. It also integrates seamlessly with BuddyPress and WooCommerce for extended functionality.\n-\n-= Shortcodes : =\n-`\n-[wppm_projects] - Manage projects from front-end.\n-[wppm_tasks] - Manage tasks from front-end.\n-[wppm_tasks_calendar] - Use Calendar on front-end(pro feature).\n-[wppm_tasks project =\"insert project name here\"]- If you want to display only selected project's task on page, you can add attribute as project name to tasks shortcode. It will only display tasks of selected project.\n-[wppm_public_projects_tasks] = Display public project's tasks from frontend.\n-[wppm_gantt_chart project =\"insert project name here\"]- You can access Gantt Chart from frontend. You have to give project name as parameter in shortcode (pro feature).\n-\n-`\n-### 🌟 Top Features ###\n-\n-- **Dashboard**: Get a quick overview of projects, tasks, and team workload in one centralized place.\n-- **Unlimited Projects**: Create unlimited projects with no restrictions, even in the free version.\n-- **Unlimited Tasks**:Create unlimited tasks with no restrictions, even in the free version.\n-- **Unlimited co-workers**: There is no limit to add co-workers. You can create any number of co-workers so that you can divide your workload. You can use wordpress's registered users as co-workers(manager, co-workers) or client.\n-- **Client Access Mode**: Add users with a client role to projects and tasks with controlled access.\n-- **Team Collaboration**: Work together with your team in real time\n-- **Ajax functionality**: Almost every functionality is Ajax based so that its operational speed is at its best.\n-- **Manage Projects & Tasks From Front-end**: There is no need to pay anything for manage projects and tasks from front-end.\n-- **Checklist**: Break big tasks into small ones, check things off the list, and watch that status bar go to 100% complete.\n-- **File Attachments**: Files can attached in comments.\n-- **Responsive Design**: It is designed to work on any possbile screen size so that you can operate anytime, anywhere. It is recommended to use full-width template for Project and Task page so that it will work smoothly.\n-- **Kanban Board**: Cards represent your tasks and have everything you need to get the job done. As you make progress, drag cards from list to list so that everyone knows the status of the task at hand.\n-- **List View**: You can manage tasks and project on list view.\n-- **Filter**: You can filter task and projects by Title,Project name, Status, Category, Priority,User Names.\n-- **Email Notifications**: Customizable email notification templates available for you to customize as per your requirement. You can make use of macro tags for task & projects specific information which gets replaced dynamically.\n-- **Custom Statuses**: You can create unlimited custom statuses for projects and tasks.\n-- **Custom Priorities**: You can create unlimited custom priorities for tasks.\n-- **Custom Categories**: You can create unlimited custom categories for projects.\n-- **Appearance Setting**: Customizable Appearance to match up with your theme.\n-- **Shortcode Attribute**: Display selected project's task on frontend. If you want to display only selected project's task on page, you can add attribute as project name to tasks shortcode. It will only display tasks of selected project.For ex- add shortcode [wppm_tasks project =\"insert project name here\"] on page. It will only shows tasks of project which you added as a project parameter in task's shortcode.\n- \n-\n-🙌 After reading this feature list, you can probably imagine Taskbuilder is the most advanced and powerful task & project management plugin in the market. Give Taskbuilder a try.\n-\n-= Premium Add-Ons : =\n-* [Calender](https:\u002F\u002Ftaskbuilder.net\u002Ftask-calendar\u002F) - Get daily, weekly, or monthly view of task timelines with drag and drop feature. Filter them by Title,Project name, Status, Category, Priority,User Names if necessary.\n-* [Email Piping](https:\u002F\u002Ftaskbuilder.net\u002Femail-piping\u002F) - Email piping allows users to create tasks directly from their email inboxes. This will save a lot of time to visit your website every time, log in to their account, and then create a new task.\n-* [Custom Fields](https:\u002F\u002Ftaskbuilder.net\u002Fcustom-fields\u002F) - You can add Custom Field to the tasks. There are 5 types of custom fields you can create. i.e. Text, Number, Date, Dropdown, File Upload.\n-* [Time Tracker](https:\u002F\u002Ftaskbuilder.net\u002Ftime-tracker\u002F) - Time tracker tracks the exact time you spent on your tasks. Timer with start, stop feature for every task. \n-* [Gantt Chart](https:\u002F\u002Ftaskbuilder.net\u002Fgantt-chart\u002F) - Gantt Chart add-on effectively time manage your tasks and visualize upcoming deadlines for any project. Projects planners also use Gantt charts to maintain a bird's eye view of projects. \n-* [Duplicate Project](https:\u002F\u002Ftaskbuilder.net\u002Fduplicate-project\u002F) - Duplicate Project add-on allows you to clone existing project and you will get same project with(tasks+checklists).\n-* [Report](https:\u002F\u002Ftaskbuilder.net\u002Freport\u002F) - Report add-on allows you to create detail project progress reports for any project and customize which data should be shown in the report. You can then download report in PDF or CSV format.\n-* [Buddypress](https:\u002F\u002Ftaskbuilder.net\u002Fbuddypress\u002F) - Buddypress Integration add-on allows you to create and manage projects,tasks in buddypress group on your own WordPress site.\n-* [WooCommerce](https:\u002F\u002Ftaskbuilder.net\u002Fwoocommerce\u002F) - WooCommerce Integration add-on automatically create task after order received. You can set order details in task description.\n-* [Due Date Reminder](https:\u002F\u002Ftaskbuilder.net\u002Fdue-date-reminder\u002F) - Due date reminder are super helpful for keeping your team on track to hit deadlines. Email notification will send to customer before due date of task.\n-* [Usergroup](https:\u002F\u002Ftaskbuilder.net\u002Fusergroup\u002F) - Using usergroup add-on you can assign group of users to project and those group assign to project can be assign to tasks of project.\n-* [Recurrent Task](https:\u002F\u002Ftaskbuilder.net\u002Frecurrent-task\u002F) - Recurrent Tasks add-on allow administrators to effortlessly schedule recurring tasks for routine tasks The system automatically generates these tasks at the defined times, providing a streamlined approach to essential and repetitive processes. With versatile recurrence periods, customizable scheduling options, and the ability to set start and end dates.\n-* [Overdue Notifier](https:\u002F\u002Ftaskbuilder.net\u002Foverdue-notifier\u002F) - Overdue Notifier is a add-on that automatically sends email notifications when a task’s due date has passed and the task is not yet completed.\n-\n-## 👨‍💻 DOCUMENTATION AND SUPPORT ##\n-\n-- For documentation and tutorials go to our [Help](https:\u002F\u002Ftaskbuilder.net\u002Fhelp\u002F)\n-- If you have any more questions, visit our [Support](https:\u002F\u002Ftaskbuilder.net\u002Fsupport\u002F)\n-\n-= Available Translations : =\n-Available in below languages.\n-* Romanian\n-* French (France)\n-* German (Germany)\n-* German(formal)\n-* Turkey\n-* Portuguese (Brazil)\n-If you are a translator, you can get free access to all premium add-ons for a year in exchange for translating them into your language if it is not available already. We will renew the Premium subscription next year if you continue contributing to the translation. If interested, don't hesitate to contact us via our [support page](https:\u002F\u002Ftaskbuilder.net\u002Fsupport\u002F).\n-\n-== Installation ==\n-\n-This plugin is almost plug and play! \n-\n-= Modern Way: =\n-1. Go to the WordPress Dashboard \"Add New Plugin\" section.\n-2. Search For \"Taskbuilder\". \n-3. Install, then Activate it.\n-\n-= Old Way: =\n-1. Upload `Taskbuilder` to the `\u002Fwp-content\u002Fplugins\u002F` directory\n-2. Activate the plugin through the 'Plugins' menu in WordPress.\n-\n-\n-== Frequently Asked Questions ==\n-\n-= Q. Who can create projects? =\n-A. Only Admin's can create projects and edit them.\n-\n-= Q. Who can create tasks, checklist, comments? =\n-A. Admins and every co-workers from a project can create these.\n-\n-= Q. Can every member see every project? =\n-A. Only admins (administrator) can see all of them. Other user roles can only see their assigned projects.\n-\n-= Q. Can the plugin be extended? =\n-A. Sure, lots of actions and filters are added by default and will add more of them.\n-\n-\n-\n-== Screenshots ==\n-\n-1. Project list view\n-2. Task list view\n-3. Task list (Kanban view)\n-4. Create project\n-5. Create task \n-6. Open project view\n-7. Open task view\n-8. Comment\n-9. Dashboard\n-10.Dashboard chart view\n-\n-== Changelog ==\n-= V 5.0.7(April 16,2026) = \n-*Fix: Vulnerability: Authenticated (Subscriber+) Time-Based Blind SQL Injection via 'project_search' Parameter.\n-\n-= V 5.0.6(March 26,2026) = \n-* Update: Taskbuilder menu has been updated for improved navigation and usability.\n-* New: Added dashboard view.\n-* New: Tasks are now visible in the Kanban view within an open project.\n-* New: Client access mode: Add users with a client role to projects and tasks with controlled access.\n-* Fix: Resolved an issue with editing the start and end dates in the open task view and open project view.\n-* Fix: Resolved an issue where users could see public projects but were unable to access them if not assigned to the project.\n-* Fix: Resolved an issue where archived tasks were visible in the Kanban view when it was set as the default task list. Also fixed non-archived tasks appearing in the archived task list.\n-\n-= V 5.0.5(Feb 25,2026) = \n-* Fix: Remove update checker file.\n-* Fix: Text domain does not match plugin slug.\n-* Fix: data sanitized and escaped.\n-* Fix: Not used wp_json_encode to echo json.\n-* Fix: Remove space from starting of the php file.\n-\n-= V 5.0.4(Feb 24,2026) =\n-* Fix: Used dynamic value inside the escape function.\n-* Fix: Text domain does not match plugin slug.\n-* Fix: Check nonce with another condition.\n-* Fix: Vulnerability: Authenticated (Administrator+) Stored Cross-Site Scripting via 'Block Emails' Field.\n-* Fix: escape function used to sanitize.\n-* Fix: escaping & Sanitization.\n-* Fix: wp_json_encode function not used to echo json.\n-* Fix: Enable\u002FDisable TinyMCE Setting not applied to edit task thread.\n-* Fix( pro feature ): Usergroup can't add from frontend.\n-\n-= V 5.0.3(Feb 9,2026) =\n-* Fix: Vulnerability: Missing Authorization to Authenticated (Subscriber+) Arbitrary Project\u002FTask Comment Creation.\n-* Fix: Vulnerability: Authenticated (Subscriber+) SQL Injection via 'order' and 'sort_by' Parameters.\n-* New: Setting to set Duration in days,months,hours instead start and end date for project.\n-* New: Setting to set Duration in days,months,hours instead start and end date for task.\n-\n-= V 5.0.2(January 2,2026) =\n-* New (Pro feature): Email Piping add-on. Email Piping  is a feature that lets users create project tasks simply by sending emails.\n-* New: Archived Tasks. An archived task is a completed or inactive task that is removed from the active task list but kept for future reference, reporting, or audit purposes. It cannot be edited or worked on unless restored. \n-* New: Edit and reorder cheklists items.\n-\n-= V 5.0.1(December 3,2025) =\n-* Fix: Checklist progress bar not updated without page refresh.\n-* New (Pro feature): Gantt Chart shortcode. Gantt chart is accesible from frontend using shortcode [wppm_gantt_chart project =\"insert project name here\"].\n-\n-= V 5.0.0(November 20,2025) =\n-* Fix: XSS Vulnerability.\n-* New: Print task feature in open task view. PDF Open in browser or download option are available.\n-* Fix(pro feature): Recurrent Task add-on small bug fix.\n-\n-= V 4.0.9(October 17,2025) =\n-* New: Portuguese (Brazil) Translation added.\n-* Fix: If edit project description and remain empty, it does not save empty value.\n-* Fix: If edit category and remain it empty, it does not save empty value.\n-* Fix: If edit task description and remain empty, it does not save empty value.\n-* Fix: If edit task priority and emain it empty, it does not save empty value.\n-* New: Duplicate project email notification setting-\n-       1. Send single email for task creation(which mention all tasks), after duplicate project.\n-       2. Send each email for task, after duplicate project.\n-\n-= V 4.0.8(September 9,2025) = \n-* Fix: Change Visibility bug fix.\n-* Fix: Access control vulnerability. \n-\n-= V 4.0.7(August 27,2025) = \n-* Fix: Email notification not sending.\n-* Fix: Error while submiting task comment. \n-\n-= V 4.0.6(August 11,2025) = \n-* New(Pro feature): Overdue Notifier add-on.\n-* New(Pro fearure): You can set custom fields as required or not required.\n-* New(Pro feature): Custom fields added in recurrent tasks.\n-* Fix: Access control vulnerability.\n-\n-= V 4.0.5(July 17,2025) =\n-* New: Turkey Translation.\n-* New: Hide completed status from project list. Setting is added in (Dashboard > Projects > Settings > General > Default Show\u002Fhide completed status's projects from projects list). \n-* New: Hide completed status from task list. Setting is added in (Dashboard > Projects > Settings > General > Default Show\u002Fhide completed status's tasks from task list).\n-* New: Hide selected statuses projects from frontend. Setting is added in (Dashboard > Projects > Settings > Miscellaneous > Default hide selected statuses projects from frontend).\n-* New: Hide selected statuses tasks from frontend. Setting is added in (Dashboard > Projects > Settings > Miscellaneous > Default hide selected statuses tasks from frontend).\n-* New: Default show\u002Fhide comment section in open project. Setting is added in (Dashboard > Projects > Settings > General > Default show\u002Fhide comment section in open project).\n-* New: Default show\u002Fhide comment section in open task. Setting is added in (Dashboard > Projects > Settings > General > Default show\u002Fhide comment section in open task).\n-* Fix: When any value from start date\u002F end date not inserted on (project\u002Ftask) list, other value shows empty.\n-* Fix: When end date is not added still it shows end date in red colour.\n-* Fix: In report add-on date is no showing in csv format report.\n-* New: Custom fields added in csv report.\n-\n-= V 4.0.4(June 16, 2025) =\n-* New: Date Format Setting added (Dashboard > Projects > Settings > General > Default date format).\n-* New: UI Changes.\n-\n-= V 4.0.3(May 2, 2025) =\n-* New: Public project's shortcode. You can use [wppm_public_projects_tasks] shortcode to display public project's tasks from frontend.\n-* Fix: If cowerkers permission disable for to change task status, cowerkers still change status by drag and drop feature in kanban view.\n-* Fix: When status change by drag and drop cards in kanban view, change status log not added in open task form.\n-* New (pro feature): Recurrent Task add-on.\n-\n-= V 4.0.2(April 1,2025) =\n-* Fix: SQL Injection.\n-* Fix: If project description is empty, while creating project then project does not creating.\n-* Fix: If task description is empty, while creating task then task does not creating.\n-\n-= V 4.0.1(March 21,2025) =\n-* New: .pot file updated.\n-\n-= V 4.0.0(March 11,2025) =\n-* Fix: When projects and tasks both shortcode used on same page it gives i am body (empty body error) when change status, assign user etc.\n-* New: You can add task url in email notification. By using task url you can access task from frontend. For this you have to set page for task url in setting Dashboard > Projects > Settings > Page Setting > Task url page. Please confirm you have added tasks shortcode [wppm_tasks] on selected task url page.\n-* New: You can add project url in email notification. By using project url you can access project from frontend. For this you have to set page for project in setting Dashboard > Projects > Settings > Page Setting > Project url page. Please confirm you have added projects shortcode [wppm_projects] on selected project url page.\n-* Fix: License can't activate for add-ons.\n-* New (Pro feature): Usersgroup Add-on.\n-\n-= V 3.0.9(Jan 21,2025) =\n-* Fix: If status name change from setting, changes not reflect on filter of task list, project list.\n-* New: Rich Text Editor Setting. You can enable\u002Fdisable Rich Text Editor from setting( Dashboard > projects > Settings > Rich Text Editor).\n-* New(Pro feature): You can rearrange custom fields. By that order custom fields will display in create task form.\n-\n-= V 3.0.8(Dec 25,2024) =\n-* Fix: Attachments not opening in task comment.\n-\n-= V 3.0.7(Dec 19,2024) = \n-* Fix: When edit task comment and save it, rn added insatead of space.\n-* Fix: SQL Injection (SQLi) vulnerability.\n-* Fix: XSS vulnerability.\n-* New(Pro feature): Due Date reminder add-on.\n-\n-= V 3.0.6(Nov 19,2024) =\n-* New: Compatible with WordPress v6.7.\n-* New: Setting added for allow co-workers to create tasks. You can set default enable\u002Fdisable permission for co-workers in setting (Dashboard > Projects > Settings > Co-workers permission).\n-* New: Setting added for allow co-workers to add checklists. You can set default enable\u002Fdisable permission for co-workers in setting (Dashboard > Projects > Settings > Co-workers permission).\n-* New: Setting added for allow co-workers to change task status. You can set default enable\u002Fdisable permission for co-workers in setting (Dashboard > Projects > Settings > Co-workers permission).\n-* New: Setting added for allow co-workers to assign task users. You can set default enable\u002Fdisable permission for co-workers in setting (Dashboard > Projects > Settings > Co-workers permission).\n-\n-= V 3.0.5(Oct 24,2024) =\n-* Fix: SQL Injection (SQLi) vulnerability.\n-* New: Bulk action on project list & task list to change status, change category, Assign co-workers, Delete Task\u002FProject etc.\n-* New: Setting to show\u002Fhide default TinyMCE editor in open project.\n-* New: Setting to show\u002Fhide default TinyMCE editor in open task.\n-* Fix: If comment is empty and only attachment uploaded in open project & in open task, comment is not added in project\u002Ftask.\n-* Fix: If previous assign user not set in email notification setting still email notification goes to them.\n-* New: Email notification to project creator\u002Ftask creator. You can set project creator\u002F task creator in email notification setting as recipients.\n-* New: Setting to send email notification to current user. If user is present in project and setting is enable for email notification send to current user then current user will get email notification.\n-* Fix: If project delete, project comment not deleted from database.\n-* Fix: If task delete, task comment not deleted from database.\n-\n-= V 3.0.4(Sep 26,2024) =\n-* New: Log added in projects. If any action perform in project then log will get added in project(e.g change status, comment delete, change creator, assign user etc.)\n-* New: Log added in tasks. If any action perform in task then log will get added in task(e.g change status, comment delete, change creator, assign user etc.)\n-* New(pro): When project will get duplicated, custom fields will get duplicate in project. Also, custom fields value in task will get duplicate.\n-* New: German Translation available.\n-* New: Romanian Translation available.\n-* New: German(formal) Translation available.\n-* Fix: php warning in Custom field add-on.\n-* Fix: php warning in Duplicate project add-on.\n-* New: When project will get duplicated, logs also get added in project.\n-* New: When task will get duplicated, logs also get added in task.\n-\n-= V 3.0.3(Aug 27,2024) =\n-* New: User role and capability. You can edit wordpress registered user and set capability as WPPM Administrator or WPPM Manager. User having manager role can create project and manage its tasks as well rather only admin had capability to create project. User having WPPM Administrator role can manage all features of Taskbuilder.\n-\n-= V 3.0.2(July 22,2024) =\n-* New: You can display only selected project's task on frontend page. If you want to display only selected project's task on page, you can add attribute as project name to tasks shortcode. It will only display tasks of selected project. For ex- add shortcode [wppm_tasks project =\"insert project name here\"] on page. It will only shows tasks of project which you added as a project parameter in task's shortcode.\n-* New: Compatible with WordPress v6.6.\n-\n-= V 3.0.1(June 18,2024) =\n-* New (Pro feature): WooCommerce Integration add-on.\n-* New: Default project status setting. You can set defalut status for project in setting which will apply to project after create it.\n-* New: Default task status setting. You can set defalut status for task in setting which will apply to task after create it.\n-\n-= V 3.0.0(May 1,2024) =\n-* Compatible with WordPress v6.5.2.\n-* New: Appearance Setting(Customizable Appearance to match up with your theme). You can set setting in (Projects > Settings > Appearance).\n-* New: Project Comment. You can add comment in project like task.\n-* New: Project filter in task list(Task by project).\n-* New: Project start & end date clickable in open project.\n-* New: Task start & end date clickable in open Task.\n-* New: Project name added on kanban board.\n-* Fix: Php warning & notices.\n-* Fix: Some security fixes. \n-* Fix(Pro feature): Warning in Gantt Chart add-on.\n-* Fix(Pro feature): Public project's task not showing on calendar for co-worker.\n-\n-= V 2.0.9(Feb 28,2024) =\n-* New: Hooks added.\n-* Fix: If Setting hide\u002Fshow time in start date and end date of task is disable, still time diaplay in open project's tasks in popup window.\n-\n-= V 2.0.8(Feb 14,2024) =\n-* New: Highlight due dates of projects and tasks in task list, project list.\n-* New: Setting given to hide\u002Fshow time in start date and end date of task.\n-* Fix: Pagination issue fixed in grid view.\n-\n-= V 2.0.7(Jan 10,2024) =\n-* New (Pro feature): Buddypress Integration add-on.\n-* New: Hooks added.\n-* Fix: Code Optimization for task list and project list.\n-\n-= V 2.0.6(Oct 19,2023) =\n-* New: Filter added in Projects\u002FTasks list.\n-\n-= V 2.0.5(Sep 15,2023) =\n-* New: Hooks added in all add-ons(pro-feature).\n-* Fix: Sort by category not working on project list.\n-* Fix: Sort by status not working on project list.\n-* Fix: PHP warning.\n-\n-= V 2.0.4(August 11, 2023) = \n-* New: Public project feature ( You can enable\u002Fdisable this feature from miscellaneous setting (Projects > Settings > Miscellaneous)).\n-* New: User can change project while editing task.\n-* New: Compatible with WordPress v6.3.\n-* New: Documentation links added in setting.\n-* Fix: PHP notices and warnings.\n-* Fix: If user(manager) remove from project, this user still access tasks.\n-\n-= V 2.0.3(June 29, 2023) =\n-* New: Sorting Project list by project, status, category, start date and end date.\n-* New: Improvement in task list search.\n-* New: Improvement in task list search(Grid view).\n-\n-= V 2.0.2(May 11, 2023) =\n-* New: Setting for co-worker's to edit task.\n-* Compatible with WordPress v6.2.\n-* New (Pro feature): Report add-on.\n-\n-= V 2.0.1(March 3, 2023) = \n-* New: Sorting task list by name, project, status, priority, start date and end date.\n-\n-= V 2.0.0 (January 5,2023) =\n-* New: Setting for Default show\u002Fhide start date and end date of project.\n-* New: Setting for Default show\u002Fhide start date and end date of task.\n-* Fix: Clone task's custom fields after task cloned.\n-* Fix: Delete custom fields after deleting task.\n-\n-= V 1.0.9 (October 21, 2022) =\n-* New: Kanban board display by statuses order which are set in setting(Projects > Settings >Task Statuses).\n-* New (Pro feature): Tasks Calendar shortcode added [wppm_tasks_calendar] in Task Calendar add-on. \n-\n-= V 1.0.8 (September 8, 2022) =\n-* Fix: Cross-Site scripting Vulnerability.\n-\n-= V 1.0.7 (August 18, 2022) =\n-* New: Duplicate Project add-on.\n-* Fix: If clone task delete then attachment of original task also get delete.\n-* Fix: Checklists not get delete when we delete task and project.\n-* Fix: Thread attachment get deleted from comment but it is not deleted from upload folder and database.\n-\n-= V 1.0.6 (July 14, 2022) =\n-* New: Filter hooks added.\n-* Fix: If single user is assigned to task, we can't remove that user from task.\n-* Fix: Task related email notification(create task, change status, assign user, new comment) does not sending to project manager.\n-* Fix: In clone task feature task's creator set to current user instead of original task's task creator.\n-* Fix: Clone task's date creation set to current time instead of original task's create time.\n-* Fix: Clone task's attachment upload time set to current time instead of original task's attachment upload time.\n-* Fix: Clone tasks's comment attachment uploading twice.\n-\n-= V 1.0.5 (May 31, 2022) =\n-* New Feature: Clone task.\n-* Fix : Strings are available for translation(Time in project start date and end date,\n-       Default show\u002Fhide time in start and end date of project, Show).\n-* New: French translation is available.\n-\n-= V 1.0.4 (April 21, 2022) =\n-* Fix : Project status order does not save in setting.\n-* New : Addon's menu added.\n-\n-= V 1.0.3 (March 10, 2022) =\n-* Fix : After task creation does get not redirected to defaut view set in setting. i.e grid or list view.\n-* Fix : mime_content_type() function not worked in some php versions so changed this function with wordpress's function wp_check_filetype().\n-* Fix : Can't download attachments added in last months.\n-\n-= V 1.0.2 (January 24, 2022) =\n-* New Feature : Setting given to hide\u002Fshow time in start date and end date of project.\n-* Fix : Changed discussion text to comment.\n-* Fix : If default view for task is set to kanban view in setting then after clicking on task list button it gets redirected to list view.\n-* Fix : The link option in TinyMCE editor does not open in new window.\n-\n-= V 1.0.1 (December 28, 2021) =\n-* Hooks added.\n-\n-= V 1.0.0 (October 8, 2021) =\n-* Initial release.\n+=== Taskbuilder - Project Management & Task Management Tool With Kanban Board ===\r\n+Contributors: taskbuilder\r\n+Donate link: https:\u002F\u002Ftaskbuilder.net\r\n+Tags: project management,task management,task manager,project,project manager\r\n+Requires at least: 5.6\r\n+Tested up to: 7.0\r\n+Requires PHP: 7.4\r\n+Stable tag: 5.0.8\r\n+License: GPLv3 or later\r\n+\r\n+Taskbuilder is an easy-to-use project management tool that helps teams organize work and boost productivity. It includes powerful task management, a visual kanban board for easy task tracking, and seamless team collaboration. With intuitive project and task dashboards, flexible user roles and role management, simple task assignment, and real-time task status updates, Taskbuilder makes project planning and workflow management simple for any multi-user team.\r\n+\r\n+== Description ==\r\n+\r\n+Taskbuilder simplifies project management and task management with powerful features like a visual kanban board, custom fields, duplicate projects, calendar view, and due date reminders. It includes user groups, recurring tasks, overdue notifications, a built-in time tracker, Gantt charts, checklists, and email piping. With detailed dashboards and reporting, Taskbuilder helps teams stay organized and productive. It also integrates seamlessly with BuddyPress and WooCommerce for extended functionality.\r\n+\r\n+= Shortcodes : =\r\n+`\r\n+[wppm_projects] - Manage projects from front-end.\r\n+[wppm_tasks] - Manage tasks from front-end.\r\n+[wppm_tasks_calendar] - Use Calendar on front-end(pro feature).\r\n+[wppm_tasks project =\"insert project name here\"]- If you want to display only selected project's task on page, you can add attribute as project name to tasks shortcode. It will only display tasks of selected project.\r\n+[wppm_public_projects_tasks] = Display public project's tasks from frontend.\r\n+[wppm_gantt_chart project =\"insert project name here\"]- You can access Gantt Chart from frontend. You have to give project name as parameter in shortcode (pro feature).\r\n+\r\n+`\r\n+### 🌟 Top Features ###\r\n+\r\n+- **Dashboard**: Get a quick overview of projects, tasks, and team workload in one centralized place.\r\n+- **Unlimited Projects**: Create unlimited projects with no restrictions, even in the free version.\r\n+- **Unlimited Tasks**:Create unlimited tasks with no restrictions, even in the free version.\r\n+- **Unlimited co-workers**: There is no limit to add co-workers. You can create any number of co-workers so that you can divide your workload. You can use wordpress's registered users as co-workers(manager, co-workers) or client.\r\n+- **Client Access Mode**: Add users with a client role to projects and tasks with controlled access.\r\n+- **Team Collaboration**: Work together with your team in real time\r\n+- **Ajax functionality**: Almost every functionality is Ajax based so that its operational speed is at its best.\r\n+- **Manage Projects & Tasks From Front-end**: There is no need to pay anything for manage projects and tasks from front-end.\r\n+- **Checklist**: Break big tasks into small ones, check things off the list, and watch that status bar go to 100% complete.\r\n+- **File Attachments**: Files can attached in comments.\r\n+- **Responsive Design**: It is designed to work on any possbile screen size so that you can operate anytime, anywhere. It is recommended to use full-width template for Project and Task page so that it will work smoothly.\r\n+- **Kanban Board**: Cards represent your tasks and have everything you need to get the job done. As you make progress, drag cards from list to list so that everyone knows the status of the task at hand.\r\n+- **List View**: You can manage tasks and project on list view.\r\n+- **Filter**: You can filter task and projects by Title,Project name, Status, Category, Priority,User Names.\r\n+- **Email Notifications**: Customizable email notification templates available for you to customize as per your requirement. You can make use of macro tags for task & projects specific information which gets replaced dynamically.\r\n+- **Custom Statuses**: You can create unlimited custom statuses for projects and tasks.\r\n+- **Custom Priorities**: You can create unlimited custom priorities for tasks.\r\n+- **Custom Categories**: You can create unlimited custom categories for projects.\r\n+- **Appearance Setting**: Customizable Appearance to match up with your theme.\r\n+- **Shortcode Attribute**: Display selected project's task on frontend. If you want to display only selected project's task on page, you can add attribute as project name to tasks shortcode. It will only display tasks of selected project.For ex- add shortcode [wppm_tasks project =\"insert project name here\"] on page. It will only shows tasks of project which you added as a project parameter in task's shortcode.\r\n+ \r\n+\r\n+🙌 After reading this feature list, you can probably imagine Taskbuilder is the most advanced and powerful task & project management plugin in the market. Give Taskbuilder a try.\r\n+\r\n+= Premium Add-Ons : =\r\n+* [Calender](https:\u002F\u002Ftaskbuilder.net\u002Ftask-calendar\u002F) - Get daily, weekly, or monthly view of task timelines with drag and drop feature. Filter them by Title,Project name, Status, Category, Priority,User Names if necessary.\r\n+* [Email Piping](https:\u002F\u002Ftaskbuilder.net\u002Femail-piping\u002F) - Email piping allows users to create tasks directly from their email inboxes. This will save a lot of time to visit your website every time, log in to their account, and then create a new task.\r\n+* [Custom Fields](https:\u002F\u002Ftaskbuilder.net\u002Fcustom-fields\u002F) - You can add Custom Field to the tasks. There are 5 types of custom fields you can create. i.e. Text, Number, Date, Dropdown, File Upload.\r\n+* [Time Tracker](https:\u002F\u002Ftaskbuilder.net\u002Ftime-tracker\u002F) - Time tracker tracks the exact time you spent on your tasks. Timer with start, stop feature for every task. \r\n+* [Gantt Chart](https:\u002F\u002Ftaskbuilder.net\u002Fgantt-chart\u002F) - Gantt Chart add-on effectively time manage your tasks and visualize upcoming deadlines for any project. Projects planners also use Gantt charts to maintain a bird's eye view of projects. \r\n+* [Duplicate Project](https:\u002F\u002Ftaskbuilder.net\u002Fduplicate-project\u002F) - Duplicate Project add-on allows you to clone existing project and you will get same project with(tasks+checklists).\r\n+* [Report](https:\u002F\u002Ftaskbuilder.net\u002Freport\u002F) - Report add-on allows you to create detail project progress reports for any project and customize which data should be shown in the report. You can then download report in PDF or CSV format.\r\n+* [Buddypress](https:\u002F\u002Ftaskbuilder.net\u002Fbuddypress\u002F) - Buddypress Integration add-on allows you to create and manage projects,tasks in buddypress group on your own WordPress site.\r\n+* [WooCommerce](https:\u002F\u002Ftaskbuilder.net\u002Fwoocommerce\u002F) - WooCommerce Integration add-on automatically create task after order received. You can set order details in task description.\r\n+* [Due Date Reminder](https:\u002F\u002Ftaskbuilder.net\u002Fdue-date-reminder\u002F) - Due date reminder are super helpful for keeping your team on track to hit deadlines. Email notification will send to customer before due date of task.\r\n+* [Usergroup](https:\u002F\u002Ftaskbuilder.net\u002Fusergroup\u002F) - Using usergroup add-on you can assign group of users to project and those group assign to project can be assign to tasks of project.\r\n+* [Recurrent Task](https:\u002F\u002Ftaskbuilder.net\u002Frecurrent-task\u002F) - Recurrent Tasks add-on allow administrators to effortlessly schedule recurring tasks for routine tasks The system automatically generates these tasks at the defined times, providing a streamlined approach to essential and repetitive processes. With versatile recurrence periods, customizable scheduling options, and the ability to set start and end dates.\r\n+* [Overdue Notifier](https:\u002F\u002Ftaskbuilder.net\u002Foverdue-notifier\u002F) - Overdue Notifier is a add-on that automatically sends email notifications when a task’s due date has passed and the task is not yet completed.\r\n+\r\n+## 👨‍💻 DOCUMENTATION AND SUPPORT ##\r\n+\r\n+- For documentation and tutorials go to our [Help](https:\u002F\u002Ftaskbuilder.net\u002Fhelp\u002F)\r\n+- If you have any more questions, visit our [Support](https:\u002F\u002Ftaskbuilder.net\u002Fsupport\u002F)\r\n+\r\n+= Available Translations : =\r\n+Available in below languages.\r\n+* Romanian\r\n+* French (France)\r\n+* German (Germany)\r\n+* German(formal)\r\n+* Turkey\r\n+* Portuguese (Brazil)\r\n+If you are a translator, you can get free access to all premium add-ons for a year in exchange for translating them into your language if it is not available already. We will renew the Premium subscription next year if you continue contributing to the translation. If interested, don't hesitate to contact us via our [support page](https:\u002F\u002Ftaskbuilder.net\u002Fsupport\u002F).\r\n+\r\n+== Installation ==\r\n+\r\n+This plugin is almost plug and play! \r\n+\r\n+= Modern Way: =\r\n+1. Go to the WordPress Dashboard \"Add New Plugin\" section.\r\n+2. Search For \"Taskbuilder\". \r\n+3. Install, then Activate it.\r\n+\r\n+= Old Way: =\r\n+1. Upload `Taskbuilder` to the `\u002Fwp-content\u002Fplugins\u002F` directory\r\n+2. Activate the plugin through the 'Plugins' menu in WordPress.\r\n+\r\n+\r\n+== Frequently Asked Questions ==\r\n+\r\n+= Q. Who can create projects? =\r\n+A. Only Admin's can create projects and edit them.\r\n+\r\n+= Q. Who can create tasks, checklist, comments? =\r\n+A. Admins and every co-workers from a project can create these.\r\n+\r\n+= Q. Can every member see every project? =\r\n+A. Only admins (administrator) can see all of them. Other user roles can only see their assigned projects.\r\n+\r\n+= Q. Can the plugin be extended? =\r\n+A. Sure, lots of actions and filters are added by default and will add more of them.\r\n+\r\n+\r\n+\r\n+== Screenshots ==\r\n+\r\n+1. Project list view\r\n+2. Task list view\r\n+3. Task list (Kanban view)\r\n+4. Create project\r\n+5. Create task \r\n+6. Open project view\r\n+7. Open task view\r\n+8. Comment\r\n+9. Dashboard\r\n+10.Dashboard chart view\r\n+\r\n+== Changelog ==\r\n+= V 5.0.8(May 21,2026) = \r\n+* Fix: Contributor+ Stored XSS vulnerability.\r\n+* Fix: SQL Injection via 'task_search' Parameter.\r\n+\r\n+= V 5.0.7(April 16,2026) = \r\n+* Fix: Vulnerability: Authenticated (Subscriber+) Time-Based Blind SQL Injection via 'project_search' Parameter.\r\n+\r\n+= V 5.0.6(March 26,2026) = \r\n+* Update: Taskbuilder menu has been updated for improved navigation and usability.\r\n+* New: Added dashboard view.\r\n+* New: Tasks are now visible in the Kanban view within an open project.\r\n+* New: Client access mode: Add users with a client role to projects and tasks with controlled access.\r\n+* Fix: Resolved an issue with editing the start and end dates in the open task view and open project view.\r\n+* Fix: Resolved an issue where users could see public projects but were unable to access them if not assigned to the project.\r\n+* Fix: Resolved an issue where archived tasks were visible in the Kanban view when it was set as the default task list. Also fixed non-archived tasks appearing in the archived task list.\r\n+\r\n+= V 5.0.5(Feb 25,2026) = \r\n+* Fix: Remove update checker file.\r\n+* Fix: Text domain does not match plugin slug.\r\n+* Fix: data sanitized and escaped.\r\n+* Fix: Not used wp_json_encode to echo json.\r\n+* Fix: Remove space from starting of the php file.\r\n+\r\n+= V 5.0.4(Feb 24,2026) =\r\n+* Fix: Used dynamic value inside the escape function.\r\n+* Fix: Text domain does not match plugin slug.\r\n+* Fix: Check nonce with another condition.\r\n+* Fix: Vulnerability: Authenticated (Administrator+) Stored Cross-Site Scripting via 'Block Emails' Field.\r\n+* Fix: escape function used to sanitize.\r\n+* Fix: escaping & Sanitization.\r\n+* Fix: wp_json_encode function not used to echo json.\r\n+* Fix: Enable\u002FDisable TinyMCE Setting not applied to edit task thread.\r\n+* Fix( pro feature ): Usergroup can't add from frontend.\r\n+\r\n+= V 5.0.3(Feb 9,2026) =\r\n+* Fix: Vulnerability: Missing Authorization to Authenticated (Subscriber+) Arbitrary Project\u002FTask Comment Creation.\r\n+* Fix: Vulnerability: Authenticated (Subscriber+) SQL Injection via 'order' and 'sort_by' Parameters.\r\n+* New: Setting to set Duration in days,months,hours instead start and end date for project.\r\n+* New: Setting to set Duration in days,months,hours instead start and end date for task.\r\n+\r\n+= V 5.0.2(January 2,2026) =\r\n+* New (Pro feature): Email Piping add-on. Email Piping  is a feature that lets users create project tasks simply by sending emails.\r\n+* New: Archived Tasks. An archived task is a completed or inactive task that is removed from the active task list but kept for future reference, reporting, or audit purposes. It cannot be edited or worked on unless restored. \r\n+* New: Edit and reorder cheklists items.\r\n+\r\n+= V 5.0.1(December 3,2025) =\r\n+* Fix: Checklist progress bar not updated without page refresh.\r\n+* New (Pro feature): Gantt Chart shortcode. Gantt chart is accesible from frontend using shortcode [wppm_gantt_chart project =\"insert project name here\"].\r\n+\r\n+= V 5.0.0(November 20,2025) =\r\n+* Fix: XSS Vulnerability.\r\n+* New: Print task feature in open task view. PDF Open in browser or download option are available.\r\n+* Fix(pro feature): Recurrent Task add-on small bug fix.\r\n+\r\n+= V 4.0.9(October 17,2025) =\r\n+* New: Portuguese (Brazil) Translation added.\r\n+* Fix: If edit project description and remain empty, it does not save empty value.\r\n+* Fix: If edit category and remain it empty, it does not save empty value.\r\n+* Fix: If edit task description and remain empty, it does not save empty value.\r\n+* Fix: If edit task priority and emain it empty, it does not save empty value.\r\n+* New: Duplicate project email notification setting-\r\n+       1. Send single email for task creation(which mention all tasks), after duplicate project.\r\n+       2. Send each email for task, after duplicate project.\r\n+\r\n+= V 4.0.8(September 9,2025) = \r\n+* Fix: Change Visibility bug fix.\r\n+* Fix: Access control vulnerability. \r\n+\r\n+= V 4.0.7(August 27,2025) = \r\n+* Fix: Email notification not sending.\r\n+* Fix: Error while submiting task comment. \r\n+\r\n+= V 4.0.6(August 11,2025) = \r\n+* New(Pro feature): Overdue Notifier add-on.\r\n+* New(Pro fearure): You can set custom fields as required or not required.\r\n+* New(Pro feature): Custom fields added in recurrent tasks.\r\n+* Fix: Access control vulnerability.\r\n+\r\n+= V 4.0.5(July 17,2025) =\r\n+* New: Turkey Translation.\r\n+* New: Hide completed status from project list. Setting is added in (Dashboard > Projects > Settings > General > Default Show\u002Fhide completed status's projects from projects list). \r\n+* New: Hide completed status from task list. Setting is added in (Dashboard > Projects > Settings > General > Default Show\u002Fhide completed status's tasks from task list).\r\n+* New: Hide selected statuses projects from frontend. Setting is added in (Dashboard > Projects > Settings > Miscellaneous > Default hide selected statuses projects from frontend).\r\n+* New: Hide selected statuses tasks from frontend. Setting is added in (Dashboard > Projects > Settings > Miscellaneous > Default hide selected statuses tasks from frontend).\r\n+* New: Default show\u002Fhide comment section in open project. Setting is added in (Dashboard > Projects > Settings > General > Default show\u002Fhide comment section in open project).\r\n+* New: Default show\u002Fhide comment section in open task. Setting is added in (Dashboard > Projects > Settings > General > Default show\u002Fhide comment section in open task).\r\n+* Fix: When any value from start date\u002F end date not inserted on (project\u002Ftask) list, other value shows empty.\r\n+* Fix: When end date is not added still it shows end date in red colour.\r\n+* Fix: In report add-on date is no showing in csv format report.\r\n+* New: Custom fields added in csv report.\r\n+\r\n+= V 4.0.4(June 16, 2025) =\r\n+* New: Date Format Setting added (Dashboard > Projects > Settings > General > Default date format).\r\n+* New: UI Changes.\r\n+\r\n+= V 4.0.3(May 2, 2025) =\r\n+* New: Public project's shortcode. You can use [wppm_public_projects_tasks] shortcode to display public project's tasks from frontend.\r\n+* Fix: If cowerkers permission disable for to change task status, cowerkers still change status by drag and drop feature in kanban view.\r\n+* Fix: When status change by drag and drop cards in kanban view, change status log not added in open task form.\r\n+* New (pro feature): Recurrent Task add-on.\r\n+\r\n+= V 4.0.2(April 1,2025) =\r\n+* Fix: SQL Injection.\r\n+* Fix: If project description is empty, while creating project then project does not creating.\r\n+* Fix: If task description is empty, while creating task then task does not creating.\r\n+\r\n+= V 4.0.1(March 21,2025) =\r\n+* New: .pot file updated.\r\n+\r\n+= V 4.0.0(March 11,2025) =\r\n+* Fix: When projects and tasks both shortcode used on same page it gives i am body (empty body error) when change status, assign user etc.\r\n+* New: You can add task url in email notification. By using task url you can access task from frontend. For this you have to set page for task url in setting Dashboard > Projects > Settings > Page Setting > Task url page. Please confirm you have added tasks shortcode [wppm_tasks] on selected task url page.\r\n+* New: You can add project url in email notification. By using project url you can access project from frontend. For this you have to set page for project in setting Dashboard > Projects > Settings > Page Setting > Project url page. Please confirm you have added projects shortcode [wppm_projects] on selected project url page.\r\n+* Fix: License can't activate for add-ons.\r\n+* New (Pro feature): Usersgroup Add-on.\r\n+\r\n+= V 3.0.9(Jan 21,2025) =\r\n+* Fix: If status name change from setting, changes not reflect on filter of task list, project list.\r\n+* New: Rich Text Editor Setting. You can enable\u002Fdisable Rich Text Editor from setting( Dashboard > projects > Settings > Rich Text Editor).\r\n+* New(Pro feature): You can rearrange custom fields. By that order custom fields will display in create task form.\r\n+\r\n+= V 3.0.8(Dec 25,2024) =\r\n+* Fix: Attachments not opening in task comment.\r\n+\r\n+= V 3.0.7(Dec 19,2024) = \r\n+* Fix: When edit task comment and save it, rn added insatead of space.\r\n+* Fix: SQL Injection (SQLi) vulnerability.\r\n+* Fix: XSS vulnerability.\r\n+* New(Pro feature): Due Date reminder add-on.\r\n+\r\n+= V 3.0.6(Nov 19,2024) =\r\n+* New: Compatible with WordPress v6.7.\r\n+* New: Setting added for allow co-workers to create tasks. You can set default enable\u002Fdisable permission for co-workers in setting (Dashboard > Projects > Settings > Co-workers permission).\r\n+* New: Setting added for allow co-workers to add checklists. You can set default enable\u002Fdisable permission for co-workers in setting (Dashboard > Projects > Settings > Co-workers permission).\r\n+* New: Setting added for allow co-workers to change task status. You can set default enable\u002Fdisable permission for co-workers in setting (Dashboard > Projects > Settings > Co-workers permission).\r\n+* New: Setting added for allow co-workers to assign task users. You can set default enable\u002Fdisable permission for co-workers in setting (Dashboard > Projects > Settings > Co-workers permission).\r\n+\r\n+= V 3.0.5(Oct 24,2024) =\r\n+* Fix: SQL Injection (SQLi) vulnerability.\r\n+* New: Bulk action on project list & task list to change status, change category, Assign co-workers, Delete Task\u002FProject etc.\r\n+* New: Setting to show\u002Fhide default TinyMCE editor in open project.\r\n+* New: Setting to show\u002Fhide default TinyMCE editor in open task.\r\n+* Fix: If comment is empty and only attachment uploaded in open project & in open task, comment is not added in project\u002Ftask.\r\n+* Fix: If previous assign user not set in email notification setting still email notification goes to them.\r\n+* New: Email notification to project creator\u002Ftask creator. You can set project creator\u002F task creator in email notification setting as recipients.\r\n+* New: Setting to send email notification to current user. If user is present in project and setting is enable for email notification send to current user then current user will get email notification.\r\n+* Fix: If project delete, project comment not deleted from database.\r\n+* Fix: If task delete, task comment not deleted from database.\r\n+\r\n+= V 3.0.4(Sep 26,2024) =\r\n+* New: Log added in projects. If any action perform in project then log will get added in project(e.g change status, comment delete, change creator, assign user etc.)\r\n+* New: Log added in tasks. If any action perform in task then log will get added in task(e.g change status, comment delete, change creator, assign user etc.)\r\n+* New(pro): When project will get duplicated, custom fields will get duplicate in project. Also, custom fields value in task will get duplicate.\r\n+* New: German Translation available.\r\n+* New: Romanian Translation available.\r\n+* New: German(formal) Translation available.\r\n+* Fix: php warning in Custom field add-on.\r\n+* Fix: php warning in Duplicate project add-on.\r\n+* New: When project will get duplicated, logs also get added in project.\r\n+* New: When task will get duplicated, logs also get added in task.\r\n+\r\n+= V 3.0.3(Aug 27,2024) =\r\n+* New: User role and capability. You can edit wordpress registered user and set capability as WPPM Administrator or WPPM Manager. User having manager role can create project and manage its tasks as well rather only admin had capability to create project. User having WPPM Administrator role can manage all features of Taskbuilder.\r\n+\r\n+= V 3.0.2(July 22,2024) =\r\n+* New: You can display only selected project's task on frontend page. If you want to display only selected project's task on page, you can add attribute as project name to tasks shortcode. It will only display tasks of selected project. For ex- add shortcode [wppm_tasks project =\"insert project name here\"] on page. It will only shows tasks of project which you added as a project parameter in task's shortcode.\r\n+* New: Compatible with WordPress v6.6.\r\n+\r\n+= V 3.0.1(June 18,2024) =\r\n+* New (Pro feature): WooCommerce Integration add-on.\r\n+* New: Default project status setting. You can set defalut status for project in setting which will apply to project after create it.\r\n+* New: Default task status setting. You can set defalut status for task in setting which will apply to task after create it.\r\n+\r\n+= V 3.0.0(May 1,2024) =\r\n+* Compatible with WordPress v6.5.2.\r\n+* New: Appearance Setting(Customizable Appearance to match up with your theme). You can set setting in (Projects > Settings > Appearance).\r\n+* New: Project Comment. You can add comment in project like task.\r\n+* New: Project filter in task list(Task by project).\r\n+* New: Project start & end date clickable in open project.\r\n+* New: Task start & end date clickable in open Task.\r\n+* New: Project name added on kanban board.\r\n+* Fix: Php warning & notices.\r\n+* Fix: Some security fixes. \r\n+* Fix(Pro feature): Warning in Gantt Chart add-on.\r\n+* Fix(Pro feature): Public project's task not showing on calendar for co-worker.\r\n+\r\n+= V 2.0.9(Feb 28,2024) =\r\n+* New: Hooks added.\r\n+* Fix: If Setting hide\u002Fshow time in start date and end date of task is disable, still time diaplay in open project's tasks in popup window.\r\n+\r\n+= V 2.0.8(Feb 14,2024) =\r\n+* New: Highlight due dates of projects and tasks in task list, project list.\r\n+* New: Setting given to hide\u002Fshow time in start date and end date of task.\r\n+* Fix: Pagination issue fixed in grid view.\r\n+\r\n+= V 2.0.7(Jan 10,2024) =\r\n+* New (Pro feature): Buddypress Integration add-on.\r\n+* New: Hooks added.\r\n+* Fix: Code Optimization for task list and project list.\r\n+\r\n+= V 2.0.6(Oct 19,2023) =\r\n+* New: Filter added in Projects\u002FTasks list.\r\n+\r\n+= V 2.0.5(Sep 15,2023) =\r\n+* New: Hooks added in all add-ons(pro-feature).\r\n+* Fix: Sort by category not working on project list.\r\n+* Fix: Sort by status not working on project list.\r\n+* Fix: PHP warning.\r\n+\r\n+= V 2.0.4(August 11, 2023) = \r\n+* New: Public project feature ( You can enable\u002Fdisable this feature from miscellaneous setting (Projects > Settings > Miscellaneous)).\r\n+* New: User can change project while editing task.\r\n+* New: Compatible with WordPress v6.3.\r\n+* New: Documentation links added in setting.\r\n+* Fix: PHP notices and warnings.\r\n+* Fix: If user(manager) remove from project, this user still access tasks.\r\n+\r\n+= V 2.0.3(June 29, 2023) =\r\n+* New: Sorting Project list by project, status, category, start date and end date.\r\n+* New: Improvement in task list search.\r\n+* New: Improvement in task list search(Grid view).\r\n+\r\n+= V 2.0.2(May 11, 2023) =\r\n+* New: Setting for co-worker's to edit task.\r\n+* Compatible with WordPress v6.2.\r\n+* New (Pro feature): Report add-on.\r\n+\r\n+= V 2.0.1(March 3, 2023) = \r\n+* New: Sorting task list by name, project, status, priority, start date and end date.\r\n+\r\n+= V 2.0.0 (January 5,2023) =\r\n+* New: Setting for Default show\u002Fhide start date and end date of project.\r\n+* New: Setting for Default show\u002Fhide start date and end date of task.\r\n+* Fix: Clone task's custom fields after task cloned.\r\n+* Fix: Delete custom fields after deleting task.\r\n+\r\n+= V 1.0.9 (October 21, 2022) =\r\n+* New: Kanban board display by statuses order which are set in setting(Projects > Settings >Task Statuses).\r\n+* New (Pro feature): Tasks Calendar shortcode added [wppm_tasks_calendar] in Task Calendar add-on. \r\n+\r\n+= V 1.0.8 (September 8, 2022) =\r\n+* Fix: Cross-Site scripting Vulnerability.\r\n+\r\n+= V 1.0.7 (August 18, 2022) =\r\n+* New: Duplicate Project add-on.\r\n+* Fix: If clone task delete then attachment of original task also get delete.\r\n+* Fix: Checklists not get delete when we delete task and project.\r\n+* Fix: Thread attachment get deleted from comment but it is not deleted from upload folder and database.\r\n+\r\n+= V 1.0.6 (July 14, 2022) =\r\n+* New: Filter hooks added.\r\n+* Fix: If single user is assigned to task, we can't remove that user from task.\r\n+* Fix: Task related email notification(create task, change status, assign user, new comment) does not sending to project manager.\r\n+* Fix: In clone task feature task's creator set to current user instead of original task's task creator.\r\n+* Fix: Clone task's date creation set to current time instead of original task's create time.\r\n+* Fix: Clone task's attachment upload time set to current time instead of original task's attachment upload time.\r\n+* Fix: Clone tasks's comment attachment uploading twice.\r\n+\r\n+= V 1.0.5 (May 31, 2022) =\r\n+* New Feature: Clone task.\r\n+* Fix : Strings are available for translation(Time in project start date and end date,\r\n+       Default show\u002Fhide time in start and end date of project, Show).\r\n+* New: French translation is available.\r\n+\r\n+= V 1.0.4 (April 21, 2022) =\r\n+* Fix : Project status order does not save in setting.\r\n+* New : Addon's menu added.\r\n+\r\n+= V 1.0.3 (March 10, 2022) =\r\n+* Fix : After task creation does get not redirected to defaut view set in setting. i.e grid or list view.\r\n+* Fix : mime_content_type() function not worked in some php versions so changed this function with wordpress's function wp_check_filetype().\r\n+* Fix : Can't download attachments added in last months.\r\n+\r\n+= V 1.0.2 (January 24, 2022) =\r\n+* New Feature : Setting given to hide\u002Fshow time in start date and end date of project.\r\n+* Fix : Changed discussion text to comment.\r\n+* Fix : If default view for task is set to kanban view in setting then after clicking on task list button it gets redirected to list view.\r\n+* Fix : The link option in TinyMCE editor does not open in new window.\r\n+\r\n+= V 1.0.1 (December 28, 2021) =\r\n+* Hooks added.\r\n+\r\n+= V 1.0.0 (October 8, 2021) =\r\n+* Initial release.\r\ndiff -ru \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Ftaskbuilder.php \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Ftaskbuilder.php\n--- \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.7\u002Ftaskbuilder.php\t2026-04-16 08:38:14.000000000 +0000\n+++ \u002Fhome\u002Fdeploy\u002Fwp-safety.org\u002Fdata\u002Fplugin-versions\u002Ftaskbuilder\u002F5.0.8\u002Ftaskbuilder.php\t2026-06-18 09:37:48.000000000 +0000\n@@ -1,118 +1,118 @@\n-\u003C?php \n-\u002F**\n- * Plugin Name: Taskbuilder\n- * Plugin URI: https:\u002F\u002Ftaskbuilder.net\u002F\n- * Description: Project Management & Task Management Tool.\n- * Version: 5.0.7\n- * Author: Taskbuilder Team\n- * Author URI: https:\u002F\u002Ftaskbuilder.net\u002F\n- * Requires at least: 5.6\n- * Requires PHP: 7.4\n- * Tested up to: 6.9\n- * Text Domain: taskbuilder\n- * Domain Path: \u002Flang\n- * License: GPLv3 or later\n- * License URI: https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-3.0.html\n- *\u002F\n-\n-if ( ! defined( 'ABSPATH' ) ) {\n-\texit; \u002F\u002F Exit if accessed directly\n-}\n-\n-if ( ! class_exists( 'WP_Taskbuilder' ) ) :\n-  \n-  final class WP_Taskbuilder {\n-    public $version    = '5.0.7';\n-    public function __construct() {\n-      \u002F\u002F define global constants\n-      $this->define_constants();\n-      \u002F\u002F Include required files and classes\n-      $this->includes();\n-      add_action( 'init', array($this,'load_textdomain') );\n-      add_action( 'init', array( $this, 'wppm_check_download_file') );\n-      register_deactivation_hook( __FILE__, array($this,'deactivate') );\n-    }\n-    \n-    function define_constants() {\n-      $this->define('WPPM_STORE_URL', 'https:\u002F\u002Ftaskbuilder.net\u002F');\n-      $this->define('WPPM_PLUGIN_FILE', __FILE__);\n-      $this->define('WPPM_ABSPATH', dirname(__FILE__) . '\u002F');\n-      $this->define('WPPM_PLUGIN_URL', plugin_dir_url( __FILE__ ) );\n-      $this->define('WPPM_PLUGIN_BASENAME', plugin_basename(__FILE__));\n-      $this->define('WPPM_VERSION', $this->version);    \n-    }\n-    \n-    function load_textdomain(){\n-      $locale = apply_filters( 'plugin_locale', get_locale(), 'taskbuilder' );\n-      load_textdomain( 'taskbuilder', WP_LANG_DIR . '\u002Ftaskbuilder\u002Ftaskbuilder-' . $locale . '.mo' );\n-      load_plugin_textdomain( 'taskbuilder', false, plugin_basename( dirname( __FILE__ ) ) . '\u002Flang' );\n-    }\n-\n-    public function includes() {\n-      include_once( WPPM_ABSPATH . 'includes\u002Fwppm-install.php' );\n-      include_once( WPPM_ABSPATH . 'includes\u002Fclass-wppm-functions.php' );\n-      include( WPPM_ABSPATH.'includes\u002Fwppm_cron.php' );\n-      include_once( WPPM_ABSPATH . 'includes\u002Fwppm_actions.php' );\n-      if ($this->is_request('admin')) {\n-        include_once( WPPM_ABSPATH . 'includes\u002Fclass-wppm-admin.php' );\n-        include_once( WPPM_ABSPATH . 'includes\u002Fclass-wppm-profile-update.php' );\n-      }\n-      if ($this->is_request('frontend')) {\n-        include_once( WPPM_ABSPATH . 'includes\u002Fclass-wppm-frontend.php' );\n-      }\n-      \n-    }\n-\n-    public function define($name, $value) {\n-      if (!defined($name)) {\n-          define($name, $value);\n-      }\n-    }\n-    \n-    public function is_request($type) {\n-      switch ($type) {\n-        case 'admin' :\n-            return is_admin();\n-        case 'frontend' :\n-            return (!is_admin() || defined('DOING_AJAX') ) && !defined('DOING_CRON');\n-      }\n-    }\n-\n-    public function wppm_check_download_file(){\n-      global $wpdb,$wppmfunction;\n-      if( isset($_REQUEST['wppm_attachment']) && isset($_REQUEST['tid']) && isset($_REQUEST['tac'])){\n-        $attach_id = intval(sanitize_text_field(wp_unslash($_REQUEST['wppm_attachment'])));\n-        $auth_code = (sanitize_text_field(wp_unslash($_REQUEST['tac'])));\n-        $task_id = intval(sanitize_text_field(wp_unslash($_REQUEST['tid'])));\n-        $task_auth_code = $wppmfunction->get_task_fields($task_id,'task_auth_code');\n-        $task_auth_code = sanitize_text_field($task_auth_code);\n-        if($task_auth_code == $auth_code){\n-          $this->wppm_file_download($attach_id);\n-    \t\t} \n-      }\n-      if( isset($_REQUEST['wppm_attachment']) && isset($_REQUEST['pid']) && isset($_REQUEST['pac'])){\n-        $attach_id = intval(sanitize_text_field(wp_unslash($_REQUEST['wppm_attachment'])));\n-        $auth_code = (sanitize_text_field(wp_unslash($_REQUEST['pac'])));\n-        $proj_id = intval(sanitize_text_field(wp_unslash($_REQUEST['pid'])));\n-        $proj_auth_code = $wppmfunction->get_project_meta($proj_id,'project_auth_code',true);\n-        $proj_auth_code = sanitize_text_field($proj_auth_code);\n-        if($proj_auth_code == $auth_code){\n-          $this->wppm_file_download($attach_id);\n-    \t\t} \n-      }\n-    }\n-\n-    public function wppm_file_download($attach_id){\n-      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fattachment\u002Fwppm_download_attachment.php';\n-    }\n-\n-    public function deactivate() {\n-      \u002F\u002F Remove cron jobs\n-      WPPMCron::wppm_unschedule_events();\n-    }\n-\n-  }\n-  \n-endif;\n-\n-new WP_Taskbuilder();\n+\u003C?php \r\n+\u002F**\r\n+ * Plugin Name: Taskbuilder\r\n+ * Plugin URI: https:\u002F\u002Ftaskbuilder.net\u002F\r\n+ * Description: Project Management & Task Management Tool.\r\n+ * Version: 5.0.8\r\n+ * Author: Taskbuilder Team\r\n+ * Author URI: https:\u002F\u002Ftaskbuilder.net\u002F\r\n+ * Requires at least: 5.6\r\n+ * Requires PHP: 7.4\r\n+ * Tested up to: 7.0\r\n+ * Text Domain: taskbuilder\r\n+ * Domain Path: \u002Flang\r\n+ * License: GPLv3 or later\r\n+ * License URI: https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-3.0.html\r\n+ *\u002F\r\n+\r\n+if ( ! defined( 'ABSPATH' ) ) {\r\n+\texit; \u002F\u002F Exit if accessed directly\r\n+}\r\n+\r\n+if ( ! class_exists( 'WP_Taskbuilder' ) ) :\r\n+  \r\n+  final class WP_Taskbuilder {\r\n+    public $version    = '5.0.8';\r\n+    public function __construct() {\r\n+      \u002F\u002F define global constants\r\n+      $this->define_constants();\r\n+      \u002F\u002F Include required files and classes\r\n+      $this->includes();\r\n+      add_action( 'init', array($this,'load_textdomain') );\r\n+      add_action( 'init', array( $this, 'wppm_check_download_file') );\r\n+      register_deactivation_hook( __FILE__, array($this,'deactivate') );\r\n+    }\r\n+    \r\n+    function define_constants() {\r\n+      $this->define('WPPM_STORE_URL', 'https:\u002F\u002Ftaskbuilder.net\u002F');\r\n+      $this->define('WPPM_PLUGIN_FILE', __FILE__);\r\n+      $this->define('WPPM_ABSPATH', dirname(__FILE__) . '\u002F');\r\n+      $this->define('WPPM_PLUGIN_URL', plugin_dir_url( __FILE__ ) );\r\n+      $this->define('WPPM_PLUGIN_BASENAME', plugin_basename(__FILE__));\r\n+      $this->define('WPPM_VERSION', $this->version);    \r\n+    }\r\n+    \r\n+    function load_textdomain(){\r\n+      $locale = apply_filters( 'plugin_locale', get_locale(), 'taskbuilder' );\r\n+      load_textdomain( 'taskbuilder', WP_LANG_DIR . '\u002Ftaskbuilder\u002Ftaskbuilder-' . $locale . '.mo' );\r\n+      load_plugin_textdomain( 'taskbuilder', false, plugin_basename( dirname( __FILE__ ) ) . '\u002Flang' );\r\n+    }\r\n+\r\n+    public function includes() {\r\n+      include_once( WPPM_ABSPATH . 'includes\u002Fwppm-install.php' );\r\n+      include_once( WPPM_ABSPATH . 'includes\u002Fclass-wppm-functions.php' );\r\n+      include( WPPM_ABSPATH.'includes\u002Fwppm_cron.php' );\r\n+      include_once( WPPM_ABSPATH . 'includes\u002Fwppm_actions.php' );\r\n+      if ($this->is_request('admin')) {\r\n+        include_once( WPPM_ABSPATH . 'includes\u002Fclass-wppm-admin.php' );\r\n+        include_once( WPPM_ABSPATH . 'includes\u002Fclass-wppm-profile-update.php' );\r\n+      }\r\n+      if ($this->is_request('frontend')) {\r\n+        include_once( WPPM_ABSPATH . 'includes\u002Fclass-wppm-frontend.php' );\r\n+      }\r\n+      \r\n+    }\r\n+\r\n+    public function define($name, $value) {\r\n+      if (!defined($name)) {\r\n+          define($name, $value);\r\n+      }\r\n+    }\r\n+    \r\n+    public function is_request($type) {\r\n+      switch ($type) {\r\n+        case 'admin' :\r\n+            return is_admin();\r\n+        case 'frontend' :\r\n+            return (!is_admin() || defined('DOING_AJAX') ) && !defined('DOING_CRON');\r\n+      }\r\n+    }\r\n+\r\n+    public function wppm_check_download_file(){\r\n+      global $wpdb,$wppmfunction;\r\n+      if( isset($_REQUEST['wppm_attachment']) && isset($_REQUEST['tid']) && isset($_REQUEST['tac'])){\r\n+        $attach_id = intval(sanitize_text_field(wp_unslash($_REQUEST['wppm_attachment'])));\r\n+        $auth_code = (sanitize_text_field(wp_unslash($_REQUEST['tac'])));\r\n+        $task_id = intval(sanitize_text_field(wp_unslash($_REQUEST['tid'])));\r\n+        $task_auth_code = $wppmfunction->get_task_fields($task_id,'task_auth_code');\r\n+        $task_auth_code = sanitize_text_field($task_auth_code);\r\n+        if($task_auth_code == $auth_code){\r\n+          $this->wppm_file_download($attach_id);\r\n+    \t\t} \r\n+      }\r\n+      if( isset($_REQUEST['wppm_attachment']) && isset($_REQUEST['pid']) && isset($_REQUEST['pac'])){\r\n+        $attach_id = intval(sanitize_text_field(wp_unslash($_REQUEST['wppm_attachment'])));\r\n+        $auth_code = (sanitize_text_field(wp_unslash($_REQUEST['pac'])));\r\n+        $proj_id = intval(sanitize_text_field(wp_unslash($_REQUEST['pid'])));\r\n+        $proj_auth_code = $wppmfunction->get_project_meta($proj_id,'project_auth_code',true);\r\n+        $proj_auth_code = sanitize_text_field($proj_auth_code);\r\n+        if($proj_auth_code == $auth_code){\r\n+          $this->wppm_file_download($attach_id);\r\n+    \t\t} \r\n+      }\r\n+    }\r\n+\r\n+    public function wppm_file_download($attach_id){\r\n+      include WPPM_ABSPATH.'includes\u002Fadmin\u002Fattachment\u002Fwppm_download_attachment.php';\r\n+    }\r\n+\r\n+    public function deactivate() {\r\n+      \u002F\u002F Remove cron jobs\r\n+      WPPMCron::wppm_unschedule_events();\r\n+    }\r\n+\r\n+  }\r\n+  \r\n+endif;\r\n+\r\n+new WP_Taskbuilder();\r\n","An attacker must first authenticate to the WordPress site with at least subscriber-level privileges. The exploit involves identifying an endpoint—likely an AJAX action related to task or project management—that takes user-supplied input (such as IDs or filter parameters) and uses it directly in a database query without proper preparation via the $wpdb->prepare() function. By sending a crafted request to admin-ajax.php containing a SQL injection payload (e.g., using UNION SELECT or boolean-based techniques) in the vulnerable parameter, the attacker can manipulate the query result to retrieve data from the wp_users table or other sensitive areas of the database.","gemini-3-flash-preview","2026-06-26 01:22:01","2026-06-26 01:22:36",{"type":41,"vulnerable_version":42,"fixed_version":11,"vulnerable_browse":43,"vulnerable_zip":44,"fixed_browse":45,"fixed_zip":46,"all_tags":47},"plugin","5.0.7","https:\u002F\u002Fplugins.trac.wordpress.org\u002Fbrowser\u002Ftaskbuilder\u002Ftags\u002F5.0.7","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftaskbuilder.5.0.7.zip","https:\u002F\u002Fplugins.trac.wordpress.org\u002Fbrowser\u002Ftaskbuilder\u002Ftags\u002F5.0.8","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftaskbuilder.5.0.8.zip","https:\u002F\u002Fplugins.trac.wordpress.org\u002Fbrowser\u002Ftaskbuilder\u002Ftags"]